The three rules of Agile Club

More times than I care to imagine, you get locked into an Agile versus Waterfall discussion that normally results in ... so what's the key difference?

In short:

  1. It's not necessary to start a project with a lengthy, upfront effort to document all requirements.

  2. It's not necessary to start a project with a lengthy, upfront effort to document all requirements.

  3. It's not necessary to start a project with a lengthy, upfront effort to document all requirements.

Typically, a 'Scrum' team and its product owner begin by writing down everything they can think of easily. This is almost always more than enough for a first sprint. The Product Backlog is then allowed to grow and change as more is learned about the product and its customers. In term of initiation or kick-off, use an initial sprint (called Sprint Zero, Iteration Zero, Inception Sprint, etc) that has the following three goals:

  1. Get some quality items on the Product Backlog ... get the list of Epics captured as well.

  2. Provide a minimal environment that enables the writing of quality code, and

  3. Write a piece of real code, no matter how small.

Referencing the Scrum Alliance ... Before we define Sprint Zero, let me say that the long system test phase before the release can actually be an automated regression test. Each sprint can create automated test for the features it implements and add that to the regression. The need for automated tests is much discussed in Scrum and Agile literature, so we will skip it here for now.
 
Now for a working definition of
Sprint Zero:

  1. Sprint Zero should be used to create the basic skeleton and plumbing for the project so that future sprints can be truly add incremental value in an efficient way. It may involve some research spikes.

  2. Minimal design up front is done in Sprint Zero so that emergent design is possible in future sprints. This includes putting together a flexible enough framework so that refactoring is easy.

  3. For minimal design up front, the team picks up a very few critical stories and develops them to completion. Since these are the first few stories, delivering them includes putting the skeleton/framework in place, but even Sprint Zero delivers value.

Note: The velocity of Sprint Zero may be very low compared to that of other sprints.
 
Remember also that the
product backlog is a living document. Stories are added, modified, and split into small ones all the time. The backlog can be begun during project initiation. From then it grows and is refined as needed. There should be a few stories in the product backlog at the time of Sprint Zero's start, enough to help us demo at least one working feature.