Everyone who is familiar with Agile development will be familiar with user stories. When we first bumped into user stories we thought they were supposed to condense all the information about a feature, thus helping the development process. But the more we used them, the more we realized that the process to create effective user stories was more complex than we had imagined. Questions came to mind – such as, who is responsible for doing this? Are there risks if we use user stories as documentation? In this article, we will dive into the underlying concepts that form the foundation of user stories, and detail the “three amigos” method which we have found to be highly useful.
Three important concepts about user stories
User stories are firstly a tool to generate cooperation between team members. Secondly, they create a bond between consumers and developers, enabling the development of highly customer-focused products. And thirdly, they highlight the value of the delivery.
The purpose of user stories therefore is to articulate how a piece of work will deliver value back to a customer. Like any story, they should be easy to remember. A user story is a short statement that describes something the system must perform for the user, but what is really important is that a user story is a reminder of a future conversation that must be held by the team.
The “three amigos” strategy
One method to implement valuable conversations around user stories is the “three amigos” strategy. This method states that three perspectives should be taken into account when writing user stories: business, development, and testing. Usually, three people, one from each area, attend this meeting, however, more people can participate if needed (e.g. architects, UX designers). In this meeting:
- The business stakeholder provides a high-level perspective to each user story and its business value.
- The member of the quality assurance team discusses the test cases already created for these business requirements and provides insights around acceptance criteria.
- The developer discusses the architecture, the low-level design with the team and provides a big picture of dependencies, tech requirements, and assumptions.
The people involved in this process depend on the project or product context. Any role having business, development or testing knowledge can participate, however at least one person from each perspective needs to be represented.
In each three amigos session, each story is analyzed in an informal conversation to give a shared vision of what will be delivered, to ensure that it is the voice of the team rather than just a single opinion.
Best practices for the three amigos method
Based on our experience, we have put together the following best practices when using this method.
Before you start
- By the time the meeting is held, the business analyst should have already written the user stories at a high level, in order to have material to work with.
- Have a definition of “ready” to check the story’s quality.
- Time box the meeting to ensure effective and timely conversations. A limit of 10 to 15 minutes of conversation per story is enough.
- Try to have senior team members in the three amigos sessions to cover the most fundamental questions in the stories.
- For each session, there should be different participants. By rotating participation you have the whole team involved as participants and as presenters. Rotation depends on the maturity of the team and does not apply to the business representative (product owner/business analyst).
During the meeting
- The business representative should present the story.
- QA members should present the test cases.
- User stories are enhanced through the conversation, the same as the test cases.
- Check for possible story splitting options.
- The team should validate dependencies and prerequisites.
- Assumptions should not exist. If there are doubts they should be clarified before the estimation session. We recommend reconsidering and refining those stories with open questions.
After the meeting
- The refinement will be used to solve the team’s questions. However by having a three amigos session, you should have already addressed most of the questions, thus making it easy to have the story ready for the sprint planning.
- Assign action items related to dependencies and prerequisites to specific members for monitoring.
- A good practice is to have the attendees of the three amigos session share the group of stories to the rest of the team during the estimation session. This ensures everyone’s participation and avoids the product owner or business analyst presenting all the stories.
Who should participate in the three amigos sessions?
This is one of the most interesting topics, because from the general experience these sessions should not just be for a business analyst, developer, or quality analyst. Our recommendation is that everyone who can add value to the meeting, and those who would like to join, are free to do so, especially if they have roles that could provide information for the user stories.
Even though the three amigos session is open to all team members, it differs from the refinement meeting. This is because participation in the three amigos is optional and the spirit is different. The refinement meeting should be held with everyone from the team and should not be replaced by the three amigos session.
It is important to keep in mind that the information should be as clear and accurate as possible. When a concern arises and the three amigos attendees are unable to answer, it’s usually best to check with the subject matter experts.
What is the best time to do it?
We recommend scheduling these meetings before the refinement and the estimation meetings. Bear in mind that this shouldn’t impact other activity in the sprint, like the demo/review and retrospective meetings.
But why? What are the real benefits?
By using three amigos, teams ensure collaborative requirements, collaborative test scenarios and consensus. It reduces the risks of the business team pushing incomplete features into development. Three amigos helps to ensure the definition of ready (DoR) criteria is fulfilled for every user story.
What’s important about the story is the conversation that is generated around it and the people involved in it. These discussions are more important than tools or written text. Sometimes these discussions lead to teams dividing user stories into smaller user stories (user story evolution). Meanwhile, a further benefit of these meetings is that they help reduce the likelihood of bugs, and their associated costs – and as we all know, the earlier a bug is detected, the cheaper its solution.
What happens with the refinement and planning process?
First and foremost, let’s remember that a user story will not be ready for development until it meets the definition of ready criteria. Members of the three amigos session should therefore focus only on the stories that meet those criteria.
Practicing three amigos allows us to have more effective and efficient refinement meetings. Although the idea during the refinement meeting is to have conversations around the user stories with everyone in the team, having already discussed details and solved some of the questions during the three amigos session, will help the team have better clarity around the story, and be more effective during its estimation.
In the same way, the planning session should become more fluid for the whole team, since the level of understanding of all user stories will improve, and there will be better synergies in the team. It also facilitates decision making, leading to a better group definition of the strategy to follow in the next sprint.
Beyond the stages of refinement and planning, the effects of three amigos sessions impact the last stages of a user story and most importantly, the product itself. For example, during the review meeting, all scenarios should already have been covered and completed according to the definition of done, including functional aspects, acceptance criteria, and tests, because they were identified in time during the three amigos and estimations sessions.
All these aspects are then approved by the product owner together with the rest of the team who have full knowledge of everything they have done to complete this piece of working software from its definition, regardless of the expertise of each team member.
Three amigos is a method where three perspectives come together to reach better quality user stories. It enables teams to examine the business, testing, and the technical aspects before, during, and after the development process.
To improve the quality of user stories and the process of refinement, we recommend first having the three amigos session. This process helps to enhance team collaboration by having different roles take ownership of the user stories.
Despite the fact that many of the points we have highlighted in this article may seem very theoretical, they are easy to implement. Achieving a good result with these practices will of course depend on the team synergy, maturity and openness to continuous improvement initiatives.