Recently my friend Mark Hudson posted about the inappropriateness of the term "sprint" for an agile project phase, preferring the cycling term "interval." That post really struck a chord with me.
As a rugby union fan and former wing/fullback I've always thought the whole rugby analogy was wrong. Agile development is continuous and fluid, yet the agile originators chose the word "scrum" for its daily standup meetings. In rugby union a scrum is a set play resulting from a minor penalty, like offside in American football or a foot fault in tennis. If you like the rugby analogy the right term would have been "ruck," which is kind of like a scrum but part of the continuous run of play (in the other kind of rugby, called rugby league, the scrum has devolved into an almost meaningless stylized ritual – which I guess happens on some agile projects).
But if you think about it, rugby, or almost any team sport for that matter, is a poor symbol for application development. The action occurs over a set time and is controlled by an ever-present referee. A rugby match is a direct competition between two teams. A scrum in rugby is an activity engaged by eight specialists and if incorrectly done can result in a snapped spine. The agile method assumes some interchangeability of skills and is generally perfectly safe. An application development project is a single team working together to achieve something. It is egalitarian: the scrum master is a facilitator, not an umpire. When other teams are involved they are working together, not competing with each other. And on and on.
I don't know much about cycling, but it seems a much more apt analogy. As Mark spells out, "interval" is a much better term than "sprint". Cycling involves a journey by a team or an individual, there are obstacles like hills and traffic lights to navigate, fitness and training are prerequisites. The team takes breaks between intervals, and might huddle up at breaks to talk about plans for the next interval.
But most importantly, cycling requires a map. No one just starts on a 50 mile ride without either a map or previous knowledge of the territory. Imagine a group of cyclists on vacation in San Francisco for the very first time starting out on such a ride with a very general plan and no map. Would you bet on them arriving on time?
In the business world, as I've written, the roadmap for a custom application development project is an executive-approved business case and clear definition of business objectives. I've seen many agile efforts start with a business case that's non-existent, cursory, or hopelessly optimistic, and similar business requirements. The result is like the project played out in this article: the team constantly runs to catch up with ever evolving scope and business objectives, and at the end is blamed for being late and overbudget!
The agile method calls for a team effort among all project participants, and stresses business involvement as a key success factor. However, in the real world business people are often too busy to participate meaningfully and developers are all too willing to bypass the boring business stuff and start slinging code. A cycling analogy might help the team stop and say "Wait a minute, we don't know where we're going!" before there's a decent business roadmap. Maybe then the team starting with insufficient business definition would put proper emphasis on answering these key questions before riding out:
- Where are we going?
- Is it worth going there?
- What do you expect to get out of this trip?
My point depends a lot on the difference between business and technical requirements. I go into it a bit in the post linked above, but I'll save a detailed look for another post. I've gotta go now, I've got the Saracens versus Racing Metro 92 Heineken Cup match on the DVR.