The Importance of Writing Good User Stories

9 MIN READ

January 29, 2020

9 MIN READ
Two professionals reviewing user stories written on Post-It notes on a whiteboard

Ken Schwaber, an early leader of Agile software development and co-founder of Scrum, once compared car production to software. He said that if cars were like software, for each three built, one would come without a motor, another would have problems in the first kilometer, and only one would arrive without defects.

Why do so many projects fail to represent basic customer needs? One of the main reasons is that some teams do not take the time to understand and track what their users want. Many of these misunderstandings could have been avoided with user stories.

I’m a Scrum Master and Agilist, and user stories help me understand what customers need and allow me to better direct my team. Below, you will learn more about user stories and why they are important. Then, you’ll find seven tips on effectively utilizing them in your projects.

What Are User Stories?

User stories are short, sentence-long descriptions of who your end-user is, what ability they gain through each function of your product or service, and why that functionality is important to them. These stories help your team get a macro-level view of why they are focused on certain tasks. This also boosts your team’s morale by showing them how they are improving the end-user’s day-to-day life.

User Story Template

At this point, you may wonder what user stories look like. These stories should be brief, short enough to fit on an index card. For each product or service your team creates, there should be dozens (perhaps even hundreds) of user stories in total.
Here are the three core components that each user story needs:

As a [briefly describe target user],
I need [goal that a core function of your product or service provides]
so that [benefit your user receives].

Tip #1: Produce Small-Scale User Stories for Each Agile Sprint

In traditional project management styles like waterfall, the user only validates the product at the very end. This method is flawed because the development team cannot receive feedback from real-life customers until the very end. Users also must wait much longer to receive the product or service they need.

The Agile management style has a different approach. Agile teams work in sprints to produce iterations that slowly satisfy more and more of the user’s needs. You can create a new user story (or several) for each sprint. That way, user stories represent a small delivery that incrementally builds on your customers’ core requests. To learn more about how user stories fit into the larger Agile process, read our article on Agile product development.

Tip #2: Use “Invest” to Build Clear, Concrete User Stories

User stories can’t be vague or unmeasurable. They need to be clear and, most importantly, realistic for the scope of your product or service. That is why a good user story must follow some criteria. Use the acronym “INVEST” to ensure you’re on the right track with your user stories.

 

    • Independent: All user stories must be unique and separated from other stories.

    • Negotiable: User stories represent what customers want. However, what they want may not be possible at this time. In that case, consider the user’s dreams as a starting point and find a negotiable middle ground.

    • Valuable: These stories must always bring business value. Without this, you don’t have a viable product.

    • Estimatable: The size and scope of the user story must be clear.

    • Small: Keep the scale reasonable. That way, your team doesn’t bite off more than it can chew.

    • Testable: Have a system in place to check how well your team has fulfilled the promises outlined in the user story.

Tip #3: Create User Personas

Since a user story aims to address your customers’ needs, it helps to create a user persona. Start building your persona by establishing these three parameters:

 

    • Actor: The user of your new product. This will give you a good mental image of your target demographic. (Example: A store owner)

    • Action: One of the tasks this user wants to do with your product or service. (Example: Send a promotional email to past customers)

    • Goal: The reason why the user wants to complete this task. What is their motivation? (Example: So past customers will come back and buy more)

Now, combine the actor, action, and goal to create your user story. Here’s an example:

As a store owner, I must send a promotional email to past customers
so that they will come back and buy more.

Tip #4: Avoid Ambiguities

As you’ll remember from tip #2, all user stories must be estimatable and testable. You need to clearly understand what the user needs and have a way to test that your product or service achieves that goal before sending it out into the world. That is why you need to avoid vague language in user stories.

Here is an example of a user story without ambiguities:

As a business professional, I must receive a notification 15 minutes before a
scheduled meeting so I can be prepared for all my appointments. 

Tip #5: Validate the Story

So now that we have a clear user story, how do we test to ensure the final product achieves this goal? The best way to make your user story testable is to create a scenario.

Let’s return to the user story from the previous tip: As a business professional, I must receive a notification 15 minutes before a scheduled meeting so I can be prepared for all my appointments.

Now, let’s look at two scenarios that make this user story testable.

Scenario #1: User has an upcoming appointment
Since the user has set up a calendar and has an upcoming meeting
When it is exactly 15 minutes before the appointment
Then a notification must display with the meeting details

Scenario #2: User has an empty calendar 
Since the user has set up a calendar but has no upcoming appointments
When they check their calendar  
Then there should be no outstanding notifications

With scenarios, you have a clear idea of whether your product or service meets the needs outlined in your user story.

Tip #6: Stories Should Be Small and Achievable

Using the Agile method, Scrum Masters like myself try to keep individual deliveries small. Then, new iterations give customers increasing value. Therefore, user stories need to stay simple. A good approach is to split functionality into numerous stories.

Here is a bad example of a small-scale user story:

As a professional, I must see, reply, and delete emails,
so I stay in communication with coworkers. 

Now, let’s break that user story up into smaller, more deliverable pieces:

As a professional, I must be able to delete emails,
so I have a clear view of ongoing conversations. 

As a professional, I must be able to review deleted emails,
so I can retrieve conversations I accidentally deleted. 

As a professional, I must be notified of new emails,
so I do not fall behind on urgent conversations. 

As a professional, I must be able to see when I’ve already read an email,
so I don’t waste time rereading old information. 

As a professional, I must be able to reply to emails,
so I maintain proper communication with coworkers. 

As a professional, I must be able to review my replies,
so I can ensure I’ve made no mistakes in my responses. 

There were at least six different user stories hidden within this example. Be sure that you set reasonable expectations for your team during each sprint.

Tip #7: Visualize the Story

While user stories are helpful, many people also benefit from visual aids. Here are two ideas to bring your user stories alive for visual learners.

Storyboards: Tell each part of the user’s journey with images. Begin with the moment they realize they need help. Then, show the user working with your service or product and finally achieving their goals. Websites like Pinterest are great for finding images, or an artistic member of your team can create their own.

Diagrams: Better illustrate how parts of the story connect by using this visual aid.

To Review

User stories explain why people need core functions of your product or service. Having well-established user stories throughout each sprint will help your Agile team stay on track and motivated. User stories are short and should answer three questions: 1) Who is your user? 2) What do they need from your product or service? 3) Why is this important to them?

When in doubt, remember the “INVEST” acronym. These stories should be independent of any other story. They should also remain negotiable to what is possible at this time and valuable to your company’s shareholders. User stories are estimatable in size, small enough for your team to reasonably achieve, and testable. There are many tools your team can utilize to understand user stories, including visual aids and user personas. Finally, once your sprint is over, you can test that you meet users’ needs by running scenarios.

Good luck! And, if you need help building your digital products and using an Agile approach to bring faster value to your customers, contact us today.

Stay up to date on the latest trends, innovations and insights.