Pages

Monday, May 29, 2017

Does a Scrum Project Need Sprint 0?

One of the most debatable topics in Agile especially Scrum is whether a team can actually deliver something potentially shippable in the first Iteration or Sprint. Some folks suggest a Sprint 0 while some oppose it as they feel it is against scrum principles.

The purpose of this article is to help you understand whether a Sprint 0 really makes sense or not…

What is Sprint 0?

Sprint 0 or Iteration 0 is technically the first iteration of an agile project but it is more used for getting the preparatory work done rather than actual development. It is like a feeder sprint for the scrum team and product owner to work together to understand the backlog, discuss the relative priorities, estimate the top priority items and get ready to work on the most important stories in the first official development sprint of the project.

Do we really need a Sprint 0?

Technically No.

Lets assume you are the scrum master and are starting a new scrum product development project. You are meeting the product owner and the scrum team on a Monday morning which happens to be Day 1 of your Sprint 1.

You and the team are probably new and have little to no idea about the product you are going to building. The product owner is probably still refining his priorities and the first few days of the sprint will go in the team getting to know each other. Unless you do a 4 week sprint, by the team they identify the top priority stories, estimate and break it down into tasks we are probably 50% or more into the sprint and will not have enough time to do any worthwhile development that can be shipped by the end of the sprint. Even in a 4 week sprint, it is highly debatable as to how much actual development the team would be able to do after they get the basics sorted out.

According to Scrum, a Sprint is time boxed and you have to mark the sprint as completed by the end of the sprint. So, chances are high that you will have many incomplete stories by the end of your first sprint.

By adding a Sprint 0, I took the delivery pressure off the team and spent the first few days building the team and working collaboratively on the backlog to understand what the team is going to build. At the end of sprint 0, we have a decent shape backlog and the team has a few user stories that they can start work when Sprint 1 starts.

How long would a Sprint 0 be?

Ideally a team would need anywhere between 1-2 weeks to get familiar with each other and get the preliminary backlog of work ready. So, I would suggest you plan for a 1 week sprint 0 if your usual sprints are 1 or 2 weeks in length and a 2 week sprint 0 if your usual sprints are 3 or 4 weeks in length.
Is adding a Sprint 0 to the release schedule really scrum or agile?

Going by technical definition of the methodology No, I don’t think so. Sprint 0 is more like a planning period where the team work out the details of how they can work together in the coming weeks/months. Since, scrum doesn’t explicitly recommend a planning phase for a project and expects us to cover everything within the sprint, we cannot say that our project is doing scrum if we add a sprint 0.

At the same time, Agile is an adaptive mindset and approach where the team is free to tweak their processes to enhance their output. By adding a sprint 0 the team is basically improving the efficiency and delivery capabilities of sprints 1 and beyond so, I would say that even if we add a sprint 0, we will still be doing agile if we follow the other core principles that agile was built on – customer focus, regular delivery of value, adapting to changes and continuous improvement.

Real life scenario:

In real life agile projects, you can also find teams that use a stabilization or regression sprint toward the end of the major release where the team will make sure all bugs are fixed, pre-existing functionality that was delivered as part of the last major release are working fine and the product meets the quality standards set forth by the organization.

Again scrum & agile purists will argue that adding such an iteration is against the scrum methodology.

Yes, I cannot deny that. But, practical usability and fitness for purpose always trumps idealistic processes. If I am delivering a major product version to a customer, he would be more concerned about my project team delivering a quality product rather than following scrum perfectly. So, going by customer focus as our teams main goal, we are using one sprint to make sure the product is fit for use and delivering the same to the customer and I would still say that my team followed agile methodology because we did follow all the agile principles.

What are your thoughts on sprint 0 and a stabilization testing sprint? Sound off in the comments section…



No comments:

Post a Comment