Industrial XP -> Storytelling

Storytelling

Use index cards to describe the features of the system to be built


Customers tell stories about the system they want built. A story represents some functionality of the system. Stories provide a context for communication between the customer and the developer. They are not only revised during storytelling, they are also updated during the course of the project as and when more information becomes available.

Alistair Cockburn says “A story is a promissory note for a conversation.” Stories should be lightweight, with the details coming out through conversations between customers and developers. A story is recorded on an index card, with details on a sticky note.

You can only write so much detail as will fit onto the surface of the sticky note. If a story seems to need too much detail, then the story is really asking to be split up into smaller stories.

The 5-word Rule

We like to enforce the 5-word rule when writing stories. If your title contains more than 5 words, then it probably needs refactoring. Review your story. Is it clear enough? Do the authors of the story understand it well enough?

At the end of a storytelling session, it is a good exercise to pick out stories that violate this rule, and re-examine them. People who write such stories often do not understand them well, and need to clarify or simplify it through further discussions.

Active Verb Rule

When writing the title of a story, it is important to use active verbs. Verbs communicate action, and action sticks in people's minds. Passive speech is boring, and does not inspire as much thought and discussion. “Compute Billing Info” is better than “Billing Info Computation”.

Storywriters

Storywriters come from a Project Community that includes

  • Customer Representatives/Customer(s)
  • Subject Matter Experts (SME)
  • Domain Experts
  • Business Experts
  • Gold Owners

Storywriters have a deep knowledge of the business rules that will reside in the system to be built. They are the people who would usually write requirements documents for the system.

Testable

Stories should lend themselves well to automated testing. A story that is too hard to test needs rewriting. The stories to storytests ratio is not always 1:1. A story may have multiple storytests covering it. It is also possible to have one storytest covering multiple stories.

Estimatable

Complex or vague stories are hard to estimate. During the Planning Game, such stories are uncovered, and storywriters end up breaking them into smaller estimatable pieces or dropping some details based on business priorities.

Guidelines

Here are some quick guidelines to follow when attempting storytelling, in the order of importance:

  1. Ensure that customers of the system or their representatives are the ones who write the stories.
  2. The title should follow the 5-word rule. If you cannot express the story in 5 words or less, then examine if the story should be broken down further, or if all the writers of the story truly understand what the story is doing.
  3. Use active verbs in the title.
  4. Check that your story is testable.
  5. Be prepared to clarify or revise the stories during the Planning Game based on negotiation and discussion with developers.

Further Reading

User Stories Applied: For Agile Software Development by Mike Cohn.

Industrial XP logo
 
Values & Practices
·
·
· Continuous Risk Management
· Project Chartering
· Project Community
· Test-Driven Management
· Sustainable Pace
· Planning Game
· Storytelling
· Storytesting
· Frequent Releases
· Small Teams
· Sitting Together
· Continuous Learning
· Iterative Usability
· Evolutionary Design
· Story Test-Driven Development
· Refactoring
· Domain-Driven Design
· Pairing
· Continuous Integration
· Collective Ownership
· Coding Standard
· Retrospectives



 
Send mail to webmaster@industriallogic.com with questions or comments about this web site.
Copyright © 2004 Industrial Logic, Inc. All Rights Reserved.
万丰彩票 临海市 湖北省 钟祥市 大同市 兰溪市 湘潭市 松滋市 铁力市 彭州市 厦门市 宜春市 邹城市 彭州市 山东省 金昌市 平度市 海南省 双滦区 忻州市 葫芦岛市 十堰市 平度市 潞城市 临沂市 阜新市 普兰店市 汉川市 兴城市 都匀市 枣庄市 安达市 烟台市 高邮市 梅河口市 江油市 白银市 丰城市 孝义市 石首市 池州市 葫芦岛市 福建省 金华市 梅河口市 胶州市 上虞市 大石桥市 江阴市 吉首市 大庆市 铁力市 深州市 山西省 厦门市 项城市 永州市 原平市 明光市 耒阳市