Most experts in Scrum will tell you there is no such thing as sprint 0. In fact Ken Schwaber one of the co-creators of Scrum argues vehemently against the concept (link). I have great respect for Mr. Schwaber, and love his framework. I don’t believe every project benefits from a sprint 0, and I agree it is often times leveraged incorrectly. However I believe there are projects where the benefits of a sprint 0 outweigh the costs.
First we have to agree on our goals. If your goal is to be a Scrum team and follow the Scrum framework, you can stop reading as sprint 0 is not right for you. If however you believe in the agile manifesto as I do, you may recall the first principle which tells us what is truly most important:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
(I’ll note that Mr Schwaber is one of the original signatories of the manifesto.)
Whether or not being Agile is important to you, if you agree with the first principle of the Agile manifesto, the next question is; Will having a Sprint 0 enable us to deliver software earlier and faster?
Often times people argue that getting the cadence going is more important than a sprint 0, others argue better to go in the wrong direction than stand still. Both arguments I understand. However, in large organizations there are usually hurdles that must be overcome before development can begin. And if jumping straight into Sprint 1, it becomes hard to go back and do these things correctly.
Some common things to accomplish in Sprint 0
- Minimal Arch
- Decide on tools/languages/etc.
- Set code quality metrics
- Educate team on overall vision
- Connect with Ops and Infra
- Set up environments and progression strategy
I would argue that clearing up a few of these items in a short time boxed event prior to writing code would help a team achieve its goals many situations. Like any part of Agile, it is easy to revert and old ways of thinking and anti patterns. To reduce the risk of that I would suggest a few rules to follow for Sprint 0.
- Sprint 0 must be a time boxed event of no more than 2 weeks in length
- At the beginning of Sprint 0 the goals are defined, and people pull their tasks
- During Sprint 0 the team must hold a standup daily (even if they choose not to have a stand up during future sprints)
- At the end of the Sprint time box the entire team will review what was accomplished in the Sprint
- Regardless of what was accomplished in the timebox, Sprint 1 begins at the end of the time box for Sprint 0
In my humble opinion at the end of the day it isn’t important what the zealots and purists say. If having a Sprint 0 helps your team meet their goals, then you should have a sprint 0. If having a sprint 0 slows your team from reaching their goals, then don’t have a sprint 0.