Logo of AccediaContact us
Logo of AccediaOpen menu icon
  • Software Development

User stories in Agile development: The why and how

  • By

    Ivan Lazarov

15.02.2022

Writing user stories is probably the most popular agile technique for capturing product functionality. A user story is a description of how a feature works from your user's perspective. We can describe user stories as a placeholder for a conversation. They help product owners, dev teams, and stakeholders better understand their users' needs. It is essential to know who your users are, what they want and why they want it.


Why writing user stories matter?


User stories bring many benefits to agile software development process. In fact, understanding the purpose of user stories is essential to any Agile practitioner. They reflect the values “people & interactions over processes & tools” and “customer collaboration over contract negotiation”. So, let's look at the major advantages of writing user stories. 


  • User stories provide an excellent way to define your product with the right level of clarity. They are understandable by all involved parties – technical and non-technical team members. Thus, they empower meaningful product discussions.
  • User stories encourage the participation of non-technical members. They remove the technical lingo from the requirements description. Thus, any member of the team can contribute by thinking “as a user”.
  • User stories can be used for iteration planning levels. You can estimate written user stories, based on how difficult or time-consuming are to develop. Thus, you can plan more efficiently your future iterations.


When to apply Agile in software development? Explained through Cynefin


In Accedia, we acknowledge the power of the user stories. That’s why we use the technique regularly in our projects. They help us and our clients reach cross-team alignment on what to build, for whom and why.


5 tips for writing better user stories


In agile software development, the user stories follow the popular format “As a , I want , so that ” . The structure proved to be reliable, as it captures the critical details about your user. Yet, knowing the right format is not enough. You should be able to tell effective stories with your product functionality descriptions. Thus, below are my five tips for writing user stories that can help you in your product development journey.


Define your users


Before starting to write user stories, you need to identify who your users are and why they need your product. If your story starts with “as a user”, this is often a sign that you didn’t think of your particular user. You cannot write stories from a single perspective and have those stories reflect on the experiences, backgrounds, and goals of each of your user types. If you don’t know who your users are and why they want to use your product, you should not write any user stories at all. Instead, you should first start by doing some user research. For example, you can interview and observe your users. The goal is to have a better understanding of the different types of users who will be using your product.


Let’s say that you are developing a job board application. You’ve done some preliminary research and you have come up with the following user roles - Active Job Seeker, University Graduate, Recruiter, Administrator.


Start with epics 


Epics are big, low-fidelity user stories. They are usually broken down into smaller, detailed stories, later in the process. In the early product development phases, you don’t have many details about the specific needs of your users. Thus, starting with epics allows you to draw a high-level picture of your product. This is very helpful for your development team and stakeholders, as they can understand the rough scope and product vision.


If we continue our job board example, we can identify a few epics, as a start:


  1. As a Job Seeker, I want to post my resume on the site, so that I can use it in job applications.
  2. As a Job Seeker, I want to search for a job, so that I can get on the career ladder.
  3. As a Recruiter, I want to post a job, so that I can find applicants for the role.


Refine your user stories


When you start getting more details about “what” and “why”, you can slice the epics into more detailed user stories. Ideally, you want to complete the story in one iteration. Pay attention to the language you use when you write them. You want to use simple words and an active voice. It’s also very important to not use any technical terms, as you don’t want to confuse your stakeholders. Usually, the majority are non-technical people.


Let’s assume you know more about how the Job Seeker needs to manage his resume, so you can refine the epic into the following user stories:


  • 1 a) As a Job Seeker, I want to upload my resume to the site, so that I can use it for a job application
  • 1 b) As a Job Seeker, I want to edit my resume so that I can add extra information
  • 1 c) As a Job Seeker, I want to remove my resume from the site so that it’s no longer listed in my profile.


Add acceptance criteria


Acceptance criteria, also called conditions of satisfaction, are extra requirements that make the user story complete. In short, acceptance criteria specify conditions under which a user story is fulfilled. They are very useful for the development team. Concisely written they can help you avoid ambiguity and prevent miscommunication. Also, acceptance criteria serve as a basis for testing, aimed to prove if the system works as expected. The rule of thumb suggests that you should include from three to five criteria for a detailed story. If you have more, then your story is too big, and you can further break it down.


To illustrate it, for story 1 a), we can add the following acceptance criteria:


  • The user receives confirmation upon successful upload
  • The resume is visible in the user’s profile
  • The resume record is added to the database


Make user stories a team effort


Last, but not least, make writing the user stories a team effort! Usually, the Product Owner is considered responsible for “owning” the backlog of user stories. Yet, to write good user stories, you need to also capture the inputs and feedback from all involved parties. From your business stakeholders to your development team. Thus, it’s crucial to make the whole process transparent to everyone. Make sure the engagement of your stakeholders is sufficient. Keep everyone updated regularly.


To wrap up 


Writing efficient user stories is one of the most important aspects of agile software development process. They help you tell your product story in a more convincing way. The result is having all involved parties aligned and sharing the same vision. 

  • Author

    Ivan Lazarov

    Ivan is Business Analyst in Accedia. He is passionate about problem-solving, always trying to find a better way to deliver value to his clients. Strong Agile believer and supporter, Ivan is applying agile methods to his projects, whenever he has the chance.