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  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. 

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 *

Suggested Blogs

Learn Scrum with JIRA

Many organizations use JIRA as a one-shot solution to automate their processes, and JIRA has almost become synonymous with Agile. Even organizations that don’t deploy it across all levels use it for at least some of their projects. Such is the popularity of JIRA. So, what exactly makes it so popular? JIRA provides a simple and easy-to-use solution for project management tasks, right from gathering requirements to maintaining releases and generating all sorts of reports and metrics. The best part of the tool is that it is highly customizable, attending to the needs of one and all. If it is said that there isn’t a thing that one cannot do using JIRA in terms of project management, then that is not an understatement.  Since Agile is the buzzword now and most organizations are opting for it, this article will provide users with a detailed insight on how to carry out their project management tasks and software development activities by using a Scrum framework.   Before moving ahead, there are two basic pre-requisites that the user who intends to use JIRA must have and they are: Pre-Requisites:  An active account on JIRA Required permissions (Super Admin, Project Admin, etc. – Defined by organizations) 1. Creation of Project: The first and most important thing is to create a project in JIRA under which we will be carrying out our activities and tracking the progress of those. There are two ways a user can create a project.  Method 1:  Step 1: Log in to JIRA using your credentials. Once you are logged in, you will land on the project dashboard which will look something like this.  Step 2: Click on Settings icon and select the Projects option as highlighted in the image below.   Step 3: Select “Create Project” option as shown in the image.   Step 4: After clicking on “Create Project”, you will be prompted with two options to select from.  Classic Project  Next Gen Project Step 5: Once you have selected the type of project, you will be asked to enter the Project name. You will also have the option to change the type of template i.e Scrum, Kanban or Bug Fixing, depending on the purpose for which you wish to use JIRA.  Once done, you must click on the “Create” button.  And voila, it’s that simple. Once you have clicked on the create button, you will land on the project dashboard with the name of the project highlighted on the top left. As we can see in the image below, project name “My Scrum Project” is visible. Method 2.  The steps remain the same, only difference is that instead of navigating through settings, once you have logged in, you will have the option to navigate via “Projects” link as depicted in the pic.  2. Creating Backlog: Once the project has been created the second important step is to define requirements in a backlog. As you can see in the pic below, there is the option to select “Backlog” from the left side panel/navigation pane to navigate to the backlog section.  Here you can start creating backlog items. This backlog serves as the “Product Backlog”. Users can outline requirements in terms of Epics, User Stories, Tasks and Bugs which are known as “issue types” in JIRA. In short, everything that is created is an issue in JIRA. Please note that for ease of understanding and reference, I am sticking to the most basic issue types as mentioned above.  Step 1: To create issues in JIRA, all that is needed to be done is to click on the “Create” button on the top most navigation bar. This bar remains visible at all times by default, no matter whichever page you navigate to. Step 2: Once the user clicks on “Create”, a dialog box to enter details of the issue will open.   The two most important fields in this are:  Project: This field, by default, is populated with the name of the project you are in. But in case you wish to change the project field, the same can be selected from the dropdownIssue Type: This option by default is selected as “Story” but can be changed depending on which issue you want to create. The relevant issue can be chosen from the dropdown. Below image shows how it all looks like in JIRA. There are two types of fields on the dialog box; Mandatory and Non-Mandatory. Mandatory fields are marked with a red Asterix. Also, these fields change on change of the issue type i.e. on basis of what is applicable to the issue type being selected.  As already mentioned, JIRA is highly customizable and a JIRA admin can add or change more issue types based on what terminology is being used by the project and/or organization on the whole. E.g. Issue type of Features can also be added in case teams follow a feature-based development approach wherein features are divided across teams and encompass the hierarchy of epics and stories.  In a similar manner, issue type “Story” can be amended to be displayed as “User Story” or at times to be more specific, something like “Functional User story” and/or “Technical User story”. In addition to this, the fields are also customizable. New fields can be added and the rule of mandatory and option field can also be altered depending on what works best for the team. To make these changes, the JIRA admin needs to navigate to the settings section and then to the desired settings type to change them. Please note that these settings will only be available to the user who either is a JIRA admin or has permission to perform these activities. Permissions are issued by the JIRA admin to the user.  Coming back to the topic of creation of backlog, once you fill up the details and click on “Create” at the bottom of the dialog box, a new issue is created in JIRA that now starts reflecting in the backlog.  Issues can also be created by using the short cut link available in the backlog section as highlighted below.  Once you click on “+” icon, you will be able to select the type of issue to create and provide a summary for the same.   After entering the summary details, you are required to click enter and the issue is created. To enter other details, you will have to navigate to the created issue by clicking on it in backlog or opening the same in a new tab and then doing the needful.  As soon as an issue is created, the same starts reflecting in the backlog. Here you can see two stories and one bug that were created, are visible in the backlog. 1. Linking Issues:  We all know the hierarchy of requirements goes something like Epics > Stories > Tasks. JIRA gives us the capability to link one issue type with another. To start with as a very basic ask, stories will fall under the epics and thus need to be linked with the correct epic. This linkage is something which replaces the requirement traceability of traditional models. When everything is perfectly linked then it can be easily known which requirement from the customer was covered under which epic and if we go into a granular level, under which story and even tasks the requirements fall under. Similarly, if a bug is found in the story while working on it, the bug can also be logged and linked against the story.  To link issues, the steps below can be performed.  Epic Link: To link stories under an epic, JIRA specifically provides the field “Epic Link” in stories. The field at most times is made mandatory by organizations to make sure that every story that is created in JIRA is by default linked to the epics. Here the epic becomes the parent issue of the story and thus it also becomes easy to make sure that every requirement has been worked upon.  Step 1: There are two ways to create the Epic link. While creation of the story, you will have the option to mention Epic link or if the story is created using shortcut link, the same can be added by opening the story and then mentioning the epic in the epic link field as shown below. Step 2: Once selected the same starts reflecting in the story details.   Step 3: To see the linkage, you need to navigate back to backlog. The link starts displaying in the backlog.   2. Linking Bugs:  Once the bugs are created, they can be used to block user stories in a similar fashion, though there is no specific field like epic link in case of bugs, they can be linked using the “Link issue” option.  Step 1: Once the bug is created, note the issue ID and open the story which needs to be blocked and select the “Link Issue” option.  Step 2: By default, “is blocked by” option is selected, indicating that the story is blocked due to the following issue. As soon as you enter the bug issue id and click on link, the story is linked with the bug or to be more specific, the story is marked ‘blocked’ by the bug. In this way multiple stories can be blocked with a single bug and vice versa.   Note – Stories can be linked to other stories to showcase linkage, to mark dependency, to display duplicity/redundancy etc in the same manner, all that is needed is to select the correct option from the dropdown after selecting “Link issue”. Issue Prioritization in Backlog.  As the rule goes, the product backlog must be prioritized at all times i.e. the issue with the highest priority should be at the top and the issue with least priority should be at the bottom of the backlog, so that the teams working on the backlog have a clear idea about the work they need to pull in once the next iteration starts or to understand if they have capacity for more during the ongoing sprint. Keeping the backlog prioritized also helps the team to keep working as per the product roadmap in the absence of the product owner and as such the team does not get blocked.  JIRA also provides the capability to keep the backlog prioritized at all times by the simple function of dragging and dropping the issue above or below the other ones. Below images will give you an idea of the same.  Scenario 1: Once you start creating issues in the backlog, the issues start reflecting in the ascending order of their Issue IDs i.e. the order in which they are created. For ease of reference, the issues have been named as 1, 2, 3, 4 and placed one after the other.  Now assume that the priority of Story 4 is the highest and thus it should be at the top of the backlog, followed by test story 2, followed by 1 and 3 respectively. Thus, they should be placed in order of 4,2,1 and 3 in the backlog. This can be done by simply dragging the items to bring them in the desired order.  Scenario 2: Below image gives you a backlog which is sorted on the basis of prioritization of stories as per the priority defined by the PO. Bugs too can be dragged and placed at the relevant position in the backlog depending on their severity and priority. All these activities of creation and prioritization of backlog are done primarily by the PO. In case the PO is supporting multiple teams and there are BAs supporting individual teams or acting as proxy POs for the teams, then POs can leverage them for backlog management. Scrum master needs to ensure that the backlog is prioritized, properly detailed and at least the stories for the immediate next sprint remain in a ready state.   3. Creating & Starting a Sprint:  Once the backlog has been created, the next step for the team is to gather and hold the sprint planning event. PO can open the stories and discuss the details and Acceptance Criteria with team members. Once all the stories have been discussed, the team can start pulling the stories in the sprint and for that to happen the team will need a sprint in JIRA. It is again very simple.  Step 1: In the backlog section, there is a “Create Sprint” button.  Step 2: Once you click on the button; a sprint is created, starting from sprint 1 with a prefix of project ID as shown in the image below. You have the option to create issues directly in the sprint using the quick link as mentioned above for the backlog or the issues can be dragged and dropped in the sprint created. All the issues dragged and dropped in the sprint created, as discussed in sprint planning, will serve as the sprint backlog.  Step 3:  Once all the issues are dragged and dropped in the sprint, the sprint is ready to be started. As an example, we see that test story 4 and 2 as well as a bug have been dragged to sprint 1 as displayed in the image below.Please note as part of sprint planning session, details like Story Assignee, story points and hourly estimates can be filled in the stories using the fields available. Also, in case the story owner wants to highlight the individual tasks they intend to perform as part of working on the story like Analysis, Coding, Review etc or in case multiple team members are working on a single story then to highlight individual work assignments, the option of creating tasks can be used. Tasks can be created just like stories, as mentioned above. It is similar to work breakdown in traditional models.What needs to be made sure is that before marking the sprint planning as being complete, all the stories have been pulled in sprint and assigned and estimated in terms of story points or hours or both, according to the approach the teams have decided to take. All the sub tasks that have been created, can optionally be assigned. If desired, these subtasks can also be estimated. Once all this is done, the Scrum Master can then mark sprint planning as complete and proceed to start the sprint.  As we know that before sprint planning, a goal is provided by the PO to the team. The same goal can be added in the sprint. Just select the three dots option besides the sprint on right side and select edit sprint and you will be able to enter the sprint goal.  4. Starting Sprint: Once the planning is complete and activities like estimations, assignments and tasking have been done, it is time to start the sprint. This is simple to do. In the backlog, there is a “Start Sprint” button. Once you click on it, a dialog box appears where you can verify sprint goal and set a duration for the sprint. After reviewing the details, you can click on “Start” and we are good to go.  5. in Progress:  Once the sprint has started, you can navigate to the “Active Sprint” section to visualize the progress on the stories in the sprint. Team members can update the stories to depict statuses from “To Do”, “In Progress” and “Done” and also update their daily hours in the stories in case teams are estimating in terms of hours.  6. Completing/Closing Sprint:  On the last day of the sprint, it is important to mark the ongoing sprint as closed in JIRA so that next sprint can be planned and started.  All the items which are marked done are considered complete. Anything pending to be completed is either moved to the next sprint or to backlog in consultation with the PO.  Step 1: In the “Active Sprint” section. On the top right corner, you need to click on “Complete Sprint” button.  Step 2: Once the “Complete Sprint” button is clicked, a dialog box appears with details of issues that have been completed and the ones which are pending. Select the place where you wish to move the pending items to, either to the backlog or next sprint which is to be started.Step 3: Once you select the desired value under “Move to” field and click on “Complete” button the Sprint is marked as complete.   
5911
Learn Scrum with JIRA

Many organizations use JIRA as a one-shot solution... Read More

Top 5 Agile Trends to Take You Safe Through 2021 and Beyond

In recent times, Agile has proved to be more than just a buzzword in the IT industry.The amazing results of Agile project management have widened its scope for implementation in other than IT industry also; therefore, we often come across the terms like “being Agile” and “doing Agile”.More and more organizations and enterprises irrespective of size and business niche are adopting Agile with an eye on commitment, delivery values, profitability, customer’s satisfaction etc. Because of continuous Agile evolvement, you need to align Agile practices with the latest trends to compete with excellence in 2018 and beyond. Following are the top five Agile trends that will help you plan and sail safe through the competitive marketing environment.1) Short-Term Activities Oriented Agile Training:Organizing the short-term activities oriented intensive workshop/training, planned to train the participants for implementation of specific skill in real projects, is a new emerging trend in Agile organizations. The long and exhaustive classroom training of 4 or 5 days are no longer a preference. The short–term Agile workshops/training leave the Agile team members with new ideas and cohesive understanding of the Agile roadmap. The improved capability to execute short iterations supports to market the product early. In addition, Agile workshops are helping the organizations to develop multi-disciplinary Agile specialists to maximize overall performance.2) Rapid Feedback:Predictions are good to plan but the ever-changing working conditions, new demands, and altered quality standards etc deviate the results. The biggest trend in Agile management for 2018, I noticed recently, is to focus more on rapid feedbacks of developments rather than depending on the predicted outcome. Rapid feedback is vital for Agile teams to understand the way project development is going. Creating a friendly environment allowing every team member to comment and even seek the feedback saves considerable time besides giving a true picture of progress. Continuous Integration (CI) is the best tool to maximize the benefits of rapid feedback.3. Embracing Agile Spirit:  Over the years, a number of organizations twisted & curled Agile methodology to meet their interests and suitability; as a result, some of these tasted just the semi-success. The new trend shows that organizations are embracing the Agile spirit as a part of organizational culture. Organizations are conducting short-period objective oriented trainings to strengthen the Agile mindset of team members.The application of modern Agile principles leads the organizations to deliver more values with satisfactory profit. There are four core characteristics of Agile mindset - value matters, small cycles matters, ecosystem in entire organization matters and culture matters. Agile Spirit embracement can be improved by following the five simple tactics- be transparent, be disciplined, ensure participation, get everyone aligned and set up collaboration as an Agile tool.  4) Cloud-Based Solutions:More Agile teams are adopting cloud-based solutions to find new ways for envision (prediction), coding, testing and deployment faster than they are/were doing now with the intention to have an edge over their competitors. Server-less computing has become the favorite of Agile teams; as, it reduces the need of ‘always on’ traditional server infrastructure, in addition to reducing the infrastructure and operational costing. The organizations that follow cloud-based Agile methodology have enormous competitive advantages supporting for higher quality, greater agility, faster market responsiveness, reducing costing, improving client’s experience etc. It can be said that Cloud technology is going to be an Agile accelerator.5) More Focus on ‘Business Value’ of User Stories:“If you can’t measure the results, you can’t improve the process” fine fits to modern Agile culture. Today, Agile organizations are more focused on measuring the lagging indicators like ROI of new products/ features, Net Promoter Score (NPS) of team members & customers, cycle time and operational stability etc. Using three-dimensional metrics, encompassing complexity, ROI and business value, is the new approach to measure the business value of a user story. Identifying business values before writing a user story rather than writing a user story and then evaluating the business values is a significant shift in modern Agile practice.Summary:Agile culture adoption is growing fast in organizations around the world. Internal Agile coaches, consistent Agile practices, and implementation of a common tool across Agile teams are the top three factors encouraging businesses to continue their Agile journey. According to ‘12th annual State of Agile report’, the top five Agile benefits reported by the organizations are –Better project visibility – through- rapid feedbackFaster delivery – through – cloud-based solutionEnhanced productivity – through – activities oriented learning workshopsImproved ability to manage the changing priorities – through – deep focus on business value of a user storyBetter IT alignment – through – Agile spirit embracementKnowledgeHut provides objective-oriented customized Agile training that helps the organizations match the steps with the latest trends in Agile methodology.
1131
Top 5 Agile Trends to Take You Safe Through 2021 a...

In recent times, Agile has proved to be more than ... Read More

The Spotify model - Agile

Many companies find it hard to scale Agile due to the various complexities that come with multiple teams, locations, time zones and different cultures. Over the past decade, many Scaling frameworks like SAFe, LESS, DAD have been introduced into the Agile world by various Agile practitioners and groups. This article is about one such scaling model called the “Spotify Model”. Origins of Spotify Model “Spotify” is a Sweden based music streaming company founded in 2006. The structure used by the company to scale agile across its various teams located in different locations came to be called as the Spotify Model. This model is becoming increasingly popular due to its flexibility and simplicity. Need for change in Organization Structure Today’s world is constantly changing due to social, political, and economic disruptions. The 2019-2020 COVID is a classic example of disruption in the entire world to the “business as usual”. To keep up with the disruption and competition, companies must be nimble and innovative to respond quickly and stay ahead of their peers. The hierarchical structures and organizational processes that worked well for decades are no longer enough to keep up with this fast-paced world. While traditional hierarchies and managerial processes are still very much required to run the show, the need of the hour is to also have an additional network structure operating in tandem with the traditional norms. The purpose of this network is to continually assess the business, the industry, and the organization, and react with greater agility, speed, and creativity than what has existed before.  There are so many examples around us where Start-up organizations thrive in the network structure and fail miserably when they have to scale, and cannot continue with traditional hierarchy and processes. In equal measure, around us are examples of Enterprise giants collapsing under the weight of the traditional hierarchy alone without the nimbleness and speed of the network structure.  Both the operating structures – the hierarchy and the network, are essential for today’s businesses to thrive. Kotter’s theory of establishing a dual operating system within an organization resonates heavily in the Spotify Model and compels us to draw parallels. In the Model we can see that there are innovative and thriving network structures and at the same time there is space to establish the traditional hierarchy as well. Spotify Model Squad: The Squad is the basic entity of the model which comprises the team that does the work. The Squad does not have a dedicated Squad lead but has a dedicated Product Owner.  The Product Owner tells the Squad “What” has to be done , prioritizes the work and maintains the backlog. Each Squad is self-organizing and can choose to follow Scrum, Kanban, XP or a hybrid of these. Squads are aligned to their mission, product strategy and short-term goals. Each Squad owns the release and delivery end to end. Typically, an infrastructure / DevOps Squad enables them to carry out smooth releases but does not do it for them. The Squad has access to an Agile Coach who runs retrospectives and Sprint Planning meetings. The coaches help the Squads to continuously improve. Tribe: A Tribe is a group of Squads that are related to each other by nature of the work being done by them. for e.g multiple Squads working together on the same product feature or closely related product features/ same product within a portfolio of different products.The number of people in a Tribe is recommended to be 100 in line with the Dunbar number. As per the Dunbar number, most people cannot maintain a social relationship with more than 150 people or so. All the Squads within a Tribe are co-located and physically able to interact in common areas dedicated for this purpose. There is a Tribe Lead who is responsible for creating a productive and an innovative environment for the Squads. The Tribe Lead can be part of a Squad as well.  Tribes meet often to showcase what they have been working on, what has been delivered and their learnings. The showcase could include the working software, new tools and techniques. Handling Dependencies One of the foremost challenges to resolve in a scaled agile environment are “conflicts and dependencies”. These can crop up during the development of a product among the Squads within a Tribe and also exist among Squads in other Tribes as well.   Dependencies could slow down or block the progress. Such dependencies are identified and are handled by reprioritization or through technical solutions. Sometimes innovative ideas could help remove the dependencies.  The end goal is to avoid dependencies between Tribes by making the Tribes self-organizing; and once that is achieved by having minimal dependencies among Squads within a Tribe. Survey for Continuous Improvement: A survey is done for all Squads at the end of every Quarter to understand the pain points and areas for improvement. For e.g multiple Squads having issues with the release process need urgent attention. One of the Squads not getting enough support from their Product Owner needs leadership intervention. Chapter: Certain disciplines/technological areas within the Tribe, like QA, Database Specialists, Front-end developers, Back-end developers, UX Specialists will benefit with regular discussions and interactions. People within these functions across multiple Squads and within the same Tribe constitute the Chapter. Constant communication within the Chapter members is encouraged. Each Chapter meets regularly to discuss their achievements and challenges in their respective areas of expertise e.g QA Chapter, UX Chapter, DB Chapter. There is a Chapter Lead who can guide the various members of the Chapter on “How” things can best be done. For e.g the QA Chapter lead can strategize the End-to-End Functional, Performance and Security Testing to be carried out for the new version of the product in an upcoming release. This will ensure the testers within all the Squads have a common well thrashed out testing strategy for the upcoming product release.  The Chapter lead can also be the line manager of the members in his Chapter, performing the traditional managerial responsibilities like people development, performance appraisals, career growth etc. The Chapter lead is also a member of one of the Squads in the Tribe, making him remain closer to ground realities.x` All the Chapter leads within a Tribe typically could report to the Tribe lead, and the Tribe Lead performs all the managerial responsibilities for the Chapter Leads within his Tribe as well as the next level Squad members of his Tribe.  Guild : A Guild is like a “community of interest” cutting across Tribes throughout the Organization/ Business Unit.  Imagine an Enterprise that has three Tribes each located in three different locations. There could be QA Chapters for each Tribe with respect to the location. There is also a need for QA members of one Tribe to exchange and share processes and learnings with QA members of the other two Tribes. The Guild is an organic structure that serves this purpose.  The Guild cuts across the Tribes spread across the organization across locations. Knowledge, tools, and practices are shared. For e.g the QA Guild includes all the QA Chapter members and in addition can include other members who are interested.  Guilds usually are not focussed on a specific release or delivery but on their area of expertise in a generic way. They have mailing lists, publish newsletters and conduct unconferences once in a while.  Spotify as a “Scaling Agile Model” Many of the foundational elements within the model become the backbone to scale agile in the organization adopting it. Spotify Model recognizes the need for a Network Structure within the organization to make it nimble and agile. The elements within the Spotify model help to establish Agile scaled to multiple teams spread across various locations and areas of work. The Spotify Model recognizes self-empowerment and self-organization, and at the same time aligns the Squads within a Tribe to work in tandem, in order to create complete and usable software products. The Chapters across Squads provide the environment for cross Squad collaboration. The Quarterly Survey in the Squads and handling dependencies within and across Tribes enables agility and continuous improvement. The Guilds help in improving the organizational culture to better adapt to the technological advancements and provide competitive readiness. Unique Benefits of the Model Spotify focusses on Agile Principles rather than mandating specific practices. Squads are autonomous to choose their own agile way of working. (Scrum/XP/Kanban/Scrumban etc. Not all Squads within a Tribe follow the same method) Specific Agile ceremonies and artifacts are not imposed on the Squad. Practices which work well with multiple Squads are automatically adopted by other Squads without the resistance that comes with standardization. This creates a balance of consistency across Squads along with the flexibility needed for autonomy. Though Squads are autonomous and loosely coupled they are tightly aligned by grouping them into Tribes. How Spotify is different from other Scaled Agile frameworks  While SAFe is a heavyweight scaled agile framework having many different flavours like Essential SAFe, Portfolio SAFe, etc, Spotify is more of a lightweight framework.  It might work very well for start-ups that are growing into medium Enterprises or for larger enterprises that are not ready yet for something as heavy as SAFe. The role of the Scrum Master is absent in Spotify, but the Squads have access to Servant Leaders in the form of Chapter and Tribe Leads and Agile Coaches. Conclusion  The Spotify Model has been a popular buzzword due to its unique nomenclature, flexibility and simplicity. It recommends the need for a community-based networking structure within the organization and focuses on the Agile Principles rather than Practices. It is a very unique and liberating Scaled Agile model and requires the practitioners to be extremely mindful and responsible while adopting it, so that it can be tailored for their specific organizational needs. 
5428
The Spotify model - Agile

Many companies find it hard to scale Agile due to ... Read More