I cancelled a sprint this week. We had begun building a new software increment, and we were on track to get it done. During the sprint, we discovered the limits of our approach, and shared what we learned with our customer. Our customer shared with their customers, and we learned that what we were building was unacceptable to our customer's customers--it added friction to an important in-app purchase experience. We explored an alternate approach, building a new prototype with our users, and discovered that the alternate was what they really wanted. Cancel the sprint so we could get started on what our customer really wanted--that was the only thing that made sense.
Now that we knew exactly what to build, we got started right away. The team swarmed on new product backlog items that matched what our customer really wanted, and we planned a new sprint the same day. We'll deliver in two weeks. Impressive!
Thinking about it like an investor, I don't feel bad about the half-sprint of waste--it's simply not waste. We invested salaries and tempo into learning what our customer really wants. It took half a sprint to figure it out, and our customer and their customers will get what they want. No problem.
In the context of the Agile Manifesto, I have mixed feelings about canceling our sprint. We didn't complete the sprint--no Working Software--so no measurable progress. Lots of Customer Collaboration, but I wish we could have learned what our customer wanted before the sprint began. Great Individuals and Interactions, displayed by the team's swarming to reset on a new sprint. Responding to Change: yep, that's where it's at.
Have you cancelled a sprint? Why? What were your results?