Why would we even need something like user stories? Based on my view this is an intermediate state of information between long and boring business summaries and technical tickets. In my cycle of articles about IT management we spoke about SCRUM and we discussed about process, responsibilities and etc. but we didn’t discuss actual challenges which we are solving. There are users, users have needs, based on that needs certain services and products are being developed. And to deliver solution to user we first need to write down an idea and transfer this idea to developers. Since modern software development is complex and its complexity has many reasons, one of the common challenges is to solve information complexity and one of the methods is to break down big peace of functionality into user stories.
What is user story and how to write it?
A user story is a concise description of a user requirement or feature, typically written from the perspective of the user. User stories are used in Agile software development as a way to capture and communicate user needs and prioritize development efforts.
User stories typically follow a simple format:
“As a [user], I want to [action], so that [goal].”
“As a customer, I want to be able to search for products by category, so that I can quickly find what I’m looking for.”
How to be sure that we will deliver right thing to the users and correctly explain needed functionality to developers? Based on the book “User story mapping” by Jeff Patton I will try to describe the full process and provide a check list based on it which you can convert to a template. Jeff Patton describing User story mapping - which is a technique for visualizing and organizing the features and functionality of a product in a way that aligns with user needs and goals. The process typically involves the following steps:
Identify user personas: Start by identifying the different types of users who will be using the product. Create a persona for each user type that includes information about their goals, motivations, pain points, and behaviors.
Define user goals: For each persona, identify the high-level goals they are trying to achieve by using the product. These goals should be specific, measurable, achievable, relevant, and time-bound (SMART).
Map user activities: For each user goal, identify the specific activities or tasks that users will need to perform in order to achieve that goal. These activities should be mapped out in a linear sequence from left to right, with the most basic activities at the top and more complex activities below.
Add user stories: Once the activities have been identified, create user stories for each activity that describe the specific features and functionality required to support that activity. These user stories should be added to the activity on the map that they correspond to.
Prioritize user stories: Once all the user stories have been added to the map, prioritize them based on their importance to the user goals and the overall product vision. This can be done using techniques such as dot voting, affinity mapping, or the “Buy a Feature” game.
Plan releases: Use the user story map to plan product releases by grouping related user stories into “themes” or “epics” that can be delivered incrementally over time. This can help ensure that each release delivers value to users and moves the product closer to its overall vision.
Here is a checklist which will help you to develop a process from discovery till creating a full picture. Time to time I’m quite getting tired of monitors and screens of laptops and sharing opinion with author to place all the tickets on physical stickers and place them on the wall.
- Define the product and its users:
- Conduct user research to gain a deep understanding of the problem the product solves and the users it serves.
- Use personas or user profiles to capture the key characteristics of the users and their goals, needs, and motivations.
- Define the scope and boundaries of the product to ensure a clear focus.
- Identify user activities:
- Use the research insights to identify the key activities that users engage in to achieve their goals.
- Map out the user journey, from the initial trigger or need to the final outcome or result.
- Use visualization techniques, such as flowcharts or journey maps, to help capture and communicate the user journey.
- Create user stories:
- Use the user activities as a starting point for creating user stories.
- Write user stories in a concise and simple format that captures the user’s perspective and goal.
- Collaborate with stakeholders, including users and team members, to ensure user stories are well-defined and aligned with the product’s goals.
- Prioritize user stories:
- Use prioritization techniques, such as MoSCoW or Kano analysis, to prioritize user stories based on their importance to the user and the product’s goals.
- Consider the impact of each user story on the user experience, product adoption, and business value.
- Involve stakeholders in the prioritization process to ensure alignment and shared understanding.
- Map user stories:
- Use a physical or digital wall to create the user story map, which consists of user stories organized into groups or themes along the horizontal axis.
- The vertical axis represents the level of detail or complexity of each user story, with higher-level stories at the top and lower-level stories at the bottom.
- Use different colors, icons, or labels to differentiate between user stories that are essential or optional, or those that have high or low priority.
- Add detail to the map:
- Use sticky notes or other visual cues to capture additional details for each user story, such as acceptance criteria, dependencies, and design ideas.
- Group related user stories together to create more cohesive themes or epics.
- Use a digital tool, such as a user story mapping software or a collaboration platform, to facilitate remote collaboration and updates.
- Use the map to guide development:
- Use the user story map as a reference point for planning and tracking development work.
- Break down user stories into smaller, actionable tasks that can be completed in a sprint or iteration.
- Use the map to identify gaps, dependencies, or conflicts, and adjust the plan accordingly.
- Regularly update the map to reflect changes in user needs, feedback, or priorities.
Based on the process described above it’s really important to hold effective meetings and Jeff Patton provides some recommendations.
- Set clear meeting objectives: At the start of each meeting, make sure everyone understands the purpose and goals of the meeting. This can help keep the conversation focused and productive.
- Encourage participation: Encourage everyone on the team to participate in the meeting, including those who may be more reserved or introverted. This can be done by asking open-ended questions, using techniques such as brainstorming or mind mapping, and providing opportunities for small group discussions.
- Use visual aids: Visual aids such as whiteboards, sticky notes, and diagrams can be very helpful in facilitating team meetings. They can help illustrate complex ideas, keep the team focused on the topic at hand, and encourage collaboration and discussion.
- Manage the conversation: As the facilitator, it’s important to manage the conversation and ensure that everyone has a chance to speak. This can be done by setting ground rules for the meeting, actively listening to each person’s contributions, and summarizing key points as the conversation progresses.
- Stay on track: It’s important to stay on track and keep the meeting focused on the agenda. This can be done by assigning time limits to each agenda item, using a timer to keep the conversation moving, and gently redirecting the conversation if it strays too far off topic.
- Follow up: After the meeting, it’s important to follow up with the team to ensure that everyone understands what was discussed and what actions need to be taken. This can be done by sending a meeting summary or action plan, scheduling a follow-up meeting, or assigning tasks and deadlines to team members.
But Elon Musk’s rules might be applicable in some cases as well especially the last one:
- Avoid large meetings
- Leave a meeting if you’re not contributing
- Forget the chain of command
- Be clear, not clever
- Ditch frequent meetings
- Use common sense
You can check as well:
Photo by Stephen Leonardi