Skip to content

Is Iteration Zero a good idea?

January 17, 2008 by cspag

ITERATION_ZERO As I've been contemplating moving agile throughout our entire organization here at Data Transfer Solutions, I've been considering the usefulness and effectiveness of an Iteration Zero. Many agile teams use what's known as Iteration Zero to put the necessary systems in place to enable the delivery of value to the customer. It's essentially the getting started iteration. It takes place before any development begins. I think Peter Schuh described Iteration Zero very well in his book Integrating Agile in the Real World. Peter says:


"An iteration zero does not deliver any functionality to the customer. Instead the project team focuses on the the simple processes that will be required for the adoption and use of most agile practices. From a management point of view iteration zero may include:

  • Initial list of features identified and prioritized.
  • Project planning mechanism identified and agreed upon.
  • Identification of and agreement upon a team customer, essential stakeholders, and business users and the nature of iterative planning process, such as the time of planning meetings and the length of iterations."

I personally think that the use of an Iteration Zero is very pragmatic and I think that Peter's idea of what Iteration Zero looks like is very realistic. I believe that in the real world of software development, customers aren't really ready to jump right in and start on a sprint from day one. Many of them don't entirely understand the Scrum "process". Most of them don't truly understand their requirements. I think an Iteration Zero can be useful in educating the customer (and coming to an agreement with them) about the agile planning process. I also think it can be used to develop the initial prioritized backlog for the project. Now, I'm not advocating heavy up front requirements gathering here, but you do need some time to create effective user stories to start working from. From a management point of view, check out Agile Support's post on Iteration Zero as it exists within their Agile Contract Engagement Roadmap as seen below:

image

Aside from the project management side of Iteration Zero, I think there can be a good case for the development team to engage in Iteration Zero as well. I think that as we switch between projects, we also tend to switch technologies or development platforms. To do so, development teams may need time to stand up a new database server because the new customer uses Oracle and the last customer needed SQL Server. Hopefully you have both running so you don't need to worry about things like this, but you get the point. Sometimes the development team needs some time to get things set up to support the project before they start delivering potentially shippable product increments each sprint. For a quick idea of what another agile team has done during Iteration Zero, check out Energized Work's post on their Iteration Zero.

I'd like to know your thoughts on Iteration Zero. Does your team use an Iteration Zero? If so, what kinds of tasks do they typically include? And most importantly, do you find them useful and effective in delivering value to your customers?

Comments

Iteration 0

January 17, 2008 by Ciuloaica Gabriel (not verified), 2 years 3 weeks ago
Comment id: 1439

Hi,

In my group we are using the term Sprint 0, were the team is focused on clarifying requirements with the Product Owner and also with customers. Also during this Sprint the release plan is updated. While the organization is not entire agile, we have to produce some documents that are required by internal software development life cycle process. There is nothing demonstrated at the end of this sprint. Release planning is reviewed and updated during this sprint, too.

Gabi

Iteration Zero

January 17, 2008 by Gabriel Lozano-Moran (not verified), 2 years 3 weeks ago
Comment id: 1440

We use Iteration 0 to setup the Continuous Integration environment and prepare the development machines for the new project. At the same time we start the first prototypes to decide more or less which frameworks, tools and so on to start with. So Iteration 0 is really a preparation iteration.

Iteration Zero

January 18, 2008 by Michael (not verified), 2 years 3 weeks ago
Comment id: 1441

Until this post, I hadn't come across the term "Iteration 0" before. I'm going to have to start using that one.

My teams have been working in Agile fashion for years now. We always start a new release with an iteration of tasks to prepare for what is coming down. It could be setting up build boxes, environments, or spiking out the riskier stories.

I couldn't imagine doing it any other way. I think it makes for a good customer demo at the end of the iteration. To show your stake holder "here are the machines we assembled for your project, and as you can see a skeleton build script is all set to provide continuous feedback to builds and tests." It always brings a smile to their face.

Releasing something

January 18, 2008 by Artem, 2 years 3 weeks ago
Comment id: 1442

I personally prefer not having any iteration that demonstrates nothing running. Even if 80% of iteration goes to design, I still like to validate at least a small core bit of design with the running code.

In this sense the Michael's approach - demonstrating working build script with the dummy code and couple of dummy tests - would work for me, while I would be feeling somewhat uneasy if the only result of the iteration zero is a set of documents.

great article

February 8, 2009 by Jeff Anderson (not verified), 1 year 22 hours ago
Comment id: 2224

really liked your post on iteration zero, it looks like the inception phase in RUP,

mixing structure with agile is certainly my approach also.if you have the time feel free to take a look at http://agileconsulting.blogspot.com/2009/01/agile-over-rup-my-preferred-...

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.

Best of AgileSoftwareDevelopment.com