After a fairly long summer hiatus, ChAD finally had a meeting; the subject was "Comparing RUP, XP, and Scrum: Mixing a Process Cocktail for Your Team". Our guest speaker was Dan Rawsthorne.
Dan seems to be very much a process guy. He likes Use Cases and modeling, but he's still sympathetic to the average coder in the trenches. He did not have a bad word to say about anyone, even when he disagreed with them. He likes RUP, XP and Scrum; he thinks they all embody great ideas.
Every process can be best understood by the fears that it is trying to address. Most corporate processes are motivated by management's fear of losing control. XP was inspired by the fear of bad code and the "shelfware" phenomenon — code that never gets used.
In broad summary: XP is too code centric. (It's designed by developers for developers.) RUP tends to degenerate into Waterfall. (People forget to remove the parts they don't need and they forget to run iterations.) Scrum is not about software at all. (It's all about people [or even Peopleware] issues.) Dan's ideal process cocktails use
- XP for internal team practices (many of them can be done discreetly if need be)
- RUP for use cases (but he prefers Cockburn use cases);
- Scrum for project management and customer/inter-team communications
I thought his defence of high ceremony was interesting. He says there's never a technical justification for it. However, the organizational environment can demand it for entirely legitimate reasons. The extreme example: space shuttle software: we don't care how long it takes or how expensive it is (or how tedious), we are not going to kill astronauts with software bugs. (I could not resist thinking: the hardware guys have taken care of that.) His other high-ceremony example was an avionics project, which he said he ran as a scrum of scrums before the term was invented.
He confirmed what a lot of us must be thinking: a combination of XP and Scrum is a great process to use. Many XP practices are stolen directly from Scrum (e.g. daily standup meetings). Scrum can be used to scale up for big projects: small teams run XP internally; team leads run scrums on top of XP and use a scrum of scrums to coordinate the teams.
At one point someone asked what the minimal subset of XP practices is. Supposedly, Ron Jeffries says you need to do all of them but Martin Fowler is trying to work out a subset anyway. There are rumours that people have succeeded in projects without using the full set. Dan Rawsthorne considered the whole question of "how much is enough when" an interesting research topic, not something anyone could answer for certain (though he characteristically said he admires Ron Jeffries's position).
There was a good turnout. Lots of good questions and comments. They did to let him get away with much in the way of fuzziness. There was a certain XP-centricity in the audience, but he was game and usually had a good answer when he was challenged.
Having attended the talk, I feel even more motivated to learn more about Scrum. I've ordered the Schwaber and Beedle book and I look forward to reading it.
Update: the ChAD mailing list shows its value again.
Someone found and shared the slides to Dan's talk. Not all of it will make sense out of context, but there's some good stuff near the end. I always like to see a good bibliography. Interesting too is a book Dan and his colleagues are writing. A draft version of "Emergent Design" is available for review via their wiki.
The discussion about XP, Scrum and how they relate to each other continues.