This Festive Season, enjoy 10% discount on all courses Use Coupon NY10 Click to Copy

Search

How to Write A Well-Formed User Story

Bill Wake has given us the mnemonic INVEST which help us in writing a well-formed User Story.   Working with User Stories may be easy, but writing effective User Stories can be hard.Top challenges in Writing User Stories:Getting teams engaged.Adding too much or too little detailSplitting stories.            Reminder!!!!!!!!!!!!!!!Story writing workshop is important to understand the User Story in details and who are the users of that particular functionality and what the users do to use the product.Conduct a Story writing workshop Quarterly.Three tips for a successful story writing session are:Set the single objective for the meeting.      Objective should be MVP (Minimum Viable Product.) and engage the team in various discussions on top user Stories with the Product Owner.Have the right participants,       Scrum master, Product Owner and other stakeholders, Development team (Agile coach) (optional) may be User Roles.Ask the Product Owner about the top requirement/features to be delivered.In MVP, Brainstorm the requirements in detail which will help in a more innovative solution.Visualize the relationship between stories.User Story Mapping technique:Document each step in the process. Writing the sequence of steps needed to complete the user  story will make it clearer which may have been overlooked and easier to estimate. The chances of missing any functionality can be minimized.We can read the below functionality is Login and enter credentials, you may also click on “forgot password” and then submit.Another advantage of using mapping is that we can get the prioritized list of user stories as mentioned in the below diagram by lanes.SPIDR has come to our rescue. Beautiful concept given by Mike Cohn.How to Split a User Story: Biggest challenge…Spikes: -The user story is large and difficult to split when there is a spike activity involved in it. Spike doesn’t lead to any working functionality but it just for the knowledge enhancement for the team for example-Investigation of new technologies and investigating different tools etc.Paths: - The user story may be large because of the different paths associated with it. See the flowchart below to understand the example: In an e-commerce website, after selecting the items the payment method cart, the payment method can be visa card, mastercard or PayPal.So, it is recommended to split the user story based on the number of paths taken.It can be easily logically split into small stories as:As a <user>I want to pay using credit card orAs a <user>I want to pay using PayPalHere, there is no need to split using visa card or mastercard, as both come under the category of credit cards.Interfaces: - Split a story across multiple interfaces (mobile OS or browser) or data interfaces.Example: As a <user >I want to display in Android device.As a <user > I want to display in IOS device.As a <user > I want to display in web browser.So, it can be split into 3 different logical user stories.Same is the case with the browser also. Split by different browsers example: Chrome, IE, Mozilla etc, because working in all browsers will take time and the efforts would be large.There are a few scenarios in which there are complex interfaces. A perfect example will be a sign-up form (with the details) but blank UI. It means the functionality is fully working with buttons and links but no color and proper UI/UX image. The UI can be built in subsequent sprints with a different user story. So, separating the UI work with functionality is also a good way to split the user story.There is a similar case when the user story says- As a <user> import data from a file and note says (Must support: CSV, Excel and XML) Split each supported file format with different user story as-As a <user> I want to import data from a CSV.As a <user> I want to import data from an Excel.As a <user> I want to import data from an XMLData: - Develop an initial story with a subset of data.Example: Suppose I need to buy a car.As a car buyer I want to know what is the best car in the market.To come up with this decision, we need to investigate many things example consider mileage, cost, big, small, comfort, features etc. as a separate user story.As a car buyer I want to buy a car with minimum cost.As a car buyer I want to buy a car with good mileage.So, a functionality is developed incrementally with different data inputs to buy a car.Rules: - Relax business rules or technology standards in an initial version of a story.Sometimes a user story is considered as large because of the different business rules or business standards.Example: I want to buy something online for my kid’s birthday party, at least 15 items.But website shows there is a limitation of 2 items per buyer.Relaxing a rule is sometimes followed by a user story which is a great way to split.For example, in a project, we develop some functionality (sort the employees with their skill set). This will be a database query and may take quite a few seconds depending on the load. So, there is a performance issue which is very important to consider. Better to split this as a separate user story.Add the right amount of detail to the user story. Not too much detail not very less…The right balance is required… But how to find out if the details are in correct proportion or not?The answer is “Retrospective”. Ask each team member if the detail that was given was enough to complete the user story in one iteration.JUST ENOUGH AND JUST IN TIMEThe reason is that if the information provided by the BA is not sufficient to complete the user story in one iteration, then there will a delay in the project delivery and customer will not be happy. Similarly, if the detail is too much then a lot of work in upfront needs to be done and the project delivery will be on time and with the exact functionality which was decided before the start of the sprint more like a waterfall modelA very important aspect while defining the user stories is about user roles. Avoid writing user stories from the perspective of a single user, identify different user roles who will interact with the software. Write stories for a single user.Create constraint cards or write tests to ensure the constraints are not violated.Keep the user interface out of the stories for as long as possible.Let us see some examples of user stories which look fine but can be written in a much effective way.1) As a Product Owner, I want to display my ratings on my webpage.Issue/Drawbacks- It is not only about “you”. Focus on End users and stakeholders.Correct: As a trainer, I want to display my ratings on my web page so that the visitor can choose wisely.2) Design Brochure LayoutDrawbacks: Not independent, No business value.Correct: As a restaurant owner, I want to design Brochure Layout so that the visitor gets order from it. “Identification of who what and Why are the key factors”So, the user story suggested format/template is:As a <>, I want <> so that <Business value>.Few more examples:StoryDescriptionThe user can run the system on windows xp and LinuxGood user story, but still suggested to split into three(Windows,XP and Linux)The user can undo up to 50 commandsGood user storyAll graphing and charting are done by third party library.Not a good  user story as user will not care how graphing and charting are done.The system will use log4j to log all the messagesNot a good  user story and log4j should not be written as logging mechanism.The user can export data to XMLGood user storyA user can quickly master the systemNeither quickly and master should be defined.Needs to be changed
Rated 4.0/5 based on 11 customer reviews

How to Write A Well-Formed User Story

4K
  • by Shilpi Jain
  • 17th Oct, 2018
  • Last updated on 17th Dec, 2018
  • 7 mins read
How to Write A Well-Formed User Story


Bill Wake has given us the mnemonic INVEST which help us in writing a well-formed User Story.

   Working with User Stories may be easy, but writing effective User Stories can be hard.
INVEST By Bill Wake
Top challenges in Writing User Stories:

  • Getting teams engaged.
  • Adding too much or too little detail
  • Splitting stories.

                Reminder!!!!!!!!!!!!!!!

    Top challenges in Writing User Stories

Story writing workshop is important to understand the User Story in details and who are the users of that particular functionality and what the users do to use the product.


Conduct a Story writing workshop Quarterly.



Three tips for a successful story writing session are:

  1. Set the single objective for the meeting.

          Objective should be MVP (Minimum Viable Product.) and engage the team in various discussions on top user Stories with the Product Owner.

  2. Have the right participants,

           Scrum master, Product Owner and other stakeholders, Development team (Agile coach) (optional) may be User Roles.
    Ask the Product Owner about the top requirement/features to be delivered.

    In MVP, Brainstorm the requirements in detail which will help in a more innovative solution.
    Visualize the relationship between stories.

    User Story Mapping technique:

    Document each step in the process. Writing the sequence of steps needed to complete the user  story will make it clearer which may have been overlooked and easier to estimate. The chances of missing any functionality can be minimized.
    We can read the below functionality is Login and enter credentials, you may also click on “forgot password” and then submit.

    User Story Mapping technique
    Another advantage of using mapping is that we can get the prioritized list of user stories as mentioned in the below diagram by lanes.

    Another advantage of using mapping
    SPIDR has come to our rescue. Beautiful concept given by Mike Cohn.

    How to Split a User Story: Biggest challenge…

    How to Split a User Story
    Spikes: -The user story is large and difficult to split when there is a spike activity involved in it. Spike doesn’t lead to any working functionality but it just for the knowledge enhancement for the team for example-Investigation of new technologies and investigating different tools etc.

    Paths: - The user story may be large because of the different paths associated with it. See the flowchart below to understand the example: In an e-commerce website, after selecting the items the payment method cart, the payment method can be visa card, mastercard or PayPal.


    So, it is recommended to split the user story based on the number of paths taken.
    It can be easily logically split into small stories as:
  3. As a <user>I want to pay using credit card or
  4. As a <user>I want to pay using PayPal


Here, there is no need to split using visa card or mastercard, as both come under the category of credit cards.

Interfaces: - Split a story across multiple interfaces (mobile OS or browser) or data interfaces.

Example: As a <user >I want to display in Android device.
As a <user > I want to display in IOS device.
As a <user > I want to display in web browser.

So, it can be split into 3 different logical user stories.

Same is the case with the browser also. Split by different browsers example: Chrome, IE, Mozilla etc, because working in all browsers will take time and the efforts would be large.

There are a few scenarios in which there are complex interfaces. A perfect example will be a sign-up form (with the details) but blank UI. It means the functionality is fully working with buttons and links but no color and proper UI/UX image. The UI can be built in subsequent sprints with a different user story. So, separating the UI work with functionality is also a good way to split the user story.

There is a similar case when the user story says- As a <user> import data from a file and note says (Must support: CSV, Excel and XML) Split each supported file format with different user story as-

As a <user> I want to import data from a CSV.
As a <user> I want to import data from an Excel.
As a <user> I want to import data from an XML

Data: - Develop an initial story with a subset of data.

Example: Suppose I need to buy a car.
As a car buyer I want to know what is the best car in the market.

To come up with this decision, we need to investigate many things example consider mileage, cost, big, small, comfort, features etc. as a separate user story.
As a car buyer I want to buy a car with minimum cost.
As a car buyer I want to buy a car with good mileage.
So, a functionality is developed incrementally with different data inputs to buy a car.

Rules: - Relax business rules or technology standards in an initial version of a story.
Sometimes a user story is considered as large because of the different business rules or business standards.
Example: I want to buy something online for my kid’s birthday party, at least 15 items.
But website shows there is a limitation of 2 items per buyer.
Relaxing a rule is sometimes followed by a user story which is a great way to split.

For example, in a project, we develop some functionality (sort the employees with their skill set). This will be a database query and may take quite a few seconds depending on the load. So, there is a performance issue which is very important to consider. Better to split this as a separate user story.

Add the right amount of detail to the user story. Not too much detail not very less…The right balance is required…


 But how to find out if the details are in correct proportion or not?
The answer is “Retrospective”. Ask each team member if the detail that was given was enough to complete the user story in one iteration.

JUST ENOUGH AND JUST IN TIME

The reason is that if the information provided by the BA is not sufficient to complete the user story in one iteration, then there will a delay in the project delivery and customer will not be happy. Similarly, if the detail is too much then a lot of work in upfront needs to be done and the project delivery will be on time and with the exact functionality which was decided before the start of the sprint more like a waterfall model

  • A very important aspect while defining the user stories is about user roles. Avoid writing user stories from the perspective of a single user, identify different user roles who will interact with the software. Write stories for a single user.
  • Create constraint cards or write tests to ensure the constraints are not violated.
  • Keep the user interface out of the stories for as long as possible.

Let us see some examples of user stories which look fine but can be written in a much effective way.

1) As a Product Owner, I want to display my ratings on my webpage.
Issue/Drawbacks- It is not only about “you”. Focus on End users and stakeholders.
Correct: As a trainer, I want to display my ratings on my web page so that the visitor can choose wisely.

2) Design Brochure Layout

Drawbacks: Not independent, No business value.
Correct: As a restaurant owner, I want to design Brochure Layout so that the visitor gets order from it.

 “Identification of who what and Why are the key factors”
So, the user story suggested format/template is:
As a <>, I want <> so that <Business value>.

Few more examples:

StoryDescription
The user can run the system on windows xp and LinuxGood user story, but still suggested to split into three
(Windows,XP and Linux)
The user can undo up to 50 commandsGood user story
All graphing and charting are done by third party library.
Not a good  user story as user will not care how graphing and charting are done.
The system will use log4j to log all the messagesNot a good  user story and log4j should not be written as logging mechanism.
The user can export data to XMLGood user story
A user can quickly master the systemNeither quickly and master should be defined.
Needs to be changed
Shilpi

Shilpi Jain

Blog Author

Shilpi is an experienced Scrum Master have 9+ years of experience in IT industry. She worked in companies like GE Healthcare and Nokia Siemens and currently working as a freelancer where she has contributed in many Technical Articles on Scrum/Agile, Project Management Tools (Atlassian, Jira and Rally), Project Management, Scrum Agile Certifications Questions and Answers (Test Paper Writing). She carries certifications like Certified Scrum Master, Fundamentals of Scum, Certified Six Sigma Black Belt (CSSBB). She always shares her personal experiences in her Articles. She is a passionate writer and blogger about the Scrum and Agile Methodology.

Join the Discussion

Your email address will not be published. Required fields are marked *

1 comments

Trived sinha 16 Nov 2018

Very detailed article Thank you

Suggested Blogs

Agile Conflict Resolution Hacks You Should Master

A conflict in an Agile team, usually indicates that the members are actively involved in the team. They either try to drive a change accordingly or raise an issue against the actions of other team members. Conflicts help the teams become more mature and effective. However, resolving a conflict between the team members is becoming more like an umpire between two fighting teams. It is the Agile team, who is responsible for making everybody agree to choose a right solution.   The way of handling conflicts is called conflict style. In the year of 1972, Thomas-Kilmann introduced different styles of conflict resolution. At an initial stage, it is vital to understand the different conflict styles before developing strategies for handling the disputes. The five conflict resolution styles introduced by Thomas-Kilmann are Competing, Accommodating, Avoiding, Compromising, and Collaborating.  Conflict can be a positive factor if it is resolved potentially. If a conflict is not handled properly, it affects the project by damaging targets, breaking down the teamwork, and eventually the team members disengage themselves from their work. Resolving conflicts successfully will not only help teams solve many issues, but also offer many benefits that are not even expected at first. The benefits of conflict resolution are as follows:   Increased Understanding: Discussion on resolving a conflict allow teams to know each other, mount up awareness and search the best talent from the ideas coming out from the team members.    Increased team cohesion: After dispute resolution, team members form stronger mutual coordination and increase the ability to work together.    Improved self-knowledge:   Conflict resolution helps members examine the issue deeply, which enhances their knowledge, sharpens the target, and elevates productivity.   But the question is how to facilitate an effective conflict resolution? Following are the possible conflict management techniques, that can help teams manage the disputes smoothly.   1) Engage in personal coaching: Good relationship among team members is important. So always try to treat the members calmly and politely, take efforts in building a mutual respect and always be constructive while separating people and the associated problems. Always pay heed to the root cause. Listen carefully and act. Welcome ideas from the team members to reach to a proper solution.   2. Mentor a team through a conflict resolution process: This conflict resolution technique consists of four steps. Step 1- Set the scene. Initially, you need to identify the recurrent conflict patterns within the team. Guide a team to make them understand that conflict is a common problem and it can be solved by using an assertive approach rather than being aggressive.   Step 2- Gather Information.  Secondly, listen to others’ point of view and always respect their decisions. Gather information from the team, understand the conflict deeply and try to find a solution.   Step 3- Brainstorm to find out a solution. Arrange spontaneous group discussions to share the ideas on any tasks.   Step 4- Confer a solution. This is the last stage in conflict resolution. Through this step, the hurdles may be removed. Follow the “Be calm, be patient, have respect” principle throughout.    Conclusion: Conflicts in an Agile team are considered as the sign of a group of people working in collaboration. Sometimes conflicts are destructive if not handled properly. Positive and assertive approaches help resolve a conflict peacefully, with non-confrontational discussions. Generally, conflicts are resolved effectively when team members try to explore issues and possible solutions and listen carefully to the other members in the team.      
Rated 4.0/5 based on 20 customer reviews
1181
Agile Conflict Resolution Hacks You Should Master

A conflict in an Agile team, usually indicates tha... Read More

How To Be A Scrum Master On A High-Performing Team?

This might sound unfavorable for the Scrum Masters! If a team, more precisely, an Agile team is already performing well, what is the need for a Scrum Master at all? Such teams and their managers might dismiss the idea of a Scrum Master altogether. Therefore, to establish yourself as a Scrum Master in teams which were running fine without you can be more than just a challenge.  However, all you need is a few strong strides. A proper understanding of the Scrum Master necessities will help you create the place, your very own space, in successful Scrum teams. The main factors of a Scrum Master in a high-performing team should be clear to you, alongside the unique characteristics of Agile teams. Else, it might be difficult for you to convince the team members as to why they actually need a Scrum Master.    How to be a Scrum Master on a High-Performing Team https://t.co/2pGL0IUxL8 @LinkedIn #agile #scrum #teams — The Working Report (@WorkingReport) 2 November 2017   Characteristics of high-performing teams: The high-performing team should be able to define a team purpose. The high-performing team takes an individual and mutual accountability of the result obtained by the team as a whole. The high-performing team produces a project output collectively. The high-performing team does open-ended discussions and has excellent decision-making capacity. The high-performing team moves with the points discussed in the daily Scrum. Team members should be constructive at every decision produced by other team members. This will eliminate conflicts among the team members.   They should see you as an enabler who can spearhead functional Agile teams.  Here is a whole new slew of hacks to explore new ways to make the best out of such teams- 1.Providing a fresh perspective every time: Being an entrant as a Scrum Master in the high performing team, you need to catch up with the details of the organization’s working processes for the sake of you and of course, the team. For acquiring the details from the team (and also about the team), the new Scrum Master should ask some questions to the teammates.This would help him/her learn what the team is following to accomplish a task. Consider one example of a simple question this Scrum Master can ask the team- Why do we work on several user stories and progressing bugs at the same moment?  Very simply, the team members responded that once they finish one task they start the next.  This works, but at times, results in a testing bottleneck. It can be successful if we limit the number of progressing tasks. You have to ensure that the ratio between the tasks in development and testing stages can be managed at all times. This will give you an enhanced productivity.  While gathering the project requirements from the client, a designer can work with the Product Owner and transform the project requirements into visual designs. The Scrum Master can provide a fresh perspective every time on the graphics and workflows to ensure a better performance.    2. Checking daily status: At an entry level, the Scrum Master feels himself/herself as a secondary option in the team especially when he/she is not aware of the team and their working approach. In this case, a Scrum Master has to play a trick to get into the game. But how? Firstly, Scrum Master can keep a record of the daily status of the team members in following ways: How is each team member doing? Stress levels Whether they are individually fit or not Whether team is following Scrum framework properly This will help you understand the team members and their current status.   3. Get ready to help the team personally:   Simply checking on the daily status is not enough, being a Scrum Master. Also, calling out orders at the team without keeping any idea of. the present position won’t work. In order to become supportive, the Scrum Masters need to get involved in the high-performing team. They can support QA (Quality Analysis) team in testing the applications in order to build an even higher performing team.  Scrum Master can act as a third eye in finding out flaws in developer’s attention,  Specifying Scrum team roles    Covering the areas which the team may have missed Giving (the team) an opportunity to convey useful ideas to the Scrum Master 4. Manage the backlog: One of the Scrum Master’s roles and responsibilities involves discussing with the Product Owner and the project stakeholders regarding their requirements. Once the designs are created, the Scrum Master can create a list of high-level user stories and add them to the Product Backlog items for use during Product Backlog Refinement sessions.  The Product Backlog should be split into the sections, well-organized and easy to implement. This will furnish the team with a proper visibility towards their work without jumbling up the requirements. 5. Tracking action items during Retrospectives: Retrospectives provide the best way for the Scrum Master to ask questions and unearth the needful. The Scrum Master in the high-performing team can introduce new retrospective techniques after every alternate sprint, which can keep the processes running smoothly. Most importantly, these techniques will help the Scrum teams to- Inspect the team and the processes Discuss healthily Raise the new ideas Pull out action items during discussion This will allow a Scrum Master to remind the team about their incomplete tasks, and also the accomplished tasks weekly.     6. Rejoice in the team success: Scrum is simple, but hard to execute. So it is always recommended to celebrate the success whenever it comes. This will help the team to stay focussed on their target and connect the points between work and target. If the team is high-performing, then being a Scrum Master it is your duty to shout their successes to keep the team more engaged.     Last Words- It is not more important that the team should consist of the ‘high-profile individual’ rather than their actual working. Culture plays a vital role in team performance. If there is a defined culture, it will be easy for the team members to follow suit. In case you are using the Scrum framework, firstly ensure that your team knows Scrum. Secondly, the team should follow a proper working culture under the guidance of the Scrum Master. Yes, definitely, an efficient one!   
Rated 4.0/5 based on 9 customer reviews
How To Be A Scrum Master On A High-Performing Team...

This might sound unfavorable for the Scrum Masters... Read More

How To Pass Leading SAFe® 4 Exam ?

Scaled Agile Framework is a roadmap that leads the organizations in implementing the Lean and Agile Practices. SAFe® includes the three foundational bodies of knowledge that are System Thinking, Lean Product Development, and Agile Software Development. It helps the organizations to improve themselves according to the business requirements, deals with challenges involved in developing and delivering ideal software and systems within a specified time. SAFe® practices are essential but, sometimes they can be complex and entail some challenges. It might be easy to deal with such challenges and move your enterprise towards SAFe® practices by becoming a professional SAFe® Agilist. Passing a SAFe® Agilist Certification exam proves that you are an expert in implementing Agile and improving the project you want to get involved in.Here, in this article, we will guide you through your Leading SAFe® 4 exam preparation.Firstly, the 2-day Leading SAFe® 4.6 training is the most crucial part of this certification. Join the course and ask all the doubts you have during the workshop without any hesitation. Make a note of all the important things which will be helpful for future references. After completing the course successfully, you should pass the exam to obtain SAFe® Agilist Certification.Exam DetailsFormat of the examThis is a web-based, timed, and closed book exam that will be conducted in English and delivered in the format of multiple choice questions. Upon completion of the Leading SAFe® training, candidates will get access to the exam within the SAFe® Community Platform. Candidates will have 90 minutes to finish the exam once it starts.The exam consists of 45 questions in total and you must answer a minimum of 34 questions correct out of 45. You can take the exam at any time and the fee for the first attempt will be included in the course registration fee only if the exam is taken within 30 days of course completion.Retake policy of the examIf the certification exam is not cleared in the first attempt, you can retake the exam again and again, but each retake costs $50.You can take the second attempt immediately after the first attemptYou need to wait for a minimum of 10 days to retake the exam for the third timeA minimum of 30-day wait is required to retake the exam fourth timeCandidates are not allowed to retake the exam, once they got a minimum passing score of 76% unless there are updates announced to the exam.Exam preparationThe exam is specifically designed to analyze the skills and knowledge of a particular candidate. Develop a study plan before going to take the exam.Here are a few important points you should remember-You should gain both practical and theoretical knowledge in order to pass the exam successfully.The course materials are more helpful to prepare for the exam and we at KnowledgeHut offer course materials authored by the Scaled Agile Academy. These materials can be used for referring the concepts that are presented during the training.Take the practice tests that are designed with the same level of difficulty, time duration, and the same number of questions. You can take the exam without any additional cost. The practice tests once completed, let’s you know the chapters you should study more in pink color. Study those topics again.  As a preparation, on scaledagileframework.com, on the big picture (framework) click on the words if have confusion/not sure and read the guidance article. It makes you prepare well for the main certification exam and boosts your confidence level.Choosing a right path takes you to important destinations in your career. Becoming a SAFe® 4 Agilist is a career path for many and it requires an excellent range of skills. The best institute guides you towards a bright career. So, choose the right and best institute that is authorized to do so and can help you reach your goals.
Rated 4.0/5 based on 15 customer reviews
4181
How To Pass Leading SAFe® 4 Exam ?

Scaled Agile Framework is a roadmap that leads the... Read More