AGILE IN ACTION

Thursday, February 9, 2006

User stories part 2: Adaptive planning

Posted by Simon Baker

Planning in detail too far into the future can be wasteful because changes will inevitably happen and they can’t be predicted. The horizon of predictability marks the point where predictability moves into uncertainty. This horizon is the duration of an iteration. It’s safe to plan in detail up to the horizon, but beyond it you should plan with a decreasing level of detail and precision.

Adaptive planning defines a high-level plan or roadmap that contains the user stories to be developed over a distance such as a release, and creates a detailed plan for the next iteration only. User stories are well suited to adaptive planning because they’re easy to use with different levels of precision. The figure below (adapted from James Shore ’s Beyond Story Cards article) illustrates this effect.


userstorycone
Originally uploaded by sjb140470 .


Beyond the current release, user stories are typically epics that focus on broad or vague features. During release planning, the selected user stories may be split into smaller user stories that focus on narrower features. However, the purpose of release planning is to quickly establish a sense of how big a release might be. It’s not necessary to split the user stories too far. You can tolerate a larger inaccuracy in their estimates because changes will occur over the period of the release. As the user stories approach the next iteration, they should be split further to focus on progressively smaller and more specific functionality. As the user stories become smaller, they become easier to estimate and their estimates will become less inaccurate. By the time the user stories are planned into the next iteration you want them to take between 1 and 2 days to complete, as a rule of thumb.

During an iteration, it’s difficult to start developing the software for user stories when you only know their names. Recall the conversation element of a user story. The developers and the customer need to collaborate and talk about the details of a user story at the latest responsible moment, i.e. when the details become important. Typically this collaboration to reveal the fine details of the user stories begins in the iteration planning meeting and facilitates a translation of the user stories into acceptance tests. As part of the collaboration, it’s important that the developers understand the benefits of, and the motivation for each user story. Rachel Davies suggests that the developers use a simple checklist:

  1. Do we understand the value to the business that this user story provides?
  2. Do we know who the beneficiary of the user story is?
  3. Have we defined all the acceptance tests?

Next post in this series:
User stories part 3: Using spikes to help estimate user stories

Previous posts in this series:
User stories part 1: What is a user story and who writes them?

References:
[1] Mike Cohn ’s Agile Estimating and Planning
[2] Kent Beck and Martin Fowler ’s Planning Extreme Programming

2 Comments

This is a very nice series of posts. One small problem: in the diagram, the direction of the cone is backwards. It should start broad and become narrow as time passes. The original diagram from which this is adapted has it right. Good information overall, though.

Comment by Anonymous

Yeah I know. I chose to approach it from the perspective of looking into the future: Here and now (on the left), looking forward in time (to the right) the detail of user stories is more ambiguous.

Comment by Simon Baker

Creative Commons Licence

Recent Posts

  1. Debugging Grails Database Performance
  2. Grails for Hipsters
  3. Governance - Friend or Foe?
  4. The Energized Work lab is moving aboard ship
  5. Gus Power on the future of software development at The CW500 Club
  6. Agile On The Beach: Session: How Are We Doing?
  7. Presenting BuyaPowa at Hacker News London
  8. Knowledge nuggets from Kent Beck
  9. There's gold in them thar hills
  10. No Bull: An author's note

Archives

  1. 2013 (2)
  2. 2012 (27)
  3. 2011 (24)
  4. 2010 (31)
  5. 2009 (41)
  6. 2008 (69)
  7. 2007 (152)
  8. 2006 (128)
    1. December (16)
    2. November (26)
    3. October (7)
    4. September (11)
    5. August (7)
    6. July (7)
    7. June (4)
    8. May (4)
    9. April (4)
    10. March (4)
    11. February (14)
      1. Don't be afraid to make mistakes
      2. APLN and collaborative leadership
      3. Scrum ba
      4. Ten-minute build, continuous integration and developer rhythm
      5. User stories part 3: Using spikes to help estimate user stories
      6. User stories part 2: Adaptive planning
      7. User stories part 1: What is a user story and who writes them?
      8. Ba
      9. Watch out for the mini-series
      10. Ideal time vs. story points
      11. Making the quality-factor visible
      12. User stories and tasks
      13. Knowing when you're done
      14. Switching pair-programming partners
    12. January (24)
  9. 2005 (63)
  10. 2004 (2)

Tags

agile (43) big visible chart (15) conference (43) culture (18) extreme programming (22) leadership (18) lean (47) people (27) planning (17) retrospective (18) scrum (41) story (19) team (30) testing (19) xpday (19)