For starters, a user story is a term related to agile development that describes the features of a product in detail from the perspective of an end-user. Writing great stories is important for the overall software development as they convey the exact requirements to the development team and helps them understand the desired functionalities. But as it goes, writing great stories is not as easy as it sounds. A lot of product managers (or product owners) face issues in articulating the what and the why of the feature in user stories leading to confusion among agile team members resulting in product failures. It is tough to understand their requirements. A lot many others focus too much on ‘What’ instead of ‘How’. And the list goes on and on…..
This brings us to an important question – how should a product manager write flawless user stories that are not only easy-to-understand by the developers but also explain the desired functionalities impeccably?
Let’s find out. But before that, let’s have a look at some great story writing styles.
Story Writing Styles
More often than not, a user story follows the following template:
As a <type of user>, I want <to do an action> so that <I could get a benefit>
Let’s see what each of these phrases mean:
As a <type of user> – here, we are explaining the user type the software is meant for
I want <to do an action > – here, you need to talk about the activity the user needs to perform So that <I could get a benefit> – here, you need to explain the business or user benefit behind the proposed feature
Let’s understand this better with the help of a few examples.
As an online shopper
I want to apply multiple filters in the search
So that I could find the products I am interested to buy
As a work-from-home employee
I want to create my task list
So that I could not miss acting on them
My Recipe for Story Writing
Here is my tried and tested recipe for story writing based on my work experience of more than a decade. I have worked with development teams of different sizes in building enterprise platforms, B2B SAAS, and mobile apps. My strategies have evolved with time as I got to learn from my peers in product management, brilliant software developers and QA specialists I have worked with.
Evangelize concept with feature definition
Before you start writing a story, it is essential to understand its impact and repercussions on the end-customers. How do you think a certain feature will better the lives of the customers? Are there any other features that could deliver the same results? Is there a way to combine more than one feature to achieve what is intended?
Find answers to questions like these to define the features that you want your team to roll out. Only when you understand what exactly is required, you will be able to explain it to your team, and put it in words when writing a story.
How to write Acceptance Criteria?
User stories make things simple. They provide an easy way to understand the user needs and also provide the criteria that developers need to fulfill to achieve the desired value. Here are the reasons why a well-defined acceptance criteria is of utmost importance:
- To ensure that every member of the team understands the requirements and is on the same page
- To clarify all the important feature details that the team members should know before getting started
- To help the team members know the definition of done
In the most simplified way, think of acceptance criteria as an end to end user flow in all possible directions in which any user may interact with the given feature.
In other words, it provides a detailed insight into the requirements of users and helps the team understand how the user will interact with the feature. It also defines the benchmarks against which the team should consider a story as done.
Add Validations to Acceptance Criteria
You need to provide inputs on the expected user behavior, when they trigger any action or enter any specific data value, based on the well-defined validations and acceptance criteria, This makes sure that the proposed features work in line with the pre-defined business rules, and that outcomes are not compromised.
For instance, if a functionality involves creating any entity, the validations on the name (allow what all characters, numbers, special characters) would be helpful.
Talk about forward and backward compatibilities
If you are rolling out a new feature, it is important to ensure that it is compatible with both previous and future versions. This will help you in two ways: you will end up enhancing the user experience, as your users won’t have to meet stringent requirements to access the newly rolled out features. Secondly, it will help you in determining the impact of new features on your existing users. For example, if you are adding a new feature or making some improvements to an application, the way users enter their data or use your application will get impacted. Product managers must ensure that the acceptance criteria is built around compatibility for existing features.
Highlight the impacts on other features
It is important to ensure that your newly rolled out work in harmony with the existing features, and enhance the overall functioning of your product. Thus, it is necessary to understand the kind of implications that your changes will have on the existing features. More often than not, these impacts are discovered in the later stage of development when it has already become too late to make any changes due to limited bandwidth, This often results in half-baked features which instead of improving your product, end up hampering its functionality.
Back-up with UX Design
As it goes, a great user story is not only about writing the functionality in a textual format, but it needs to be backed up with a UX design in the form of a prototype (with style guide and related UI screens). This is what is expected from the design team as they work with PM on any feature. It is important to provide UX design inputs to developers and QA guys to help them better understand the requirement of complex features.
Add UX writing content with placeholder text
So, you have an idea of how your feature looks and works. But how will you enable different users in interacting with the feature as desired? This is when you write the acceptance criteria, you need to add placeholders (for corresponding labels, pop-ups content, error messages, and info-icons) in AC for UX writer to work upon. Ensure that you bring UX writer and UX designer on the same table and allow them to collaborate with each other so that UX design incorporates UX content. Otherwise, don’t be surprised that at a later stage, you need to change UX design due to a change in UX content.
As is evident, writing a story to ensure product success is not a tough task, all you need to do is to be holistic in your approach with much-required clarity to ensure flawless execution. What are your views on this? Let us know in the comments below.