Agile Zone is brought to you in partnership with:

I'm a software developer working as a senior consultant at Kentor in Stockholm, Sweden. My core competence is as a technical specialist within development and system architecture. In my heart I am, and probably will remain, a programmer. I still think programming is tremendously fun, more than 20 years after I first tried it. That's why my blog is named Passion for Coding.  Anders is a DZone MVB and is not an employee of DZone and has posted 85 posts at DZone. You can read more from them at their website. View Full User Profile

Start a Scrum Project with Sprint 0

  • submit to reddit
When starting up a scrum project, I often use a sprint 0 to get started. The purpose of sprint 0 is to get all the prerequisites for the first sprint planning in place.

The need for a sprint 0 probably varies across different businesses. I’m working as a consultant which means that at the start of the project the team usually doesn’t know each other well, the customer doesn’t know the team, the business analyst doesn’t know the business and the team doesn’t know the inherited legacy code (if there is inherited code).

Every single one of those issues is an impediment for a successful sprint planning. Together they make an effective sprint planning impossible. The purpose of a sprint 0 is to overcome these issues. The purpose of a sprint 0 is not to work in an unstructured manner and postpone the planning.

Sprint 0 Goals and Planning

As every sprint, sprint 0 should be planned and have a sprint goal. In my opinion, there is only one valid sprint goal to set for sprint 0:

Sprint 0 Goal: Make proper planning of sprint 1 possible.

Fortunately only two things are required to plan a sprint: a prioritized backlog and enough knowledge of the domain, technical aspects etc to make relevant time estimates.

Unfortunately those two things can be really hard to get. Until you have them, you’re running sprint 0.

Sprint 0 Planning: Going Kanban

Sprint 0 is not like other Scrum sprints. It’s usually run Kanban Style. This means that is lacks scope and time limits. It doesn’t mean it’s not planned.

I recommend that a sprint planning meeting is held just like with any sprint. Put all activities that you know about into the sprint. Set as good time estimates as you can.

During the sprint, constantly refine the backlog by adding additional activities discovered by the initial investigation activities. Set time estimates for those too.

At some point in time, there are no more items added to the sprint 0 backlog. The items that are there have clear estimates. That is when it’s time to set an end date for sprint 0 and set a date for the sprint 1 planning meeting.

Not an Alternative: Postponing the Project Start

One might argue that a sprint 0 is a sign of having started the project too early, before the product owner has formed a backlog. I don’t think that argument holds. To form a backlog requires both the product owner and technical expertise of the lead developer(s) of the to-be team. Sprint 0 is essentially a large project backlog grooming session, where both the product owner and developer team representatives are needed.

Published at DZone with permission of Anders Abel, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)