Wednesday, 24 September 2008

Call it what it is!!

It's an oft-heard complaint: a team reports that they failed while using Extreme Programming, or Scrum, or another agile process. Some investigation reveals that they didn't use all of the practices. Some advocates of the process in question say, "You can't say you were using XP is you didn't use all of the practices!" A spirited debate ensues, with a decidedly religious slant.

What I have yet to see, though, is the opposite occur. Increasingly I read about teams that have implemented Scrum, for example, and it was a great success. Excellent! Wonderful! Then I read that those teams "added some technical practices" such as Test-driven Development, Refactoring, Continuous Integration, etc.

Uh, if it makes sense to some people to complain when practices are taken away, then shouldn't there be complaints when practices are added? Is Scrum really Scrum with TDD, Pair Programming, CI, 2-week Sprints, etc.? Isn't is just XP with different terminology?

As I mentioned in Scrum is Not Enough, Ken Schwaber admitted that teams should be using technical practices in addition to Scrum. He said,
In order to employ emergent architecture, every Sprint must leave behind clean, commented, refactored work.
Scrum deliberately avoids prescribing technical practices, which is fine. However, if you still require good technical practices in order to succeed with Scrum, are you still doing Scrum?

I may sound like I'm picking on Scrum here, but the same applies to XP. Industrial XP, for example, is very explicit about adding practices to handle enterprise issues. As such, it was rebranded to reflect the difference. Why is this not applied to other processes?

So, my main point is that we need to examine the actual process being used very carefully and call it what it is. If it's Scrum with extra practices, then call it that - don't state that it's just Scrum. If it's XP with practices to extend beyond a single team, great! Just say so!

For a team I'm coaching right now, I've incorporated aspects of Lean Software Development, XP, Industrial XP and Scrum. The difference is that I've told everyone that I've done it, and not just used a single name.

After all, open honest communication is a common value of all agile methods, is it not?

No comments: