What Is A User Story in Agile Software Development?
You may hear programmers, project managers, business analysts and other members of a software product team talk about “user stories”–but what is a user story? Simply put, a user story is a short, informal way to describe a piece of functionality or a feature in a piece of software, from the perspective of an end user. User stories are commonly used in the Scrum project management framework to depict the expectations of end users in a way that is easy to understand and prioritize.
What is a user story?
A user story will typically follow this pattern: “As a [type of user], I want [this capability], so that [an outcome].” For example, “As an online shopper, I want to sort products from low to high in price, so that I can find the best deal.” In this case, “online shopper” is the type of user, the capability is “sorting products from low to high in price”, and the outcome is “finding the best deal”.
User stories are supposed to be very short–only a sentence long–and focused specifically on the needs of the end user. They are not written with technical language, and they do not assume any knowledge of how the software actually works at code level–because most end users aren’t programmers! A user story often serves as a starting point for conversations between software developers, designers, product owners, and other stakeholders to discover the details about a feature and its implementation.
Why do we use user stories?
User stories are an easy way to encapsulate software requirements. When software requirements are conveyed using user stories, those requirements are usually further broken down into sub-tasks that will end with the software having the feature which fulfills the user story. In our example above, in which an online shopper wishes to sort products from low-to-high in price in order to find the best deal on an item, the task breakdown may look something like this:
- Add “sort low-to-high” button to user interface
- Implement algorithm to sort products by price
- Add new verbiage to the UI to signify when products are sorted by price
Even if developers need to adapt the way a problem is solved, the user story lets everyone know what the “end result” should be. Because they are non-technical and concise, they also allow all members of a development team to be focused on a particular task or goal without getting bogged down in the implementation details.
Also, user stories keep the focus of the requirements on the end user. A common hazard that development teams can fall into is arriving at conclusions that are not especially user-friendly, especially if the team consists of many “technical” individuals (programmers, testers, etc). In reality, end users of software don’t care how the software does what it does–they only care that it meets their needs!
Conclusion
User stories are often used in Agile software development because they effectively encapsulate requirements while keeping the focus on the end user. They also help keep all members of a development team “on the same page” by allowing the details of a particular task’s implementation to be abstracted away behind phrases that non-technical members can understand. This makes it easier to organize projects, prioritize tasks, and create software quickly. Now, when you start to work on a Scrum project, you’ll know what folks mean when they talk about user stories–happy coding!