Written in collaboration with Ruchi Choudhary
User stories are a general informal explanation of a software feature, written from the perspective of the end-user. It is a key component of Agile. Agile, as a method, puts people first, similarly, User stories put the user at the centre of the conversation.
A feature must be decomposed into smaller and more specific User Stories. Therefore, Story is a small independent sub-set of a feature.
Let’s understand with the help of an example.
This is the Facebook Login Page (Mobile Version).
Let’s assume, the team developing the Facebook Mobile Login Page realise that to finish every single bit of the feature, they would require around 1 month.
But actually, they have two weeks to release the first version.
What should they do?
They would have to break down large features into smaller, more specific user stories.
For the project to pan out smoothly, prioritising the crucial features of the page will be required. Here, logging into facebook with the email would take precedence over every other additional feature. This is because without the ‘login with email’ option, the user cannot even begin operating the platform. The rest of the feature, however important, is additional.
Therefore, the initial usable feature would be log in with email and
password, this could be the first story. The second story could be:
forgot password, the third could be login with phone number, and the fourth could be create account.
To go live with the first version, the team now has to just implement the first story and they’re done. They can release the next 3stories in the next version of the application.
Focus on User
Notice that none of the stories above are written from a technical perspective. For example, there is no story called ‘API changes for mobile login’.
Imagine if we had written the stories from a technical perspective rather than the user perspective. The stories might have looked something like this —
- Create backend API for Login
- Create backend API for Sign-up
- Create backend API for Forgot Password
- Create UI
With this set of stories, there is nothing we can release to the user till the entire set of stories was complete. If something higher priority came after a couple of weeks, all the work done before that would go waste.
Therefore, user stories ensure the team keeps the user in mind while developing any feature, and ensures that the user has something to see for any story that the developer completes.
What Are Some Other Advantages of User Stories?
Allow for flexibility in planning. If the team is done with the first story very quickly, they can even consider the possibility of going live with the second story in the first release.
Allow for planned parallel work. If you look at the three stories, you’ll realise that the first needs to be done before someone can work on the second or the third. But the second and the third can happen in parallel. The breakdown into small stories help the teams plan for parallel streams of work.
Aids in prioritising the crucial parts of development. With user stories, we can easily deprioritise features that are not critical. For example, after one version, if the team decides that there are other features in the website that are more important than login with phone number, they can deprioritise that feature.
And some more advantages….
- Help maintain momentum
- Help the team be on the same page as the end-user
- Put user perspective at the centre
- Easier to track progress because the entire developing process
is on record, making cross verifying easier
- Smaller goals boost morale in teams
In our daily personal lives, we always make sure that we systematically perform our routine chores, prioritising the more important tasks above the lesser ones. We also break down our chores into parts that make everything more coherent. But when it comes to work-life, we do not hold these basic concepts in the same relevant light. We forget that applying the same principles at work could make work so much easier and orderly.