https://unsplash.com/photos/nJdwUHmaY8A
User stories are the connection between users and developers. They close the gap between human understanding and engineering. There are many articles on how to write User Stories, but none of them gave a useable practical guide. Therefore, I try to create my own.
- 1. What is a User Story?
- 2. Where is it useful?
- 3. How do I write a good User Story
- 4. How all comes together
- Conclusion
- Useful links & credits
"Art is the elimination of the unnecessary." ― Pablo Picasso
In short, User Stories are a description of the software functionality from the perspective of a user. In the past User Stories were simple notes written on small cards. Today most people use software with different types of issue system, but the concept remains:
Use small units of tasks and group them in you project.
User Stories consist of acceptance criteria, which are even smaller tasks that can be checked off by the developers.
Yodiz provided an excellent list in their article, that these criteria should contain:
Negative scenarios of the functionality.
The impact of a user story to other features.
UX concerns
Functional and non-functional use cases
Performance concerns and guidelines
What system/feature intend to do
System of feature doesn't do anything, isn't supposed to do
End-to-end user flow
User Stories are used in an agile project management environment. cPRIME defines it as:
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Yodiz's article provides a perfect introduction. They break down an agile scrum process into 12 steps:
- Step 1,2 - User Stories and their evaluation
- Step 3,4 - Story prioritization in the backlog
- Step 5 - Set time frame
- Step 6,7 - Sprint planning and task creation
- Step 8,9,10,11,12 - Sprint iteration (cycle of sprint output and reviews)
For writing a good User Story it is an necessity for the writer to see things from the perspective of a actual user. This can be hard when you have already been working on the project and even wrote some code yourself.
Try to get many different people to write User Stories, since each has a different view on the functionality aspect. The more input you have the better your project will be covered and in the end provide a result in the first result that is capable to fit a broad audience.
Depending from which field you're coming, you tend to use jargon. That can lead to misunderstanding and slows down the processes of the project. The goal is to use as simple language as possible. Depending on the context language is interpreted differently. Be sure to stay neutral and to the point.
The component approach that is used in programming, can be used in this context as well. Try to write the User Story as small as possible. User Stories already fit in the bigger project management context - let them be small. They can be used like a checklist for the development team.
https://unsplash.com/photos/xjSkI_seiZYUser Stories
are the smallest units that are checked off in a certain timeframe (sprint
). The result should be small software components, which can be delivered to the customer.
Epics
contain more User Stories and are completed over more sprints. Epics not only contain a small software component, but a collection of components that unify into a software feature.
Versions
contain multiple epics and represent a shippable product for the customer.
As we can see, User Stories are a great and necessary tool in a very commonly used project management pattern. The User Story itself is the connection between the human perception the technical implementation. It is the small brick, that is used with other bricks to build a great wall. 🔨
- 📄 "Advantages of User Stories" - Mike Cohn (article)
- 📄 "User Stories" - Mountaingoatsoftware (article)
- 📄 "User Stories acceptance definition ..." - Yodiz (4min article)
- 📄 "Writing User Stories Examples and Templates..." - Yodiz (8min article)
- 📄 "Agile Project Management ... " - Yodiz (9min article)
- 📄 "Agile Scrum Explained ..." - Yodiz (article)
- 📄 "Agile Project Management Cheatsheet" - Mark C. Layton (article)
- 📄 "Epics, Storys, Versionen und Sprints" - Atlassian (article in German)
Please leave comments, feedback and suggestions as I am always trying to improve.
Share your thoughts - it's never been easier 😄