What makes a good user story in agile software development?

16 July 2019
Complete Guide for CTO & IT Directors
Microservices under X-Ray Three books image Download free ebook

Introduction

Working with our clients, we frequently get asked about how a perfect user story should look like in order to facilitate the cooperation between business and development teams. Below is a small write up on the subject based on our longtime experience.

User stories are central element to the agile/scrum methodology as they define every piece of work being done by an agile team. There are several important guidelines that needs to be followed to create proper user stories that fit well with the overall process.

Components of user story

The user story is an expectation about the system expressed from the point of view of the end user. The crucial elements of the story are:

  1. The role of the user in the system that is going to benefit from the system
  2. The short description of what the goal or intent of the user is
  3. The specific business value/benefit that we expect to achieve by implementing the user story

The user in the first point does not necessarily need to be the end user of the application itself. It is the user that is going to benefit from the change. In can also be an admin or even a person from the development team.

The business value statement will allow the team to focus on the big picture business expectation instead of specific system functionality. This allows the development teams to come up with creative ideas and not to go off the rails while executing the story.

In addition to the elements mentioned above, a user story should contain acceptance criteria, which are high level test criteria that confirm that the story works as expected. The acceptance criteria can be both functional and non-functional. Please note that this does not need to be full suite of tests for the feature – this is going to be developed by the agile team during the implementation.

Examples

  • As a site visitor I can create a new account so that I can get personalized experience on my next visit
  • As an admin I can create a new user group so that I can assign permissions to the user faster

A user story should be small enough to be executed within one sprint. If the team believes that the user story is too large it needs to be split. The reason is that in agile methodology the work is being delivered incrementally in sprints, which are allotted time slots of team’s work. Each sprint should result in delivery of business value as defined by the user stories included in the sprint.

How to organize stories?

To enable better management of large user stories there were additional story types introduced: enablers, spikes and epics. An enabler is a story that is not delivering business value at the end of the sprint. Instead, it enables the team to deliver the value in the subsequent sprints, building on top of the outcome of enabler story. Also, the work related to system architecture, refactoring can be captured as an enabler.

The enabler stories should not be overused though: the strength of the agile process is in rapid delivery of the business value and feedback from the actual users. A series of enablers followed by a single user story that brings them to the user would be contrary to the purpose.

A spike is a research or investigation work that needs to be performed to properly design or estimate an approach or user story. The purpose of this story is to reduce the risk or uncertainty related to use of specific technology, estimation of a user story or a functional scope. Spike might also include building a small prototype.

Also, the user stories can be organized into epics, which are larger initiatives that group individual user stories, spikes and enablers related to particular business area.

Marcin Wudarczyk

Latest Posts
bots with python

Bots with Python 101

As we continue to embrace the digital age, we encounter countless innovative solutions that improve our daily lives, making mundane tasks more efficient, or even automating them entirely. One such innovative solution is the ‘bot’, a broad term that has various definitions depending on the context in which it is used. In its essence, a […]

/
product roadmap example

Which Way To Go – Product Roadmap Example And Insights

A quick overview of product roadmaps, not only for product managers. Briefly, What Is A Product Roadmap? A product roadmap is a visual representation that outlines a product development and evolution over a defined period, serving as a communication tool to align stakeholders around the product’s direction, goals, and milestones. In general terms, the roadmap […]

/
how to secure bluetooth devices

How to Secure Bluetooth Devices?

In today’s interconnected digital era, our lives are continuously shaped, molded, and improved by the innovative technologies we embrace. Every once in a while, a technological advancement emerges that becomes so deeply embedded in our routines that it’s hard to imagine a world without it. Bluetooth, a wireless communication protocol, is certainly one such marvel. […]

/
ux review

UX review: How to Perform a Usability Audit and Why it’s Important

User experience is crucial for the success of any digital product. A properly conducted UX review can help you identify flaws in your app’s or website’s design and fix them. Find out how a usability audit works and what you can gain from it. It’s hard to overestimate the impact UX has on business. According […]

/
prototype vs proof of concept

Prototype vs Proof of Concept: A Dive into Digital Product Development

In the realm of product development and innovation, two terms are often bandied about with great fervor – ‘Prototype’ and ‘Proof of Concept’ (POC). These methodologies play pivotal roles in transforming an abstract idea into a tangible product, serving as critical stages in the pathway to commercialization. However, these terms are frequently misunderstood, often interchanged […]

/
What is Python Used for in Finance

What is Python Used for in Finance?

As we delve into the digital age, the fields of finance and technology have become intricately intertwined, birthing an innovative hybrid sector known as financial technology, or “Fintech.” As this sector expands and evolves, one programming language stands at its epicenter, powering the development and execution of numerous innovative applications — Python. In a world […]

/
Related posts
prototype vs proof of concept

Prototype vs Proof of Concept: A Dive into Digital Product Development

In the realm of product development and innovation, two terms are often bandied about with great fervor – ‘Prototype’ and ‘Proof of Concept’ (POC). These methodologies play pivotal roles in transforming an abstract idea into a tangible product, serving as critical stages in the pathway to commercialization. However, these terms are frequently misunderstood, often interchanged […]

/
angular advantage

Advantages of Angular in Web Development

Angular is one of the most widely used frameworks for building amazing UIs. It can speed up the development process and save a lot of costs. Find out about its features, key advantages, and limitations. Angular is a leading open-source front-end framework for developing web applications and one of the most popular software development tools […]

/
django vs flask

Django vs. Flask. Which framework will work better for your web development project?

Flask and Django are the top two Python frameworks for web development. They are different in many ways, but both can provide great results in the hands of skilled software engineers. We’ve compared Flask vs. Django to figure out what their superpowers are. The Python programming language has been experiencing a rapid rise in popularity […]

/
project manager vs product manager

Product Manager vs Project Manager: Main Differences and Similarities

In today’s fast-paced and highly competitive business world, organizations need to have a clear understanding of the differences between a product manager and a project manager. While both roles are critical to the success of a company, they have distinct roles and responsibilities. In this article, we will explore the similarities, differences, and roles of […]

/
invision vs figma

InVision vs. Figma: Key Features, Differences, and Similarities.

Figma and InVision rank among the best UI design tools. Learn about their key features and how they can speed up front-end development. It’s hard to overstate the importance of UI design in web and mobile development. To be successful a digital product needs to be an eye-pleaser and a UX gem, in addition to […]

/
flutter logo

Flutter: the number one framework for building cross-platform apps

Flutter is an SDK for building fast apps for different platforms. It comes with comprehensive development tools and streamlines designing high-performance UIs. Find out why Flutter is a top-quality and cost-effective alternative to native app development. Flutter is Google’s open-source toolkit for developing high-fidelity cross-platform applications. It allows you to create native software for Android […]

/
Talk with experts

We look forward to hearing from you to start expanding your business together.

Email icon [email protected] Phone icon +1 (888) 413 3806