Saturday, November 12, 2011

It is not about Sprint Zero; Think Sprint-N

There is a good dialogue on the topic of Scrum's Sprint Zero going on at Scrumdevelopment@yahoogroups.com.  If you follow the group you will surely learn something about Agility.  It will just seep into your pores.  Go right ahead - click the link and join up... I'll wait here.

The "raging" debate in the Scrum world for years is - should a Scrum team have a Sprint Zero?  A sprint in which they get setup for doing real work.  A sprint for installing all that infrastructure (DB, Version Control System, App Server, build a few [sarcasm] frameworks). [Hint: when a developer says they just need to build a framework - it is geek-code for I don't have any idea how to use The Google to find a tool to do that job - so I will have to forge my own special handmade tool - check back with me after I reinvent the wheel.]

I think perhaps the wise and wonderful man behind the curtain - Ron Jeffries - captures the best thinking on the topic:

"I do, however, object to calling those activities Sprint Zero. Here is my reason:"

"It is a core principle of Scrum that every Sprint must produce an increment of potentially shippable software.

"Therefore, an interval of time which does not produce an increment of potentially shippable software is not a Sprint.

"Therefore such a time interval should not be called a Sprint. It doesn't do what a Sprint does."
   -- Ron Jeffries
So the debate - and I think it is much more a debate - than a productive dialogue, is over something at the very beginning of a long learning process. The transition from predictive to emergent behaviors of development.  Is the debate over - what to call an increment of time?  Or is it over our starting point: Zero vs One?  Or is it over the principle of - do we really have to deliver something this first iteration - what could we possibly do AND do all this setup work?  Do we have to do ALL this setup work?  Now we are going down the right path.

And the abstraction of that path is that we learn to count with the infinite goal in mind - not the beginning.  We learn to count:  Zero, One, Many.

If you have only ONE sprint called Zero - I'm fine with that - it is a failure if it delivers no potentially shippable software.  But hey, I'm OK with failure.  And if you fail once and learn something - like how to get back up, dust yourself off and start delivering working software in one sprint, well then HEY I'm good with whatever you call it.

You see, I'm focusing on the goal - getting to reliably delivering software in Sprint-N, each and every Sprint-N.  And if you need training wheels on your first bicycle - then I'm all for getting training wheels - it is a very reliable learning technique.  Just don't put them on your Harley.


See Also:
InfoQ:  What is Sprint Zero? Why was it Introduced?
An alternative view:  Why do you need Sprint 0
Scrum Alliance article:  What is Sprint Zero
Mountain Goat SW:  Sprint Zero: A Good Idea or Not?

Post a Comment