Wednesday, June 11, 2008

What happens at the end of a sprint in Scrum?

At the end of a sprint, the team produces an increment that builds on previous increments. The team can trim functionality but must meet the promised delivery date

Figure: Product increment built on previous increments

After each sprint, all project teams meetwith all stakeholders, including high-level management, customers, and customer representatives. All new information from the sprint just completed is reported. At this meeting, anything can be changed. Workcan be added, eliminated, or reprioritized. Customer input shapes priority-setting activities. Items that are important to the customer have the highest priority.

New plans and estimates are made following the same process discussed under “How do you plan and estimate in Scrum?” Assignments are then made to teams for the next sprint. As sprints finish, estimates become better as planners see what each team has produced in previous sprints. With the small time increments, the planners must be careful in their estimation, because, “Extrapolation of times for the hundred yard dash shows that a man can run a mile in less than three minutes.”

Because each sprint produces a visible, usable, increment, product delivery can take place after any sprint. In fact, delivery of a sort does take place and feedback from the business and marketing side and from customers is a reaction to the current increment’s delivery. Typically, final delivery takes place after a wrap up phase that is run as a final sprint.

The organization can make one very important decision at the end of a sprint: whether to continue product development. Given what was delivered during the last sprint and the current state of the market, the stakeholder meeting should address the question, “Should this project continue?” This is a business decision and must be made after considering all the technical and marketing issues.

As a result of the interaction of small teams in small, focused development cycles:

  1. the product becomes a series of manageable chunks,
  2. progress is made, even when requirements are not stable,
  3. everything is visible to everyone,
  4. team communication improves,
  5. the team shares successes along the way and at the end,
  6. customers see on-time delivery of increments,
  7. customers obtain frequent feedback on how the product actually works,
  8. a relationship with the customer develops, trust builds, and knowledge grows, and
  9. a culture is created where everyone expects the project to succeed.

No comments: