Writing Good User Stories: The Benefit of Process Development

Written by delaPlex
January 25,2016


The modern economy is a highly competitive, global marketplace. Competing requires all businesses to streamline, optimize and improve efficiencies while simultaneously enhancing customer service. To further their goals, many companies have already implemented some type of business process management, or BPM, to help them meet their goals while simplifying how they achieve them. The benefits of a BPM system typically fall in one of four primary areas. 

  1. Customer Satisfaction: Today's customers want relationships, not advertisements. They want personalized, engaging and relevant interactions.to give and receive input.

  2. Regulatory Compliance: Laws and regulations are changing rapidly, especially for personal data, certain regulated industries and financial information.

  3. Spending Efficiency: Today, most organizations are already running lean, so it has become increasingly important to maximum the value received for every dollar spent.

  4. Agility: Market conditions change rapidly. Successful companies need to be nimble enough to react quickly to changing conditions.

However, despite the aforementioned benefits, many companies fail to apply similar concepts when developing software. One such concept is the effective utilization of user stories.

In simple terms, user stories are stated ideas of requirements that express what users need. User stories are brief, with each element often containing fewer than 10 or 15 words each. They can be scribbled on index cards, written on a chalkboard or produced as numbered lists. Following is an example of a single user story for a community college.

  • Parking passes can be purchased online.

  • Payment options for online purchases of parking passes are limited to credit cards.

  • Students can register for classes online.

  • Online registration requires entry of student ID number.

  • Students may not enroll in a class without first meeting the prerequisites.

  • Students can drop a class online only during the first week of the semester.

  • Request for official transcripts can be made online.

  • Fees for official transcripts ordered online can be paid with credit cards.

  • Online transcripts require entry of student ID number.

  • Grades will be available online using a standard browser.

  • Grades will not be available online until the 10th day following the end of the semester.

  • Accessing grades requires entry of student ID number.

You will note that the sample user story was focused on a single type of user — students — and the specific tasks that the user could perform online. It did not cover tasks that professors could do, such as input grades, or information that could be accessed by the public, such as a course catalog. However, the information provides valuable insight for those developing the technical aspects; developers know, for example, that the student ID field must be made mandatory for accessing grades, enrolling in classes or ordering transcripts. There is also information for those responsible for the business side, such as the ability to order parking passes online.

One way to approach user stories is to consider who has the requirement, what benefit he or she will derive from it and what will be entailed in delivering the solution. For example:
  • On-campus registration is limited to specific days and times.

  • Online registration gives students the opportunity to register outside of the times allotted for on-campus registration.

  • Working students will not have to take off from work to register.

  • Students will not have to drive to the campus just to register.

  • Access to online registration requires maintaining the security of the student's personal information.

  • Online registration will require real-time tracking to ensure that maximum class sizes are not exceeded.

  • Online registration will require verifying that each student meets the prerequisites for each class requested.

Based on this information, the user story can be abbreviated into the shorter sentences demonstrated earlier.

The next step in writing effective user stories is to assign each item's priority. The simplest method is to rank priorities as:

  • Must
  • Should
  • Nice
  • Will not

This allows the highest-priority items to receive the most attention at the right time. However, it is important to remember that priorities can change during the project's life cycle. New stories may be identified, or some stories might be found to be outside the project's scope.

Mike Cohn, a Scrum trainer, tech guru and author, recommends applying the "INVEST" method to user stories and reworking those that do not meet the criteria. Using this method, a good user story is:

  • I - Independent of other user stories

  • N - Negotiable, i.e., not tailored to specific features

  • V - Vertical and/or valuable, depending on context

  • E - Estimable or yielding a good approximation

  • S - Small enough to be included in an iteration

  • T - Testable, even if no test exists yet

You can decompose user stories to identify the specific tasks involved. If the story is too large to be executed in a sprint, you can decompose it into smaller stories. You may also need to decompose a story if it encompasses too much functionality or is too vague. Decomposing a story helps ensure that each story is feasible, clear and passes the "INVEST" test.

It is common for a story to seem fine until the acceptance criteria is considered. There should be no more than 10 or so, and there should be no hidden requirements. For example, suppose a user story covers deleting text messages. If the acceptance criteria includes requirements such as saving modified messages or selecting any message, the user story needs to divided into three stories to encompass deleting, saving and selecting messages.

In simple terms, user stories are "to-do" lists that help you determine the steps along the project's path. User stories help ensure that your process, as well as the resulting product, will meet your requirements.