Friday, January 14, 2011

Writing effective stories for a Scrum Sprint

A Story is a brief narration of a software requirement that describes desired functionality in terms of business value it brings to the Customer. A story is best expressed in terms of a Customer Goal. For example, compare the following two different ways of expressing the same requirement:

Form 1: Implement a query system to lookup inactive customers for a region.

Form 2: As a Regional Director, I would like to periodically find out which customers have been inactive for more than 30 days.

It can be argued that Form 2 is a substantially better way to express a requirement than Form 1. For instance, in Form 2 the team is introduced to the target user, a Regional Director. Given this information, the User Interface can be tailored to the particular needs of a person with computer skills of a typical executive. Furthermore, Form 2 states that the Regional Director is really only interested in finding out about customers that have been inactive for more than 30 days. This information allows the team to develop a query system that has just enough functionality to meet the Customer Goal. Any additional functionality can be added to the query system later as Customer requirements dictate.

Given only the information in Form 1, a team can easily embark on development of an all inclusive query system that has features that are never used or valued by the Customer.