Agile 2005 - Day Three Recap
Mike Cohn’s session on Release and Iteration Planning was the session that I was looking forward to more than any other at the conference. I have read some of his work and feel he brings a very pragmatic approach to agile development, particularly in the areas of planning and requirements. He has written a book called User Stories Applied and has a book titled Agile Estimating and Planning coming out soon. The material for the session is located at http://www.mountaingoatsoftware.com/pres/Agile2005_Planning.pdf.
Mike’s overall model for planning aligns quite well with what we are doing on my teams. Releases are estimated and planned at a coarse level of granularity, with targeted functionality mapped into iterations. Iterations are then planned with a commitment focused approach. Detailed tasks are estimated and the team ‘commits’ to getting the targeted functionality.
The big takeaway for me was the use of Story Points for estimating and measuring velocity. Having a means to measure velocity (the amount of work done in a sprint) is something that I’ve been interested in for a while, but I’ve never been able to determine a good metric to use. I have been tracking team ‘deliverables’, where a deliverable is something that we require for a feature such as code, design documentation, tests, etc. The problem that I have had with this approach is the high level of variability in the size of a deliverable.
Mike proposes the use of story points as a size measure for your release deliverables. Story points are unit-less, so it’s not a pure size measure like lines of code. What story points do very well is allow you to size things based on analogy to other things. Over time, a team will determine how many story points it can complete in an iteration (its velocity). Story points can become a fundamental planning metric and a tool for measuring delivery of customer value.
Mike also proposed an estimating tool that aligns well with what we have been doing on my teams. We have been using a simplified version of Wide Band Delphi (WBD) for estimation. WBD is a ‘panel of experts’ technique where the team gets in a room and each individual independently comes up with an estimate for a unit of work. The team then discusses the variation in the different estimates and repeats the independent estimation until a consensus is reached.
The technique that Mike taught follows the same approach with a fun twist. The technique is called Planning Poker. Each individual has a few cards with a discrete story point number (1, 2, 3, 5, 8, etc) on each card. Instead of verbally providing the independent estimates in the WBD process, each participant shows his card with the estimate on it. The process then proceeds as described above with discussion and repeated estimates.
The class was a nice mix of lecture and exercises. It was the best session that I’ve attended so far, and I’ve got my poker cards ready for our next release planning session!