Sunday, 1 February 2009

Scrum is not Enough - Redux

Last year I opined that Scrum without technical practices is not enough to provide teams with sustainable agile development. I've also commented on the topic more recently in False Advertising and Call it What it is!

This past week Martin Fowler, Ron Jeffries and Joshua Kerievsky have said the same thing, as did James Shore back in November. I would say that all of these gentlemen were more eloquent than me, but the message is the same. Scrum for software development without technical practices, such as those from XP, is not sustainable.

Code must be refactored. Continuous integration (or at least regular, i.e. daily, builds from source control) must be used to verify the state of the system. Testing must be applied at the unit, system and acceptance levels. Automating that testing will provide feedback on a time scale that will enable teams to be agile. If the tests aren't automated, manual testing will become a bottleneck over time, slowing the entire team down.

We have solutions for those problems but, humans being humans, we want the easy answer. Scrum is an easy answer in the sense that it doesn't tell development teams that they must use technical practices in order to sustain their initial gains. Well, interest-only, 50-year amortization mortages seemed like a great idea that allowed people to own homes much more expensive than they could otherwise afford.

To get all Dr. Phil on you, "How's that workin' for ya now?"

2 comments:

Dagfinn Reiersøl said...

I agree whole-heartedly. BTW, Jeff Sutherlands take on this is that you need XP technical practices to have what he calls a "hyperproductive" Scrum team.

Hasith Yaggahavita said...

Good article, I fully agree people just use Scrum on the buzz, not understanding what is really means. I too wrote on this sometime back. My recent experience on Scrum tells me that Scrum as a methodology fails in some aspects. Recently wrote about that as well (http://blog.hasith.net/2010/11/scrum-is-not-agile-enough.html).