Saturday, January 26, 2008

How long to Sprint?

As we were preparing to use Scrum, the customer asked, How long should a Sprint last? What is the right length for a Sprint? Should it always be the same, or can we vary the tempo?

There are general considerations, but these will be influenced by the specific situation.

Here in Switzerland, the public transportation runs on a beat. The intercity train from Zürich to Bern leaves every half hour. There's a train on the hour and at 32 minutes past the hour, every hour, and they arrive 57 minutes later - dependable and predictable. This is a good reputation for software teams to strive for.

The neighborhood bus that takes me home applies almost the same deal: 17, 37 and 57 minutes past the hour during rush hour. But during the day, the bus suffers from what's known as a Taktbruch - breaking the rhythm. During the day, it leaves at 17 and 47, and on the weekend it's completely different. So I have to remember when which frequency applies, which makes me (and everyone else) much less likely to use it.

So, lesson number one about Sprint duration: it's OK to experiment at beginning, but then you should set a duration and then stay with it. That makes it easier for everybody.

Based on the bus & train example, you might think shorter is better -- If that bus comes every 5 minutes, that's more convenient for the customer -- but a passenger has no work to prepare for the bus's arrival, except when s/he actually plans to take that bus.

Short sprints do have a number of advantages:

  • Intense customer contact
  • Frequent Examination of Project Situation
  • Quicker Feedback Cycles
  • Good for Building Trust with Customer

But short sprints are not without their disadvantages:

  • Harder to tackle big problems
  • More Meetings and Preparation
  • Developer Acceptance

In my experience, one of the hardest parts of adopting Scrum has been convincing developers that they can deliver incrementally. This is made more difficult by limiting the time available for Sprint. (Having said that, once the developers are convinced it is worthwhile to release incrementally, then convincing them that they can actually do it becomes easier.)

More meetings can be an issue. Sprints have a regular meeting cycle: Preparation (Scrum Master and Project Owner), Estimation (Team), Sprint Planing I & II (all), Sprint Retrospective (team). This predictability is good, every thing can be planned months in advance, but it occupies a lot space in your calendar. There may also fixed costs associated meetings, e.g. travel time, so the time spent in meetings may not shrink linearly with duration of the Sprint.

In our case, we had seven weeks to clean up the software and get out a release by Christmas. We started with a two week sprint. I had proposed a one month sprint, but the customer wanted to have a chance to influence the process. So we did 2 - 2 - 3. The second and third sprints were release Sprints. Functionality developed in the previous sprint was shipped (tested and accepted by the customer) and deployed on the live server. The second release was a "major release", with database changes, so teh customer wanted to do more regression testing, but since three weeks was what we had available, it worked out perfectly.

We noticed quickly that Sprints on a two week cycle was a lot of work for everybody involved, especially the product owner (who previously, as a mere customer, had relatively little to do). But the P-O was wary of not being able to influence the development for a month at a time, so we decided on a three week sprint interval.

This proved to be a good compromise, somewhat unconventional, but even after 22 sprints (and yes, Virginia, once in while, we did make changes to the plan to accommodate issues we couldn't control), no-one is talking about changing the beat.


Peter Hundermark said...

Hi Peter,

I'm late in reading your blog, which I enjoyed.

I don't think 3 weeks in unusual, BTW. I like to start teams with 3 x 2 week sprints to learn the process quickly. After that they can choose. Four weeks is often hard to plan and feels long. Maybe good for experienced teams. So three weeks is often a good compromise.

My question is, given a 2-week sprint, do you do all the events in a single day: review, retro, planning 1 & 2, each time-boxed to 2 hours max? I find some teams like the idea of getting all their "process" stuff done in a single day, leaving 9 days clear for doing the "work". But it's tiring and SP2 quality/fidelity may suffer. Also, there is a shorter break between retro and SP.

Will you be in Chicago?


Peter said...

Hi Peter,

No, we found 2 week sprints, paticularly the meetings around them, to be too intense. Neither we nor the customer could keep up.

So we have three week sprints and the meetings are a bit spread out. Every Thursday is "Customer Day": the customer/product-owner is on site and available for the team. The zeroth customer day (which is also the 3rd customer day from the previous sprint) is the formal planing. The last one started at 11.30 and was over at 13.00

(The following Tuesday is Sprint Retro.)

The first customer day is just intereaction about between the PO and the team.

The second customer day is a Sprint Preplaning with the P-O and Scrummaster. The get the product backlog in Target Process updated and prioritized. (The following Tuesday is the Estimation meeting).

The third customer day is the Sprint Demo (about 2 to 2 1/2 hours) and becomes the 0th customer day of the next Sprint. And so the cycle repeats...

This rhythm has proved sustainable for everybody involved. In particular the sprint transitions do not require super human efforts on the part of the Scrummaster...



P.S. Would have loved to go to Chicago. Am just starting my "Private Practice" as a Scrum coach, so I can't make it this time. Next time, definitely!