Search

User Stories and User Stories Examples

In this article, you will learn about User Stories, 3 C’s of a user story, who writes it, how to write it, how to INVEST in user stories and different types of user stories with examples  What is a User Story? User Story is a tool in which requirements are captured in an easy to understand plain language, and is written from the perspective of an end user. “In software development and product management, a user story is an informal, natural language description of one or more features of a software system. User stories are often written from the perspective of an end user or user of a system” In Agile software development, user stories are used to express the requirements from an end user perspective.  The format of the user story is: As a < user >  I want to < perform an action >  So that < I expect…. > <User> - is the end user or the role of the user in the application software – “As a net banking customer” <perform an action> - the action the user is performing on the application software – “I want to add beneficiary in my account” <I expect..> - outcome, desired value, the user expects out of the action performed – “so that I can transfer money to the added beneficiary”The larger sized stories are called as “Epics” which are then decomposed to “Features” and then further decomposed to a “User Story”.  Epic example: As a Bank, I want to provide net banking to customers, so that they can perform various transactions. The above Epic can then be decomposed into multiple features: few examples: As a Bank, I want to provide funds transfer feature to customer, so that they can transfer funds from one account to another account As a Bank, I want to provide account summary for all the customer’s type of accounts. As a Bank, I want to provide credit card details to customers. Now each feature can be decomposed further into multiple user stories. User stories, based on the estimate size, are taken for implementation in an iteration. User stories should be granular enough that they can be completed within an iteration and cannot be continued in the following iteration. If a story cannot be completed within an iteration, the same should be split logically. User stories are prioritized by the product owner based on business priority and are available at the top of the product backlog. The dev team pulls the stories into an iteration backlog and implements them. The Definition of Done(DOD) for user stories are decided by the team which includes acceptance criteria, processes that need to be followed like unit testing, regression testing, code review etc. The story is said to be “done” only when it meets the preset Definition of Done. Who writes user stories? So, whose responsibility is to write user stories in an agile team?  Generally, the notion is that only the Product Owners should write user stories as they are the ones who elicit requirements from the stakeholders. However, in practice, any member of an Agile team may write user stories, though the overall responsibility is that of a Product Owner. The product owner should go through the stories and prioritize them in the product backlog. Over the course of an agile project, every team member is encouraged and expected to write user stories. When are user stories written? Are user stories written at the beginning of the project in a traditional way?  User stories are written throughout the lifecycle of the project. At the start of the project, user stories are written in Sprint '0', also called as pre-sprint. Initially the product owner elicits the requirements from the stakeholder and they are stored as EPICS, Features and User Stories in the product backlog. The requirements in agile software development are progressively elaborated and hence the need for writing user stories will arise throughout the project. These are written mainly during the backlog grooming session where the product owner decomposes epics/features into granular stories. Dev team writes stories along with the product owner during this session and also gets  involved in the 3 C’s (the next section describes this). confirmation in the 3C’s of user stories “Card”, “Conversation” and “Confirmation” is a model that captures the components of a user story.  This is popularly known as the 3Cs model that helps in planning and estimating the user stories by the Agile team. Card – denotes a Post It note or physical card, typically 3”x5” size, where the important information of a user story is captured. The card should contain enough information (not too less or too much) that the team is able to understand in order to plan & estimate on the story. “Conversation” – this is the conversation that happens between the product owner and the dev team to discuss on the story and get into the details. This may also be a conversation with the users of the system. This conversation also brings out the creativity of the dev team and uncovers any unstated needs of the users. “Confirmation” – this brings out the acceptance criteria for a story based on the above conversation.  This criterion will be used to evaluate the story by the stakeholders when the user story is implemented by the dev team.  The 3 C’s of the user story generally unfold during the backlog grooming session when the dev team and the product owner discuss the stories that needs to be groomed. The user stories are written during this time as well on the card by the dev team and product owner. Just enough information is captured in the story that enables the team to discuss and get into the details, uncovering any hidden or explicit information in the process. The team then negotiates with the product owner and arrives at the acceptance criteria for the user story.  Next, the dev team estimates the user story with the available information. The conversation continues between the dev team and product owner until a consensus is reached with respect to the details and acceptance criteria and until the team can size the same. This round of conversation may happen again during the iteration/sprint planning session. The dev team then implements the story in an iteration which is reviewed by the product owner or stakeholders at the end of the iteration. They will then accept the story based on the acceptance criteria defined for the story. Why create user stories? What are the benefits that a team will get by documenting the need of the stakeholders in the form of user stories? It enables the team to understand the requirements from a user perspective. The focus is on the user to provide value to them; the user story clearly describes the expected outcome of every action performed. This manner of capturing requirements provides opportunities for the team to collaborate more with the product owner and business users. By having conversations (in 3 Cs), the team is able to uncover the hidden requirements and also come up with creative solutions. Provides a shared understanding of the requirements to the team so that everyone is aware of the outcome/goal of the story and is on the same page. User stories help the team to achieve smaller product increments. User stories are more understandable by all stakeholders (technical/non-technical/business/operations). User stories help the team to implement features in smaller iterations ranging from one week to one-month durations. User stories enable the team for progressive elaboration, where they can defer the story until more clarity is obtained. User stories help create transparency of the priorities defined by the product owner and the customer. User stories help the developers, product owner and business owners to reach a mutual consensus as they discuss the details and agree on the acceptance criteria. This helps prioritize the product features by the stakeholders and also helps to take the right decisions at the right time. INVEST in User StoriesThis is an acronym for a set of attributes or criteria that helps us to assess the quality of the user story. If any of the attributes falls short in a story, it means that the team may want to consider rewriting the user story. Independent – User stories should be independent of other stories. There should be no overlap between them. They can however follow one after the other in a sequence, in a way that makes it easy to schedule and implement them.  This is one of the challenges that the team faces especially when they have just started adapting agile ways of working. They may have a story which is dependent on something else which may be done by another team. The teams may hope that they can run the two stories in parallel and by the time the first team is done, the dependent team will also complete their part of the story.  This is not the right way of running user stories, as it can result in a lot of confusion and blame. The advantage of having independent stories is that there is no blame game across teams. It also allows to consider the dependencies and come up with innovative ways of removing them to become independent. Negotiable – The story should not be written in so much detail that it becomes a requirement document. If it is in too much detail, it does not give an opportunity for the dev team to have any conversation with the product owner or the business. The story should be written with just enough detail so that it paves the way to open discussions with the product owner or business, and helps to elicit details or come up with creative solutions. By negotiating on the story with the relevant stakeholders, teams can come to a common understanding. Valuable – The story should be valuable to the customer. It should clearly state why we are doing this? How is it going to produce value to the customer? What value will the customer realize by implementing this story?  The only reason why user stories should be part of the product backlog is that they add value to the customer, right? Estimable – The user stories should have sufficient detail for the dev team to understand and estimate them. The conversation in 3 C’s helps the team to uncover the details with the product owner and stakeholders, so that they can size the story. If the story is too big and not sizeable, then the story should be refined or decomposed further. Whatever information the team may require should be available in the story for them to estimate it. In case there is a part of the story where the team has to do research, then a “spike” story may be created while the rest of the story can be estimated and taken for implementation. Small – Good user stories should be small. This does not refer to the size or number of words written in a story. A small story is of the right length so that the implementation team can complete the story within an iteration. It should be small enough that the story is “fully delivered” during an iteration.  A small user story helps the team to develop and test quickly and easily.  Testable – A good user story should be testable in order to be “Done”. This is supported by the “Confirmation” in 3 C’s where the team comes up with acceptance criteria for every story after the detailed conversation with the stakeholders.  The customer should be clear about what he should test during the review. If he is not clear, then the story is not good enough to be implemented. The team works together in a collaborative way to INVEST in good stories. The team learns to write good user stories as they work together and also proactively think about the values and criteria that are laid out in INVEST. Types of User Stories We can classify user stories into functional and technical types: Functional – Normally, a user story is written based on the functional aspects of the application software, while focusing on the user and the value of the functionality provided to the user.  Functional stories concentrate on the product features which the customer will be testing at the end of an iteration based on the acceptance criteria defined for the story. Technical – Technical stories are written to be able to support the functional stories. Technical stories can be classified as Infrastructure stories – any infrastructure addition/modification that may be required to support the functional story Refactoring – this type of story is written to maintain the code and address technical debts. This can be used for designing and automation needs as well Spikes – stories that require research on architecture and design which may in turn help achieve the functional need of the customer. Examples of user stories Let us see some examples of user stories (Epics, Features and User Story) in this section. IDEPICSE1As a Sales Professional, I want to generate reports so that I can take a decision on the marketing strategy for the upcoming quarterE2As a Banking Customer, I want to access net banking, so that I can access my account and make transactionsE3As an Administrator of the software, I want to access master records so that I can make changes to customer dataIDFeaturesE2F1As a Banking Customer, I want to access Savings account so that I can view/make transactionsE2F2As a Banking Customer, I want to access Credit Card page, so that I can view and make transactionsE2F3As a Banking Customer, I want to access Loans page so that I can view my loansE2F4As a Banking Customer, I want to transfer funds, so that I can move my funds to different accounts within my bank and other banksIDUser StoriesE2F1U1As a Banking Customer, I want to access/view summary of my savings account, so that I know my balance and other detailsE2F2U1As a Banking Customer, I want to Login to Net banking so that I can view credit card detailsE2F4U1As a Banking Customer, I want to transfer funds within my own accounts so that I can move some balance across my accountsE2F4U2As a Banking Customer, I want to transfer funds from my account to another account in another bank, so that  I can send money to my family and friends who have accounts in other banksE2F4U3As a Banking Customer, I want to add beneficiary to my account, so that I can transfer funds to the beneficiaryTechnical StoriesE2TU1As a Net Banking Administrator, I want to have the customer’s data backed up so that I can restore it any time in case of issues  E2TU2  As a Net Banking application, I want to shake hands with another bank using a specific formatted XML so that funds can be transferred based on the customers’ needs  ConclusionTransformation of documentation on user requirements in a Functional Requirements Document (FRD) or Software Requirement Specification (SRS) in a traditional project management, towards User Stories in Agile project management, is a massive step. It helps  shift the mindset of how teams can understand and collaborate with the customer in a better way, by shifting their focus of implementation towards value that the customer may realize from the story. This shift has worked very well in terms of meeting the requirements and expectations of the customer. 

User Stories and User Stories Examples

10K
User Stories and User Stories Examples

In this article, you will learn about User Stories, 3 C’s of a user story, who writes it, how to write it, how to INVEST in user stories and different types of user stories with examples  

What is a User Story? 

User Story is a tool in which requirements are captured in an easy to understand plain language, and is written from the perspective of an end user. 

In software development and product management, a user story is an informal, natural language description of one or more features of a software system. User stories are often written from the perspective of an end user or user of a system 

In Agile software development, user stories are used to express the requirements from an end user perspective.  The format of the user story is: 

As a < user > 
I want to < perform an action > 
So that < I expect…. > 
  • <User> - is the end user or the role of the user in the application software – “As a net banking customer 
  • <perform an action> - the action the user is performing on the application software – “I want to add beneficiary in my account” 
  • <I expect..> - outcome, desired value, the user expects out of the action performed – “so that I can transfer money to the added beneficiary”
  • The larger sized stories are called as “Epics” which are then decomposed to “Features” and then further decomposed to a “User Story”.  
  • Epic example: As a Bank, I want to provide net banking to customers, so that they can perform various transactions. 
  • The above Epic can then be decomposed into multiple features: few examples: 
  • As a Bank, I want to provide funds transfer feature to customer, so that they can transfer funds from one account to another account 
  • As a Bank, I want to provide account summary for all the customer’s type of accounts. 
  • As a Bank, I want to provide credit card details to customers. 
  • Now each feature can be decomposed further into multiple user stories. 

User stories, based on the estimate size, are taken for implementation in an iteration. User stories should be granular enough that they can be completed within an iteration and cannot be continued in the following iteration. If a story cannot be completed within an iteration, the same should be split logically. User stories are prioritized by the product owner based on business priority and are available at the top of the product backlog. The dev team pulls the stories into an iteration backlog and implements them. The Definition of Done(DOD) for user stories are decided by the team which includes acceptance criteria, processes that need to be followed like unit testing, regression testing, code review etc. The story is said to be “done” only when it meets the preset Definition of Done. 

Who writes user stories? 

So, whose responsibility is to write user stories in an agile team?  

Generally, the notion is that only the Product Owners should write user stories as they are the ones who elicit requirements from the stakeholders. However, in practice, any member of an Agile team may write user stories, though the overall responsibility is that of a Product Owner. The product owner should go through the stories and prioritize them in the product backlog. Over the course of an agile project, every team member is encouraged and expected to write user stories. 

When are user stories written? 

Are user stories written at the beginning of the project in a traditional way?  

User stories are written throughout the lifecycle of the project. At the start of the project, user stories are written in Sprint '0', also called as pre-sprint. Initially the product owner elicits the requirements from the stakeholder and they are stored as EPICS, Features and User Stories in the product backlog. The requirements in agile software development are progressively elaborated and hence the need for writing user stories will arise throughout the project. These are written mainly during the backlog grooming session where the product owner decomposes epics/features into granular stories. Dev team writes stories along with the product owner during this session and also gets  involved in the 3 C’s (the next section describes this). 


confirmation in the 3C’s of user stories confirmation in the 3C’s of user stories 

  • “Card”, “Conversation” and “Confirmation” is a model that captures the components of a user story.  This is popularly known as the 3Cs model that helps in planning and estimating the user stories by the Agile team. 
  • Card – denotes Post It note or physical card, typically 3”x5” size, where the important information of a user story is captured. The card should contain enough information (not too less or too much) that the team is able to understand in order to plan & estimate on the story. 
  • “Conversation” – this is the conversation that happens between the product owner and the dev team to discuss on the story and get into the details. This may also be a conversation with the users of the system. This conversation also brings out the creativity of the dev team and uncovers any unstated needs of the users. 
  • “Confirmation” – this brings out the acceptance criteria for a story based on the above conversation.  This criterion will be used to evaluate the story by the stakeholders when the user story is implemented by the dev team.  

The 3 C’s of the user story generally unfold during the backlog grooming session whethe dev team and the product owner discuss the stories that needs to be groomed. The user stories are written during this time as well on the card by the dev team and product owner. Just enough information is captured in the story that enables the team to discuss and get into the details, uncovering any hidden or explicit information in the process. The team then negotiates with the product owner and arrives at the acceptance criteria for the user story.  

Next, the dev team estimates the user story with the available information. The conversation continues between the dev team and product owner until a consensus is reached with respect to the details and acceptance criteria and until the team can size the same. This round of conversation may happen again during the iteration/sprint planning session. The dev team then implements the story in an iteration which is reviewed by the product owner or stakeholders at the end of the iteration. They will then accept the story based on the acceptance criteria defined for the story. 

Why create user stories? 

What are the benefits that a team will get by documenting the need of the stakeholders in the form of user stories? 

  • It enables the team to understand the requirements from a user perspective. 
  • The focus is on the user to provide value to them; the user story clearly describes the expected outcome of every action performed. 
  • This manner of capturing requirements provides opportunities for the team to collaborate more with the product owner and business users. 
  • By having conversations (in 3 Cs), the team is able to uncover the hidden requirements and also come up with creative solutions. 
  • Provides a shared understanding of the requirements to the team so that everyone is aware of the outcome/goal of the story and is on the same page. 
  • User stories help the team to achieve smaller product increments. 
  • User stories are more understandable by all stakeholders (technical/non-technical/business/operations). 
  • User stories help the team to implement features in smaller iterations ranging from one week to one-month durations. 
  • User stories enable the team for progressive elaboration, where they can defer the story until more clarity is obtained. 
  • User stories help create transparency of the priorities defined by the product owner and the customer. 
  • User stories help the developers, product owner and business owners to reach a mutual consensus as they discuss the details and agree on the acceptance criteria. 
  • This helps prioritize the product features by the stakeholders and also helps to take the right decisions at the right time. 

INVEST in User Stories
INVEST in User Stories

This is an acronym for a set of attributes or criteria that helps us to assess the quality of the user story. If any of the attributes falls short in a story, it means that the team may want to consider rewriting the user story. 

  • Independent – User stories should be independent of other stories. There should be no overlap between them. They can however follow one after the other in a sequence, in a way that makes it easy to schedule and implement them.  

This is one of the challenges that the team faces especially when they have just started adapting agile ways of working. They may have a story which is dependent on something else which may be done by another team. The teams may hope that they can run the two stories in parallel and by the time the first team is done, the dependent team will also complete their part of the story.  This is not the right way of running user stories, as it can result in a lot of confusion and blame. 

The advantage of having independent stories is that there is no blame game across teams. It also allows to consider the dependencies and come up with innovative ways of removing them to become independent. 

  • Negotiable – The story should not be written in so much detail that it becomes a requirement document. If it is in too much detail, it does not give an opportunity for the dev team to have any conversation with the product owner or the business. The story should be written with just enough detail so that it paves the way to open discussions with the product owner or business, and helps to elicit details or come up with creative solutions. By negotiating on the story with the relevant stakeholders, teams can come to a common understanding. 
  • Valuable – The story should be valuable to the customer. It should clearly state why we are doing this? How is it going to produce value to the customer? What value will the customer realize by implementing this story?  

The only reason why user stories should be part of the product backlog is that they add value to the customer, right? 

  • Estimable – The user stories should have sufficient detail for the dev team to understand and estimate them. The conversation in 3 C’s helps the team to uncover the details with the product owner and stakeholders, so that they can size the story. If the story is too big and not sizeable, then the story should be refined or decomposed further. Whatever information the team may require should be available in the story for them to estimate it. In case there is a part of the story where the team has to do research, then a “spike” story may be created while the rest of the story can be estimated and taken for implementation. 
  • Small – Good user stories should be small. This does not refer to the size or number of words written in a story. A small story is of the right length so that the implementation team can complete the story within an iteration. It should be small enough that the story is “fully delivered” during an iteration.  

A small user story helps the team to develop and test quickly and easily.  

  • Testable – A good user story should be testable in order to be “Done”. This is supported by the “Confirmation” in 3 C’s where the team comes up with acceptance criteria for every story after the detailed conversation with the stakeholders.  

The customer should be clear about what he should test during the review. If he is not clear, then the story is not good enough to be implemented. 

The team works together in a collaborative way to INVEST in good stories. The team learns to write good user stories as they work together and also proactively think about the values and criteria that are laid out in INVEST. 

Types of User Stories 

We can classify user stories into functional and technical types: 

Functional – Normally, a user story is written based on the functional aspects of the application software, while focusing on the user and the value of the functionality provided to the user.  Functional stories concentrate on the product features which the customer will be testing at the end of an iteration based on the acceptance criteria defined for the story. 

  • Technical – Technical stories are written to be able to support the functional stories. Technical stories can be classified as 
  • Infrastructure stories – any infrastructure addition/modification that may be required to support the functional story 
  • Refactoring – this type of story is written to maintain the code and address technical debts. This can be used for designing and automation needs as well 
  • Spikes – stories that require research on architecture and design which may in turn help achieve the functional need of the customer. 

Examples of user stories 

Let us see some examples of user stories (Epics, Features and User Story) in this section. 

IDEPICS
E1As a Sales Professional, I want to generate reports so that I can take a decision on the marketing strategy for the upcoming quarter
E2As a Banking Customer, I want to access net banking, so that I can access my account and make transactions
E3As an Administrator of the software, I want to access master records so that I can make changes to customer data


IDFeatures
E2F1As a Banking Customer, I want to access Savings account so that I can view/make transactions
E2F2As a Banking Customer, I want to access Credit Card page, so that I can view and make transactions
E2F3As a Banking Customer, I want to access Loans page so that I can view my loans
E2F4As a Banking Customer, I want to transfer funds, so that I can move my funds to different accounts within my bank and other banks


IDUser Stories
E2F1U1As a Banking Customer, I want to access/view summary of my savings account, so that I know my balance and other details
E2F2U1As a Banking Customer, I want to Login to Net banking so that I can view credit card details
E2F4U1As a Banking Customer, I want to transfer funds within my own accounts so that I can move some balance across my accounts
E2F4U2As a Banking Customer, I want to transfer funds from my account to another account in another bank, so that  I can send money to my family and friends who have accounts in other banks
E2F4U3As a Banking Customer, I want to add beneficiary to my account, so that I can transfer funds to the beneficiary

Technical Stories
E2TU1As a Net Banking Administrator, I want to have the customer’s data backed up so that I can restore it any time in case of issues  
E2TU2  As a Net Banking applicationI want to shake hands with another bank using a specific formatted XML so that funds can be transferred based on the customers needs  

Conclusion

Transformation of documentation on user requirements in a Functional Requirements Document (FRD) or Software Requirement Specification (SRS) in a traditional project management, towards User Stories in Agile project management, is a massive step. It helps  shift the mindset of how teams can understand and collaborate with the customer in a better way, by shifting their focus of implementation towards value that the customer may realize from the story. This shift has worked very well in terms of meeting the requirements and expectations of the customer. 

Krishnakumar

Krishnakumar Kuppusamy

Author

Krishnakumar Kuppusamy is one of the highly experienced Agile Coaches and SAFe Program Consultant (SPC 5.0). He has 24+ years of experience in information technology industry handling both traditional and agile projects. He has worked with companies like Citibank (USA) & Polaris Software at various capacities in project & program management. 

He has worked for ANZ and Ford India, coaching multiple Agile teams in their transformational journey. He is also a freelance trainer, conducted trainings in SAFe/PMP/PMI-ACP/ITIL/CBAP for over 2000+ professionals helping them getting certified and excel in their respective areas. 

Join the Discussion

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

1 comments

Umadevi 10 Feb 2021

It’s good user stories . Thank you so much

Suggested Blogs

What Best Describes a Scrum Team?

We are living in an age where speed is the secret to success, and the one who gets the product out first is the winner. In this digital transformation world, organizations that have adopted Agile will succeed; as Agile is all about adaptability, quick delivery and customer focus.  Scrum, the most used Agile framework is all about addressing complex problems through adaptation and value creation. Scrum teams are at the core of a Scrum project. What best describes a Scrum team? Let’s attempt to answer this question.What is Scrum?A term borrowed from rugby; Scrum actually means ‘to huddle’. It signifies how rugby payers huddle together and work as a team in order to gain possession of the ball. Like its namesake in the sport of rugby, Scrum in Agile software development also signifies a process that brings together a team of individuals who work together under complex circumstances to create a product. The term was first used by researchers Hirotaka Takeuchi and Ikujiro Nonaka in their 1986 research paper, "The New Product Development Game."“Scrum is a framework that encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve”—Atlassian Agile coachWhat is the Scrum Methodology?Scrum is a framework under the umbrella of agile development methodologies, along with Kanban, Extreme Programming, Feature-Driven Development, Crystal, and Dynamic Systems Development Method (DSDM).The Scrum methodology focuses on delivering products of the highest quality through effective collaboration between teams involved.  Scrum is based on the three pillars of empirical process control, which are transparency, inspection, & adaptationThe Scrum FrameworkScrum is an Agile methodology framework that follows an iterative and incremental approach for project management, and breaks down large projects into small chunks called epics and sprints.  Each sprint results in the creation of a product and the cumulative effort of all the sprints adds to the improvement of the overall end product. The Scrum framework encourages high level collaboration among team members which comes in handy in tough project situationsWhat is a Scrum Team?Scrum.org is what best describes a Scrum Team by defining it as ‘a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.’ So, in essence Scrum teams are self-organized and highly productive teams that deliver quality products in a highly collaborative environment.  A Scrum team’s success is based on the Scrum values that they share. These are:Commitment:  Commitment is one of the hallmarks of Agile teams. Teams collaborate and work on a common goal through a high degree of communication and trust between them.Courage: Scrum teams must have the courage to fail. Fail fast is a benefit in Agile and Scrum as this helps them discover hidden faults and recover quickly. Scrum teams must have the courage to try new things, innovate, fail and then learn from their failures to ultimately achieve success.  Focus: Having focus is a mandatory requirement of Scrum teams which ultimately helps them limit the work in progress.  Openness: Transparency and openness is also one of the empirical processes on which Scrum is based. Teams that are open and transparent with one another trust each other more and work better towards reaching a successful end point.Respect: Respect between team members is a must, irrespective of the methodology or framework they use. Respect between Scrum Masters, Product Owners and Development team members will help foster trust and enhance collaboration and co-operation between teammates.What describes a Scrum team?A Scrum team consists of three main roles. These are:Development TeamScrum MasterScrum Product OwnerThe development team consists of five to eleven people including developers, testers, architects and others. The Scrum team has a shared goal and through their collaboration and skills of self-organization and motivation, they reach this goal.What is a Scrum Master?The Scrum Master, also known as the servant leader, helps empower the team and guides them on the use of the Scrum framework. Their main responsibility is to ensure that the development team can perform to the best of its abilities, and they do this by removing obstacles or impediments that may hinder the progress of the development team. The Scrum Master is the agile coach and mentor who helps team members understand Agile and its processes and aids in enterprise-wide agile transformations.The Product OwnerThe Product Owner is the bridge connecting the stakeholders and the development team. They define the product vision and through their skills and intelligence drive the project with help from the Scrum Master and the development team. The product owner maintains the perfect balance between the stakeholder and the development team, helping each understand the other’s point of view. They are also well-versed in agile and scrum values and principles and guide the team and well as the stakeholders on the agile ways of working. Creating stakeholder satisfaction is an important responsibility of the product owner and they do this by ensuring that requirements are met, and the product created meets quality standards expected by the customer.The Development TeamThe development team is the driving force of the Scrum project. This team is empowered by the Scrum Master and the Product Owner to take decisions and be as autonomous and independent as possible. At the same time there is a high level of collaboration and transparency among the team members and between the dev team and the Product Owner. The dev team is balanced and helps the product owner manage the backlog and deliver an acceptable product at the end of every sprint.Why is the Scrum team required for organizations?Any organization that wants to go agile and implement projects using the scrum framework has to do so by getting together an efficient scrum team. Scrum has proven to be extremely successful at team levels and it is the Scrum team that drives the project to success. Scrum teams with their collaboration, self-organization, innovation and collocation are able to drive success and business value.A table that summarizes the Scrum Team’s responsibilities in the various Scrum processesScrum PhaseScrum processScrum Master responsibilityProduct Owner responsibilityDevelopment team responsibilityInitiate1. Create Project Vision------2. Identify Scrum Master and Stakeholder(s)--Identifies Scrum Master--3. Form Scrum TeamAlong with the PO decides dev teamAlong with the SM decides dev team--4. Develop Epic(s)Helps PO in developing epicsDevelops epics and arranges user group meetingsHelps PO in developing epics5. Create Prioritized Product BacklogHelps PO in epic refinementRefines epicsHelps PO in epic refinement6. Conduct Release PlanningHelps PO and dev team with backlog prioritization and determining sprint lengthReviews the backlog and develops release planning scheduleHelps PO with backlog prioritization and determining sprint lengthPlan and Estimate7. Create User StoriesHelps dev team and PO write user storiesWrites user stories and incorporates them into the Prioritized Product BacklogWrites user stories8. Approve, Estimate, and Commit User StoriesEstimates the effort required to deliver the product defined in each user storyApproves user stories for the sprintAlong with the SM estimates the effort for each sprint and9. Create TasksHelps dev team break down the stories into tasksHelps dev team break down the stories into tasksBreaks down the approved stories into tasks and create a task list10. Estimate TasksHelps the dev team create the effort estimated task listHelps the dev team create the effort estimated task listCreates the effort estimated task list11. Create Sprint BacklogHelps the PO create sprint backlogCreates the sprint backlog and lists the tasks that need to be completed in the sprintHelps the PO create sprint backlogImplement12. Create DeliverablesGuides the dev teamHelps dev team if neededWorks on creating sprint deliverables13. Conduct Daily Stand-upArranges and conducts the meetingsMay or may not attend the meetingsAttends the meetings and defines any problems or issues faced14. Groom Prioritized Product Backlog Helps PO to groom the backlogUpdates and maintains the backlog continuouslyHelps PO to groom the backlogReview and Retrospect15. Convene Scrum of ScrumsHelps teams collaborate and notes any impediments that may be hindering work--Mentions their progress or any issues they may be facing16. Demonstrate and Validate Sprint Helps dev team in displaying what it has createdApproves or rejects what the dev team demonstratesDemonstrates deliverables to PO and stakeholders17. Retrospect SprintMeets with dev team to ponder on lessons learnt during the sprint. Documents the recommendations--With scrum master retrospect's on sprint and uses the recommendations for the next sprint18. Ship DeliverablesAlong with other team members ships acceptable deliverablesAlong with other team members ships acceptable deliverablesAlong with other team members ships acceptable deliverables19. Retrospect ProjectGets together with other team members and identifies the lessons learntGets together with other team members and identifies the lessons learntGets together with other team members and identifies the lessons learntSo, what best describes a Scrum team? There are many facets to a Scrum team, but the most relatable description would be a highly interconnected and cohesive unit that works together to solve issues. A well-organized Scrum team can raise the ROI of an organization and ensure long term stakeholder commitment.
What Best Describes a Scrum Team?

We are living in an age where speed is the secret ... Read More

Scrum Software for the Ultimate Project Management

Technology has made our lives easier. The number of tools and devices we have at our disposal has made our lives more productive and our work more efficient. The Agile software development methodology has been adopted by several organizations to improve their adaptability, responsiveness, and productivity.  How can we improve the way we incorporate Agile Scrum into our projects? Scrum tools can be the answer. Just like the other gadgets in our lives, Scrum software and tools help improve the productivity of our teams, keep stakeholders happy and help us deliver better products. Before we jump into the use and needs of Scrum software and tools let us understand more about Scrum roles and how they work.Three essential roles for Scrum successThe Scrum Guide defines three pillars of a Scrum team, which include:The Scrum MasterThe Product OwnerThe Development TeamThe Scrum team is a small unit which is self-organised and works towards achieving the same goal; that is, the development and deployment of the product and customer satisfaction.Three essential roles in a Scrum TeamThe Scrum Product OwnerThe Scrum Product Owner is among the most essential roles in the Scrum team and acts as a bridge between the stakeholders and the development team. More involved with the business side of the software development process, the PO represents the customer and can be considered as their proxy.  The Product Owner defines the product vision, and, along with the Scrum Master and the development team works towards delivering a product that matches stakeholder needs.The Scrum MasterThe Scrum Master is the servant leader whose main responsibility is to ensure that the Scrum team can perform to the best of its abilities. They do this by overseeing the day-to-day activities of the Scrum team and removing any impediments that may hinder the productivity of the development team. The Scrum Master facilitates stakeholder collaboration along with the product owner and ensures that teams can handle complex environments and deliver projects successfully.The Scrum development teamThe development team generally consists of three to nine people, according to the Scrum Guide. These would include developers, testers, designers and more. The team is allowed to take decisions and decide the length of the sprint and how they will go about it. The development team collaborates to create a high-quality product increment at the end of each sprint that is as per the expectations of the stakeholders.Scrum ceremonies or eventsScrum has five formal events as defined by the Scrum Guide. These events help to validate the Scrum artifacts and implementing them helps enhance transparency. The events are also called ceremonies and are:Sprint PlanningDaily ScrumSprint ReviewSprint RetrospectiveThe SprintWhat Does A Scrum Tool Do?What would you need a good Scrum tool to do? Make your life easier by making processes more efficient and less cumbersome, help you deliver quality products without making a huge dent on your budget, right?  With Scrum topping the popularity charts for Agile project management methodologies, the need for efficient Scrum tools has risen. There are plenty of Scrum tools available that fit the bill and provide interfaces that help teams seamlessly follow Scrum processes and reap its benefits. These tools help:Increase productivityIn task management, daily scrum management  Increase team collaborationIn progress tracking and risk managementScrum Software for the Ultimate ProjectThere are several Scrum software tools that aid in project development using Scrum; not just in technical environments, but in non-technical sectors as well. Software like JIRA, Infinity, TargetProcess, QuickScrum, Wrike etc provide:User friendly GUICompetitive pricingProduct backlog managementTime tracking and calendar tools for schedulingScrum metrics and chartsSprint planning toolsThird party tools for integrationUser story mappingBurnup and Burndown chartsand many more features that will help Agile teams serve their customers better, improve return on investment, reduce costs, enhance collaboration and ensure stakeholder satisfaction. These tools help team uphold the values of Agile and make implementing the Scrum framework easier.Best Scrum ToolsHere are some of the best Scrum tools available in the market:1. JIRAJira is a popular tool used by large organizations to manage their Scrum projects. It has numerous features including customizable scrum boards, reporting features and more. Here’s how teams benefit from this toolCustomizable Scrum and Kanban boardsRoadmaps to communicate with team and with stakeholdersAccess to tools for Agile reportingView of code and deployment statusEnd to end DevOps visibilityEasy scalabilitySecure deploymentDeveloper tool integrationRich APIs to automate processes2. TargetProcessThis tool has been especially designed for teams that want to scale agile. It offers a number of customizable features that make it easy to work with scrum and agile.  Here’s how teams benefit from this tool(Source: Targetprocess Agile Portfolio and Work Management Tool)IdeationBuilt in reports to analyse data and uncover trendsGather ideas across sourcesCloud hosting and on-premise hostingEnterprise grade securityCollaborate across the enterprise  Collaborate with DevOps tools including GitLab, Azure DevOps, GitHub etc3. VivifyScrumThis tool is marketed as an all-in-one solution to manage projects, collaborate and track. Here’s how teams benefit from this tool (Source: Agile Project Management Software - VivifyScrum)Tools to manage agile projects—organize, manage, track and deliverCollaboration boards to effectively collaborate with team and stakeholdersCreate invoices to track and manage business and clientsManage teams and track tasks4. InfinityThis tool is among the most popular in Agile and Scrum organizations due to the many customizations and features it provides. Its various tools help reduce time to market, ensure better quality, improve collaboration and enable customer satisfaction.Here’s how teams benefit from this tool Source: Infinity | Customizable Work Management Platform (startinfinity.com)How Can Scrum Apps Benefit Your Team?The number of Scrum apps and software available in the market for Scrum projects is mind boggling. Which one you choose depends on the requirements of your team and project, and each comes with its own benefits. Some of these benefits include:They help teams, organizations and the product being createdThey ensure better quality by providing the right framework, support mechanism and the right processesAllow for continual improvement by putting in place a feedback loop and sprint reviews by stakeholdersHelp solve impediments and daily issues by incorporating daily testing and product owner feedback into the development processEnsure upfront documentation and help prioritise high value items in the product backlog, thus decreasing time to market.  Quick feedback also helps improve the product and thus helps in continuous improvement.The faster marketing of products increases return on investment, helps tap the market demand and ensures long term benefits for the customer and thus earns their trust for the organizationThe primary tenet of Agile is team collaboration. Scrum software tools help in high level collaboration between the Scrum Master, Product Owner and the development team. Teams can organise, review, plan and discuss everyday tasks, meetings, impediments and more.How to Pick the Best Tool for Your Team?With so many options available, choosing the right Scrum tool for your team can be a tricky task. What you need to do is go through the features of the best tools and see which one best fits your requirements. While the number of features you get will be directly proportional to the money you are ready to pay for the tool, there are some basic requirements your tool must satisfy.Backlog creation:  The very basic format of a Scrum project lies in the creation of a product backlog which sets the pace for the entire project. The backlog is primarily created by the Product Owner with assistance from the Scrum Master and the development team. The tool you choose should help you create the product backlog so that you can prioritise items, define the sprints and identify sprint goals.Implement feedback:  Scrum projects are based on the Agile values of continuous feedback. Your scrum tool should have features which will make your customer’s feedback and requirements easily accessible to you. This will help you implement these changes at the earliest. This continuous feedback loop will help keep customers happy.Sprint creation:  Scrum is iterative and adaptive and works by breaking down projects into small sized sprints. Your tool must aid you in the creation of sprints and burndown charts. These help you keep track of your progress on the project and are essential components of a Scrum project.The other things your tool should be able to do include:Plan and trackCustomise process templatesCustomise dashboards and reportsHelp in time managementHelp create epics and storiesProvide collab and reporting toolsProvide review toolsAnd just like you will create a product that is user friendly, the tool you use also needs to be user friendly for the team. If your team is happy using it, and it makes your life easier and your projects better, then you have the right tool!
Scrum Software for the Ultimate Project Management

Technology has made our lives easier. The number o... Read More

Safe Agile Ceremonies - Expert Guide

“Winners take time to relish their work, knowing that scaling the mountain is what makes the view from the top so exhilarating.” ― Denis WaitleyWhat are SAFe agile events (or) ceremonies? – a brief overview:Before we jump into the topic, could I just take you a step back and remind you what SAFe is all about? SAFe is a way of taking any iterative Agile way of working (normally restricted to a team or few teams) and scaling it up at various levels of the organization, whilst applying a mindset of Lean manufacturing. It also deals with scalability at various levels. Beginning from Essential SAFe right up to Full SAFe, the framework caters to all organizational levels of scaling agility. As part of this, it broadens the core idea of agility mindset beyond just projects/development teams right up to executives/CXOs, who must prepare for enterprise level uncertainties. In a sense, it provides valuable enterprise level scaling insights helpful for the executives to tackle any uncertainties/risks associated with a project.As you start applying SAFe in your organisation, it is important for you to understand how each level works in conjunction with the other, depending on how mature your SAFe enterprise is. The key link between these levels is the SAFe specific events which help with smooth value delivery facilitation. The events help with alignment across teams, ARTs etc thus helping in managing risk by providing a level based cadence and synchronization.Essential SAFe - Your First Level of Scaling Using an Agile Release Train (ART). Courtesy © Scaled Agile, Inc. Source: Scaled AgileWhy do we need level-based ceremonies?While it is important to go through your team level events (like the 4 sprint events if you are doing scrum etc.) it is important to have the scaling events that help with bridging gaps and unblocking dependency between teams. The most important part of these SAFe specific events is for ‘Business Stakeholders’ to get a look (demo) at a proper incremental product and thus the value arising out of it. Makes sense? It did for me and let me tell you why.I was once associated with 3 feature teams, who were working towards a common product goal. They all had the same business stakeholders but were working on individual features. Team A was working on developing a Login page, Team B was working on a landing dashboard while Team C was hopping along, trying to provide a search functionality for the user. All of them were applying the Scrum framework and were running their own events. Sprint demos were happening individually and were being represented by the Product owner separately along with his business analysts. All seemed fine but there was a nagging problem. The product owner was worried, because he couldn’t bring any business stakeholder to view the demos, as they were being run in silos and there was no visibility on the incremental product. Well technically there was, but they would have to sit through three or four-hour events individually to get bits and pieces of the product demo. In the real world, it's not a possibility simply because your business stakeholders will not have that much time to spend on multiple demos. It is not a good use of their time either. So, what’s the solution? Simple, it’s SAFe to the rescue! Let’s try and understand how the SAFe specific events help with this.Prescribed PI Cadence for Various Levels of Scaling. Courtesy © Scaled Agile, Inc. Source: Scaled AgileHow do the events (or) ceremonies help to scale up according to the levels in SAFe:SAFe is very relevant and designed to thrive in situations where there are significant cross functional dependencies between agile teams and support / functional teams (infrastructure teams, architect community etc).  Essential Level:   As you start to scale up one level up, you will be working with anywhere between 5-12 agile teams who will all be collectively working towards a common goal which is the program increment or PI. The anchoring catalyst that brings them all together is your ART (Agile release train). Before getting into the events, lets understand the various roles involved at this level because this is the common denominator across all levels of SAFe and across organizations. This is where you need to get it right without which there is not much use in scaling higher. Key Roles involved: Release Train Engineer (RTE) System Architect/Engineer Product Management   Business OwnersPrescribed events on a typical Agile release train (ART). Courtesy © Scaled Agile, Inc. Source: Scaled AgilePI PlanningAccording to me, PI planning (hands down) is THE most significant aspect of executing this framework. This is where all the magic happens. It is sometimes referred to as the heart of the framework as it offers a clear vision of what the program increment needs to be, what the cross-team dependencies are and how they bring together the cultural sustainability much needed within the release trains. It is so important, that if carried out incorrectly it could lead to several ambiguities, development challenges and mostly a disastrous product increment. However, when it works well, the iterative cycle serves to flesh out the crucial elements of the plan and the processes ensure buy in from the stakeholders.Duration: A normal PI planning is a 2-day activity, which is a face to face cultural get together of the various ART teams. However, a new 3-day distributed PI planning has been introduced to help with geographically distributed teams (across various time zones), very apt for the current pandemic situation.“There is no magic in SAFe® except maybe for PI Planning”. – The authors of the SAFe framework.In big organizations with multiple distributed teams across multiple vendors, work streams etc. it is almost impossible to run these teams independently, whilst still having to deliver an incremental program. SAFe via the PI planning exercise mentioned above, helps with sorting out these issues by recognising cross team dependencies upfront, constantly negotiating & visualising them. This doesn’t just stop with the PI planning but the framework also proposes a cadenced way of continuing this via the scrum of scrums. The Program Board is an ideal way to showcase the cross-team dependencies.A sample SAFe Program board. Courtesy © Scaled Agile, Inc. Source: Scaled Agile1. Inspect and Adapt (I&A)An inspect and adapt event is scheduled after every PI. This event is dedicated to aligning to the principles of Kaizen, which simply means to change for the better. The events contain self induced thought processes to revalidate your assumptions that everything is working OK. The I&A event consists of three sub-parts as below:  PI System DemoQuantitative and qualitative measurementRetrospective and problem-solving workshop2. ART Sync Agile release trains tend to apply a cadenced synchronization process to help manage the ability to focus on continuous value delivery. An ART sync will typically comprise of the below sub-events.  Scrum of Scrums: This event is for representatives from all the teams on a release train to come together in a regular cadenced manner, especially on large ARTs. This is normally facilitated by the release train engineer (RTE) and will involve scrum masters of the individual teams and a few selected team members (authorised by the team). The sole purpose of the SoS calls are to understand progress towards the common goal, validate cross team dependencies and unblock impediments that may arise out of them. Duration: The length and frequency of the meeting will depend on a few factors like the size of the ART, the release frequency, type of features being worked on, ability to decouple releases etc. For e.g an ART which releases features into production every 4 weeks might want to have an SoS call every 2 weeks for about an hour. Again, if this doesn’t work for you, just inspect and adapt to what works well for your organizational needs. Just make sure that the SoS is utilised for its sole purpose and not just status updates as depicted in the below comic representation.Scrum of Scrums PO SyncThis event is represented by the Product Owner, business analysts and the product management group. This is used mainly to level up the product backlog refinement and for clarifying PI (Program Increment) scope, reviewing roadmaps and grooming for the upcoming PIs.Duration: Very similar in concept to the SoS, so just follow what works for the group. 3. System DemoAs part of a common understanding towards delivering incremental software, shortly after each iteration in the PI, there is a system demo scheduled. Work completed across all teams from the release train are compiled in a stable environment before it is reviewed by the business stakeholders and other important sponsors who may have a keen interest in the product. This is on top of the individual team level demos that happen after each iteration.Duration: Anywhere between 2-3 hours that will allow time for a demonstration of the program increment in a collative manner, on top of what has been delivered from the previous PIs as well.In case your ART is pretty small, then you may want to have just have some of the events combined into a more generic ART sync, where all roles come together to collaborate towards the program increment. This can sometimes occur if the ART is focusing on a particular value stream, confined to limited business functionality, rather than elaborate features.Solution/Portfolio LevelsAs you scale higher, the processes and events become much less prescriptive. There is a good reason for this because the focus at this level is not just on having repetitive demos that have already happened before but on building thought leadership around business outcomes and enhancing business agility. Which is why we will not be diving deep into that in this blog. But let us look at the events that occur at the macro level.Lean Budget Review  Idea Sharing via Communities of Practice (not a formal event but a collaborative group)Solution DemoPortfolio SyncRoadshowWhat are the benefits of SAFe Agile ceremonies?:The Magic of PI planningWell, the more I talk about this, the more excited I am. A PI planning event when carried out to its truest purpose, gets half the job done. Here is where most of the brainstorming occurs and business value gets determined and, in some cases, gets assigned in a quantifiable manner to user stories and helps with the prioritisation.PI Planning Synchronisation towards a common goalThe events are a constant reminder that all teams are working towards delivering incremental value either on a particular value stream, or feature or program. An RTE and Product Management will help reiterating the need to focus on the larger goal whilst helping sorting out inter team dependencies.Less prescriptiveAs is the framework itself, SAFe events/ceremonies are less prescriptive. An SPC would recommend, apply the principles but inspect and adapt as to what works for your organization. As per the example I provided earlier w.r.t to the duration of the SAFe events, start with something reasonable and then validate its effectiveness. Then leave Kaizen to do the rest.Visualization of incremental value deliveryOpportunity for Business stakeholders and sponsors to have a look at the overall program increment every iteration, thus helping them evaluate the progress and provide timely feedback on market trends. What are the common mistakes?Lack of a shared product visionThings can go wrong if there is not enough representation in the product management group, say for e.g at the PO Sync event. This can lead to a blurred product vision with each team working out of sync. This may ultimately get detected too late, probably at the time of the system demo, and lead to a whole lot of unwanted rework.SoS as a status updateThe Scrum Of Scrum event should be used as an event to unblock cross team impediments or dependencies and not to just update what each team has been doing or is doing in its current sprint. TimeboxingGiven the scale at which these events will be conducted, it is critical that the associated events are facilitated in a timeboxed manner or else the participants could end up sitting and talking for hours. Roles like RTE, SPC Coaches etc will be critical in addressing this issue.Remote facilitationLack of effective collaboration tools could lead to some disastrous situations whilst facilitating the SAFe events. Given that most teams are running virtual ceremonies/events at the moment, its crucial to establish a working distributed model. This will then ensure that the platform is set up for the most effective collaboration and cross-functional work to take place.While you try to scale, as per the implementation roadmap, its essential that you solidify the process around which your ARTs will be functioning. It’s like setting the railway tracks with the correct track gauge matching the configurations of the wheelsets of the trains that will run on them. If not, they will just derail. As your ARTs pass through your set process, they will only benefit by sustaining focus and pace while moving towards a successful incremental product delivery.Thanks for your patience and wish you all the very best in your Agile journey. In case you want me to write about any specific topic, please feel free to comment below and I’ll be more than happy to add them to my ‘Blog Backlog’. If you liked the article, please do share it among your agile community to help spread the word.  Hope to see you soon, with more such interesting topics.
Safe Agile Ceremonies - Expert Guide

“Winners take time to relish their work, knowing... Read More