… so that I can make better stuff.
What are User Stories?
User stories are a powerful tool for making better software (or anything with users). Today, I want to show you what a user story is, why user stories are a tool to making better things, and why user stories go beyond the jokes that circulate in online developer circles.
A user story is simply a story written from the user’s perspective that describes what the user wants to do and why. The title of this article follows the first part of the classic user story template. It tells a story from my perspective: who I am (a team member), what I want (better user stories) and, most importantly, why I want that (so that I can make better stuff).
The Old Jokes about User Stories
User stories are also kind of a joke in developer circles online. There is a Goat User Stories twitter account which posts user stories from the perspective of a goat. There is also a joke in the form of a user story that has been circulating ever since user stories became a part of software development: “As a manager, I want you to implement the sign-in form, because I said so.”
Why is this a joke? Well, because even though it fits the template we expect for a classic user story (As a $user_type, I want to $do_something so that I can $reason.), it is the opposite of a true user story. A true user story is from the perspective of someone who has skin in the game– someone who uses the product. The joke also inverts the “why”-centered thinking of a user story and replaces it with the exact problem we are trying to avoid– creating features with thin to no justification from the user’s perspective.
Writing Better User Stories
So what makes a good, non-jokey, user story? Good user stories focus only on the user, what they want, and why they want it. The template is a means to an end. Writing a user story according to the template makes you imagine that you are the user, and it makes you think about how you would want to use the system. The template is a tool to prevent you from retreating back into the developer’s perspective.
Here are my strategies for writing better user stories:
- Write the stories with a real live user at the table. If you can’t get a real user, get the person who is closest to the user (maybe the help desk person, your client, or the sales person).
- Many projects have more than one type of user. You might have “As a user…”, “As the business owner…” and even “As the developer…”. Reserve that last one only for features that are purely for making things easier for the developer of the system.
- Start with “why.” I like to fill in the “…so I can…” part of the template first, so that I know I understand the problem before moving on to proposing a solution.
- Be specific. Could you use the story to write a “how to” guide for your user?
- Be an actor taking on the role of the user. Imagine yourself as that person. Then ask yourself what outcome you want, why you want it, and how you would want to use the product to achieve it.
- Think slowly and carefully.
- Re-read the story line-by-line and ask yourself whether each point is believable. Imagine having a conversation with one of your users in which they tell you the user story aloud. Would a user ever say what your user story says?
If you follow this guide, you will make better software and your users will thank you.