The user story is an important piece in agile. What is it though? What is the typical make up of a user story? And, what makes it work? In the following I will discuss what the user story is. I will then provide some typical content. Lastly, I will provide some benefits from the user story.
User Story – What Is It?
The user story is a communication tool used in agile software development. It is a way to present what a user needs. A method of explaining a goal or need. With context, to help drive understanding. Historically, it was presented on paper cards or notes. Updated digital processes allow this information to be stored and displayed electronically. Either way, this allows for storing of the information. Then, easily moving the information around to prepare work. Visually showing the work, in relation to other stories. IE, shuffling around user stories to best meet the user needs.
User Story Content
The main goal is to answer the question of who, what and why. Typically, the story is built around the statement of “As a….I need/want….so that….”. This defines the who, what, and why. The user story presents a need. Written in story form. Next, the team takes this info, to start building understanding the work to be done. A major difference between the user story and traditional requirements, is the story presents the need or goal. It does not list exactly what the team does to meet that goal. It is up to the team to build the best solution towards that goal. While following good process involving customer feedback and interaction. Ultimately, the direction is to frame the problem or goal. Where you place the info into a format that is easily communicated to the agile team. From that, they are able to start on the work.
Context is a critical piece delivered by the story. Context around a request helps take understanding to the next level. Going from understanding at face value, to a deeper understanding. Based around the need or goal.
Acceptance criteria is a piece often included. This builds upon the story statement. It provides information that helps to further define the work. Below are some tips or ideas that help to drive acceptance criteria. They are not all inclusive. Instead, items my teams have used to help build out acceptance criteria.
- Business outcomes, rather than details of the solutions
- Describe actions that will test the change
- Describe actions that demo the change to users
- Define a metric that could be measured to determine if work is complete
Additional Pieces To Consider
Part of the story is relating work to other work. Showing how pieces of work fit together. Or how they will function together. Also, how it is part of larger work. This helps to show the big picture and build understanding of the work.
Part of relating work involves dependencies. Dependencies are an important piece to consider. They are not part of the story itself. Instead, they help to organize and clarify the story. In relation to other work. Thus, it can be a good idea to include dependency information with user stories. The same can be said for risk information, or constraints. You can organize and track this separately from user stories. Or if your organization uses a tool like Jira, it can be included in the user story within Jira.
- Context around the work gained for the team
- Understanding of the work gained for the team
- Knowing the goal, thus an ending point is known
- Promotes an iterative and incremental development process
- Promotes communication between the team and the user(s)
What Separates Good User Stories From The Rest
There are lots of factors, methods, processes, etc, for creating good stories. I am not trying to get into the details of how to create good stories here. Instead, boiling the information down, what separates good stories from the rest? In my opinion, it is 2 factors. The first is the back to context. The story has context, to help clarify the story. The second factor is that the need/goal is clearly presented. Making what the work is easy to understand. Also, making the reason for the work easy to understand.
Final Thoughts On The User Story
The user story in agile is a key piece of information and process. Tailored for the agile process, to describe incremental work. As opposed to large efforts of work that are linked pieces of work. This follows agile principles of incremental delivery. Also, of good feedback loops. The user story also promotes communication with the business. Which, it does by providing goals to work towards. With the team having to communicate to work towards a solution. Instead of working off set requirements. The team collaborates with users to build the best solution they can. Which, in the end, the user story is about communication. Communicating the need effectively to the team. Allowing them to go start the work.
Next, I discuss the goals of user stories further. Goals of the user story.
Vertical slicing is an important concept with user stories. Here I go over concepts of the vertical slices of work.
Of course, the Agile Manifesto