Search

How to Write A Well-Formed User Story

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

How to Write A Well-Formed User Story

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


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

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

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

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

    Top challenges in Writing User Stories

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


Conduct a Story writing workshop Quarterly.



Three tips for a successful story writing session are:

  1. Set the single objective for the meeting.

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

  2. Have the right participants,

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

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

    User Story Mapping technique:

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

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

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

    How to Split a User Story: Biggest challenge…

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

JUST ENOUGH AND JUST IN TIME

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

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

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

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

2) Design Brochure Layout

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

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

Few more examples:

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

Shilpi Jain

Blog Author

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

Join the Discussion

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

3 comments

Vinayaka Nari 24 Oct 2018

Informative and well articulated

sanjay saroj 16 Nov 2018

good presentation mam.Thank you.

Trived sinha 16 Nov 2018

Very detailed article Thank you

Suggested Blogs

Scrum: A Better Way of Building Projects

If you are new to the world of software development, then there is a likelihood that the terms “Scrum” and “Agile” will appear the same to you. But, there is a major distinction between the two.Agile comprises of self-organisation, cross-functionality of the teams, collaboration and refers to the methods and practices based on the values and principles expressed in the ‘Agile Manifesto’.Scrum is a framework that implements Agile development.Simply put, Scrum is an iterative and incremental structure for project management mainly used in agile software development. The scrum methodology indicates functional software, the versatility to change accompanying with emerging communication, collaboration, and business realities.If you are planning to put Scrum applications into practice in your team or organization, and are new to the concepts, then you have reached the right place. Read on to know the basics of Scrum, how it works along with in-depth detail on its frameworks, roles, and artifacts.Understanding ScrumScrum is a framework with the help of which people can address complex problems and at the same time deliver products with the highest possible creativity and productivity.Scrum is an agile way to manage projects, mostly emphasizing on software development. Many a time, it is perceived as a methodology, but it is a framework for managing processes, with its main focus on teamwork, accountability, and iterative progress to achieve a well-defined goal.Scrum helps teams to work together in a better way. An example of the same would be a properly functioning Rugby team, where the team members are encouraged to-Learn through their past experiencesBecome self-organized while working on a problemReflect on their victory as well as loss in order to improve continuously.Evolution of ScrumThere was a time once when the word ‘Scrum’ was used only as a rugby football term. Scrum is a technique to restart playing in Rugby, where players pack themselves closely together with their heads down in order to gain possession of the ball. This became the inspiration for the Scrum method in businesses. Let’s have a look at its history and how it came into being.The Scrum concept dates back to 1986. That year, two Japanese business experts Hirotaka Takeuchi and Ikujiro Nonaka introduced the term ‘Scrum’ in the subject of product development. They published the article ‘New New Product Development Game’ in the Harvard Business Review, where they described an approach for commercializing product development which would increase speed and flexibility.By taking real-life examples of companies like Honda, Canon, and Fuji-Xerox, who have achieved surpassing results using extensive, team-based techniques in product development, they emphasised more on self-organised teams and the role of management in the development process. This led to the birth of the concept of ‘Scrum’.In 1995, Jeff Sutherland and Ken Schwaber presented a paper, ‘The Scrum Development Process’, at Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) conference, 1995 in Austin, Texas.In 2001, Sutherland and Schwaber, along with fifteen other colleagues, got together in Snowbird, Utah, where they drafted the Agile Manifesto. It acted as a revolution for the software developers around the globe, as now they had a new approach for creating new software.Since then, the community of Scrum practitioners has grown and is continuing to grow exponentially, generating thousands of high-performing teams in organisations all around the globe. It is now used widely outside of software development as well, changing the world of work for better!Why use ScrumUsing Scrum tools and processes in software development can be very beneficial for the organisation as the framework prefers to work and develop in short sprints. The major advantages of using Scrum are:Higher customer satisfaction: Sprints are short-spanned in Scrum. Hence, results are ready to be delivered and tested within a time span of 1-3 weeks. Scrum provides new features and corrections on a very frequent basis and collects feedback from its clients. This speeds up the process of fixing the bug, hence making the development process even faster. This keeps the customers satisfied.Increases the morale of the team: The teams are self-organised and self-managed. This allows the team members to be more innovative, creative and gives them acknowledgment for their work. They work in a cross-functional manner, helping them to learn new skills.Better exposure and improved progress visibility: All the members of the project team, including the stakeholders can know the updates of the project at any given time. Transparency helps the project team in identifying issues as well as making predictions about the progress of the project.Decreased time to market the product: Scrum has proved to deliver valued products to the customers 30 to 40 percent faster than the traditional methods.Increase in Return on Investment: The decrease in time to market the product is one of the major reasons for Scrum projects to receive a higher return on investment(ROI). The revenue starts coming in sooner,  which results in a higher total return over time.Better project control: The project performance is controlled by the Scrum team and corrections can be made by them. The priorities are adjusted by the Scrum teams at each sprint interval. This allows the team to address issues as they arise and get the requirements done as per necessity.More flexible and responsive: The requirements in the product backlog are unpredictable and volatile, unlike traditional models where requirements are fixed before the development process starts. This makes the business more responsive to the demands of the market.How Scrum Training has benefited companies in the pastOrganizations primarily focus on customer satisfaction in order to achieve success. Teams are self-organized in an Agile environment. They share ideas and collaborate their ideas to find solutions to produce high-quality products. But Agile is not a technique for success. It requires a framework and that is where Scrum plays its role.Scrum has gained immense popularity amongst software development organisations. To name a few:3MAlso known as Minnesota Mining and Manufacturing Company, 3M is an American manufacturer that manufactures multiple numbers of products, ranging from electronic circuits to medical products.According to 3M, they previously relied on the traditional Waterfall methodology for its software development process. When they wished to increase their speed of development of new applications and lower their cost of software product development, they were not satisfied with the Waterfall process. They decided to opt for Agile with Scrum methodology and went for it. With the self-organised teams, they were able to push priorities as deemed. Hence, Agile and Scrum proved worth the effort for them.  ANZThe third-largest bank in Australia, Australia and New Zealand Banking Group (ANZ) has thousands of employees who work together to provide commercial and retail banking to its customers.They adopted Agile with sprint framework in 2017 and since then, they have enjoyed the benefits of Agile. It now releases new functions and features on a monthly basis. SpotifySpotify provides music streaming service and has successfully implemented an Agile environment to attain positive results from the same.Spotify has its employees divided into teams and each team is responsible for building and maintaining a specific function of the app. They don’t fear that one bad commitment will break the entire platform. This has resulted in Spotify becoming the leading music streaming service. Google Google is a part of Alphabet Inc., which is the world’s second-biggest tech company. The main reason behind their success is the timely delivery of updates of its applications. Agile can be credited for this mindset.With multiple applications like Gmail, Google Maps, etc. they all are needed to be first tested extensively before being released for the users.One major example that can be taken from Google is that Google builds, works on, and improves its Android OS. They then release a beta version of the functioning Android OS for its users. It allows users to participate and give feedback. If the reports indicate bugs or usability issues, they fix it and an update is rolled back. IBMBeing one of the biggest technology companies, IBM is known for creating computer hardware around the world. Scrum has also helped improve IBM’s business operations in such a manner that now it offers its own management software that integrates an agile development environment, known as IBM Rotational Team Concert.How is Scrum different from the Waterfall Model?Also known as the linear sequential life cycle, it was the first process model ever introduced. It was used in environments which were structured and weren’t adaptable to changes easily.In the Waterfall Model, each stage or task is needed to be completed before the next task can start. This is done to avoid any overlapping of project stages and to maintain the flow in a single direction.When it comes to the comparison between Waterfall and Scrum methods, a major drawback that Waterfall faces is that it doesn’t allow any changes or alterations. In case an issue occurs, it becomes very difficult to revisit the earlier stages. The project flow must follow the life-cycle as planned before making any changes. Since the market trend in today’s scenario changes on a regular basis, the Waterfall model becomes very difficult to sustain and implement.How does Scrum work?The Scrum Framework has three distinct categories: roles, events, and artifacts. Read along to know about these three categories and the importance of the Scrum Framework.Scrum Framework: How it differs from AgileSince Scrum is centered around steady improvements and is also the core principle of Agile, people often confuse between the two. There are even instances where people (especially those newly introduced to Scrum) use the terms “Agile” and “Scrum” interchangeably.Hence before we begin to explain further, it is important to understand the differences between Agile and Scrum.Scrum is a framework for getting things done while Agile is a mindset. One can use frameworks like Scrum to think the Agile way and build the agile principles in their day-to-day work and communication.Scrum is regarded as an iterative, incremental framework. Let us understand why.An iterative framework like Scrum is one that makes progress towards a defined goal mainly through successive refinements. In Scrum, the iteration happens in the following steps -The development team takes the first important step in any iteration.They write the code based on the collected requirements.Next, the team identifies and refines the weak areas in the code until the product is satisfactory.In every iteration, refinements are made, the code undergoes further changes, and the software is improved.The work in every iteration is improved in the upcoming iterations.But, why is Scrum called an incremental process?In Scrum, the software is developed and delivered in pieces, in small increments. Every new increment is nothing but a subset of the final software. Each increment is fully coded and tested. In other words, “completed” work is delivered throughout the project.This explains why Scrum is regarded as an incremental process.Read along and learn about Scrum roles, artifacts and events, and how they work together in order to deliver a product in the market.Scrum RolesThe scrum framework defines three scrum roles, namely:Scrum TeamScrum MasterScrum Product OwnerAll of these roles have a defined set of responsibilities. They need to interact closely, work together and act according to their responsibilities to finish a project successfully.Each of these roles is explained below:Scrum Team: It is a group of individuals who work together to deliver the product as requested. They hold the responsibility to decide and delegate how a problem can be solved without the help of any team leader. The team as a whole decides how to address an issue and take care of it. The most effective scrum teams are close-knit, co-located, and small-scale. All team members have different skill sets and they help each other at any point needed to ensure a successful sprint completion.  In order to work more efficiently, a Scrum Team should:Follow a common goalAdhere to the same rules and regulationsRespect everyone aroundIt is the responsibility of the scrum team as a whole to deliver the product in the committed time frame and with the desired quality. A good result or a non-success of the product is never credited to a single team member but always to the Scrum Team as a whole.Characteristics of a Scrum Team:Scrum teams have the following attributes:The team as a whole is responsible for the delivery of the projectThe Scrum Team is self-dependent and empoweredThere aren’t any sub-teams under the Scrum TeamAll team members are collocatedThe skills within the Scrum Team are balancedThe team is cross-functional and holds mutual accountabilityScrum Master: A Scrum Master is a part of the Scrum Team who holds the responsibility to ensure that the Scrum Team abides by the Scrum theory, rules and practices. He is not the same as a Team Leader. A Team Leader leads the team as well as assigns tasks to the team members, whereas a Scrum Master ensures that the team is working according to the rules and that they have understood the Scrum method entirely. They act as an advisor for the team and are on a continuous lookout for the team’s improvements.Responsibilities of a Scrum Master:A Scrum Master has several important responsibilities, to name a few:Act as a coach for the Scrum TeamMake sure that the Scrum Team is protected from any external requests or disruptionsFacilitate the Scrum EventsTake measures to maximize the productivity of the teamBuild trust and transparencyEnsure that there is proper communication between the Scrum Team and the Product Owner.Product Owner: The Product Owner plays a very crucial role in a Scrum team. He acts as an interface between the team and the stakeholders and is responsible to ensure that the work is being in the correct order to deliver a product of the highest possible value. He works very closely with the Scrum Team and coordinates their activities throughout the project.Responsibilities of a Product Owner:A Product Owner has several responsibilities:Communicates with the stakeholders  (customers, marketing, etc.) and discusses the required functionality. These are then filtered and prioritized before being handed over to the team.He is the only person who is allowed to manage the Scrum Product Backlog and keep it in the order of the priority.Responsible for making it to the project goal, hence creating and maintaining the release plan.Make sure that all members of the team understand what is required of the project.The team reports the results to the Product Owner during the sprint review.He makes the schedule, scope and trade-off decisions.Responsible for the ROI of the product.Scrum Events (Ceremonies)To create regularity and to minimize the need for undefined meetings in Scrum, there are a few prescribed events in Scrum. All of these events are time-boxed and are conducted on a regular basis. The Scrum Events are stated below:SprintSprint PlanningDaily Scrum MeetingsSprint ReviewSprint RetrospectiveSprint: A Sprint is a time-boxed period in which specific work is completed, that is, the team works together to develop a product incrementally. Sprints are usually of a duration of one month or less. A new Sprint starts as soon as the previous Sprint gets over. The main motive behind a Sprint is to provide a pattern to work on for the team.Sprint Planning: A Sprint Planning is a meeting where the Product Owner along with the Development Team discusses the prioritization of the product backlog items and plans the delivery of the final product. It occurs at the beginning of a sprint. The work that is to be performed in a sprint is discussed and planned in this meeting. It is the responsibility of the Scrum master to make sure that the meeting takes place and that the team understands the purpose.  The necessary inputs for Sprint Planning are:Product BacklogConstraintsSprint GoalTeam capabilitiesDaily Scrum Meeting: A daily scrum meeting is commonly termed as a daily stand-up meeting, where all team members meet to discuss their progress since the last stand-up meet. It is a time-boxed meeting of 15 minutes.The main objective of this meeting is to discuss:Work in progressCreate a plan for the next 24 hours.Sprint backlogs, if anyAny new informationSprint Review: After the end of each Sprint, the development team along with the stakeholders hold a session to discuss the updates of the backlog items and receive feedback for the same. This session is known as the Sprint Review.The possible outcomes of the Sprint Review are:Demonstrate the results of the sprintsRevised Product BacklogCancel any further development, if neededRespond to questionsReceive feedbackResolve the impedimentsThe final result of the Sprint Review is the revised Product Backlog, which acts as the Product Backlog for the upcoming sprint.Sprint Retrospective: The Sprint Retrospective is a technique which is used for continuous improvement. It is conducted after the Sprint Review, preceding the upcoming Sprint Planning. In this meet, the Scrum Team examines the previous sprint and creates a plan for enhancement which can be put into action in the upcoming sprint. The Development Team, Product Owner and Scrum Master participate in this meet.The important inputs are:Data about team performanceImprovement backlogThe focus of the teamScrum ArtifactsThe Scrum Artifacts present the development team and the stakeholders with the key information that they need to be aware of. The main objective of the Scrum Artifacts is to provide transparency and opportunities for inspection and adaptation. It reflects a team’s progress towards the sprint goal.The Scrum framework defines three artifacts:Product BacklogSprint BacklogProduct IncrementProduct Backlog: Product Backlog outlines all the requirements that are needed for a project, product or system. It can be considered as a to-do list of all the changes that are to be made to a project. The Product Owner is responsible for the Product Backlog, where he can add, change and re-prioritize the tasks as needed. It is a living artifact as the requirements never stop changing. Any changes in the business requirements, market conditions or technology may result in changes in the Product Backlog.A Product Backlog may contain functional, non-functional, infrastructural, and architectural elements. They also work on the important risks that are needed to be removed or mitigated.The Product Backlog is refined and revised periodically so that it can be helpful for the next level of planning. This is known as Product Backlog Refinement. The Development Team along with the Product Owner estimate the items in it, which includes order, description, estimate, and value.The major activities involved during the backlog refinement are:Asking questions to the product owner for precise informationCreating new user storiesDeleting stories that are no longer requiredEstimating or re-estimating the user storiesRefining stories for preparation of future sprintsRe-prioritising the storiesReviewing the highest priority storiesSprint Backlog: A Sprint Backlog is a list of items that are taken from the Product Backlog which are to be completed within a Sprint. It also contains a plan to deliver the product increment and to realize the sprint goal. The development team plans and gives a forecast about the changes or increment in the functionality that will happen during the sprint, along with the work that is required to deliver the implemented functionality.The Development Team is responsible for creating and maintaining the Sprint Backlog. As soon as new work comes in, the development team adds it to the Sprint Backlog. The team can change, add, remove or modify the tasks any time as needed. The scrum master can give advice and make suggestions about any missing task(s).The Sprint Backlog needs to be updated by the team at least once every day. A sprint starts only when all the team members agree on the fact that the Sprint Backlog is achievable.The Sprint Backlog can be monitored and the work which is remaining can be calculated. By doing this, the likelihood of successfully achieving the Sprint Goal can be concluded as well, which will help the development team to manage its progress.Product Increment: Product Increment is the most important Scrum Artifact. It is the sum of all the Product Backlog items that have been completed in the sprint along with the values of the increments produced in the previous sprints. An increment is the product of a project which is potentially shippable. It should be acceptable by the Product Owner regardless of whenever he decides to release it.Challenges faced in applying Scrum and how to overcome themMastering the rules and practices of Scrum is not that simple. It will require a lot of time and effort to do so.Scrum doesn’t promise to fix all problems, but it helps bring them out in the open. Scrum can be mastered by facing different challenges and overcoming them. Scrum will certainly not fail you in doing so as it is designed to work for you, as long as you know how to make it work.Let’s address the common challenges that teams and organisations face during the implementation of Scrum and look at the possible solutions.1. Resistance to change: Organisations are generally resistant to changes. Change can be difficult and uncomfortable, hence people generally avoid it. Scrum may prove to be challenging to deploy for established organisations. The major challenge that they face is the change from yearly or semi-annual releases to weekly iterations. For an organisation to start using Scrum, it will require a shift in the fundamental mindset which will change the old habits and bring along new, more effective ones.Get out of comfort zone: It is very important to understand what an individual’s true feelings are towards adopting Scrum and why they resist changes. Learn about them and find measures to help them overcome it.An incremental approach can be observed as well. Start small, that is, involve one team and showcase their results. Let their experience inspire others.2. Distributed team: A major issue that a distributed (Scrum) team faces is communication. Conflicting working hours and a difference in time zones may diminish the overall effectiveness of the team, making collaboration difficult in many cases. Lack of communication may cause delays or unnecessary errors, which can lead to poor sustainability, ultimately affecting productivity.Everyone should be on the same page: It is very important to be considerate of the fact that team members of different nationalities will have different traditions. Apart from this, coordination and trust are very important as well. One can also take the following practical measures:A boot camp can be conducted where the whole team can come together. These sessions can give an understanding of a customer’s requirements and goals.Designated members can be relocated to different places, where they can work with the resident team on a temporary basis.Team members working in different time zones should be provided with different facilities like video conferencing, instant messaging software, and desktop-sharing abilities.Teams can be paired across different locations. It functions in a way that when one member is clocking off for the day, his corresponding team member may be starting his day across the globe. He can take over the work and continue working.3. Handling bugs and high-priority tasks: One can receive unexpected and urgent requests from stakeholders and customers. Bugs might also arise in the process. Some of these can be added to the Backlog, though it is recommended not to add all of them. They might be needed to be taken care of as soon as possible.Assign a person for the same and allow more time for bug fixing: Assign a person from the team who will focus all of his attention on tasks like fixing bugs, responding to urgent requests, etc. Also, with the development of progress, increase the time allocated for bug fixing.Scrum Vs KanbanAgile is a set of principles and ideas while Scrum and Kanban are frameworks that help teams and organizations to put these agile principles and values into practice to get things done.Kanban and Scrum follow the same principles, while their practices differ. The main aim behind both of these frameworks is to help you build better products.Kanban in a nutshell:Kanban is a tool which is used to organize work so that efficiency can be improved. Like Scrum, Kanban breaks down its work into small chunks and makes use of a Kanban Board. The Kanban Board is used to keep track of the work as it advances through the workflow. It not only displays the workflow but also optimizes the flow of tasks within different teams. The work to be done is time-bounded in Scrum, whereas Kanban limits the amount of work to be done in a condition, that is, it limits the ongoing tasks and the to-do list. Kanban visualizes the work and limits the work in progress so that the efficiency can be improved.There are several differences in the philosophies and practical applications of Kanban and Scrum, as well as many individual differences. Let’s have a look at them.ScrumFactorKanbanThe Scrum Team consists of the Scrum Master, Product Owner, and the Development Team.Team RolesThere are no defined roles in a Kanban Team. The roles need not be cross-functional.Each sprint is estimated or planned based on the Backlog Sheet.Work BoardWorkflow/ Work Item/ Kanban Board is used to track the work.Scrum emphasises on regular, fixed sprints.ScheduleThere is no iteration or time-boxing in Kanban. It has a continuous flow.No changes are made during the Sprints.Change philosophyChanges can happen at any time during the process.Releases are made at the end of each sprint.ReleaseThere is a continuous delivery in Kanban.Best applicable for teams which have stable priorities that will not change much over time.ApplicationBest applicable for projects which have a lot of varying priorities.Productivity is measured using velocity through sprints.Productivity MeasurementMeasures productivity by measuring the amount of time that a team takes to complete a piece of the project from the starting till the end.List of Scrum certificationsScrum Master certification is one of the oldest and also the most popular certification in Agile. Certifications help and are needed because they are a confirmation on the implementation and also a verification of the knowledge gained.They validate your knowledge in Agile and Scrum.The most popular certification programs are:Certified ScrumMaster® (CSM: Scrum Alliance)Certified Scrum Product Owner® (CSPO: Scrum Alliance)Certified Scrum Professional® (CSP: Scrum Alliance)SAFe® Agilist (SA)SAFe® Program Consultant (SPC4)Professional Scrum Master™ (PSM: Scrum.org)Certified Scrum Developer® (CSD: Scrum Alliance)LeSS (Large Scale Scrum)Scrum Master Certified (SMC™)Certified Agile Leader (CAL: Scrum Alliance)SAFe® 4.0 Advanced Scrum MasterSAFe® 4.0 for TeamsProfessional Scrum Product Owner™ (PSPO: Scrum.org )SAFe® 4.0 Product Manager/Product OwnerMost of the basic certifications do not require any experience as a Scrum Master and can be taken up directly after completing training. However, the Advanced certifications require completion of basic certification and work experience ranging from a minimum of 1 to 2 years.In conclusionThe Scrum Framework is simple and easy to understand, and so are the rules, artifacts, roles, and events. Scrum doesn’t keep a count of the amount of time that you have spent working but measures the tasks that have been accomplished. It makes one more efficient with their time and work.It is ideal for complex and difficult projects as the tasks are broken down into small user stories. The transparency throughout the development cycle along with the distribution of roles and planned events are added advantages. Progress can be observed in a small amount of time which might even lead to quick releases.But, if the team is accustomed to the traditional Waterfall model, then they might feel difficulty in adopting Scrum. But the long-term benefits outweigh the problems faced in the initial learning curve, making it a cogent framework to adopt for your organization.
Rated 4.5/5 based on 16 customer reviews
7599
Scrum: A Better Way of Building Projects

If you are new to the world of software developmen... Read More

5 Silent Killers Of Agility (Using Scrum) You Cannot Ignore

We all know that ‘agile’ is the buzz in IT and has been for at least 10 years now. The draw is the iterative delivery and the ability to adapt to change. Iterative delivery means that work can be delivered in small functional chunks sooner vs. One big giant release after months or years. Unfortunately calling yourself agile and even adopting some of the principles are not enough.  Below I highlight some of the silent killers to agility.  1. Ceremonies Lack Value – In scrum the following ceremonies exist:Daily Stand-up – A 5 to 15-minute meeting, intended to be conducted standing up (to ensure the time box) where the team members answer 3 questions: What did I do yesterday? What am I doing today? Do I have any roadblocks? This meeting is intended to be highly informative.Backlog Grooming – A weekly meeting where the team reviews the backlog and ensures stories have the proper level of detail (as determined by the team) and have a story point value.Sprint Planning – A meeting that kicks off each sprint (project cycle) where the Product Owner presents the work suggested for the sprint. The team reviews discuss and agrees on a body of work commitment.Retrospectives – In traditional projects, this is called a ‘post-mortem.’ In the scrum, this is done more frequently to ensure that the team quickly adjusts to repeat positive behaviors and discontinues negative behaviors.Demonstrations – A meeting that wraps each sprint where a team member presents the work completed to the necessary stakeholdersThe problem arises when one or many of these ceremonies are seen by the team as unnecessary. I am not prescribing a strict adherence to these ceremonies, but if you deem a ceremony to be part of your process, there’s a reason. If the team doesn’t understand that reason, you need to constantly reiterate the value to your team.2. Changing resources – A common characteristic of Agile teams is that they are stable. This means that the team is staffed with stability in mind. When the team stays together, unchanged, they learn how to best work together and they grow with each other. Every time a new member is added the team has to be partially focused with onboarding new team members and it messes with the team chemistry. Additionally, the team’s velocity will need to be re-established based on the changing resources.Solution: When possible, insulate your existing team(s) from change. If needed, spin-up completely new teams, so as to avoid impacting the existing teams.3. Scrum Master to Team Ratio – The Scrum Master is the public servant for the team. Their role is to coach, mentor, remove roadblocks and protect the team. With that role and those responsibilities in mind, it’s easy to see that the Scrum Master has to be intimately involved with the team to be able to perform their function and serve the team. When a Scrum Master is spread across too many teams their effectiveness is heavily diluted. Best case is to have each Scrum Master with only 1 team. I’ve seen and functioned in environments that capped the Scrum Master to 3 teams or less. That’s a little more of a stretch, but with staggering ceremonies and sprints, it’s possible.  When the Scrum Master has greater than 3 teams I’ve personally experienced (as well as observed) a decline in the ability to serve the team.Solution: Invest in more Scrum Masters. Bring on new resources or promote from within, just get that Scrum Master to team ratio down.4. The Personality of the Scrum Master – It’s very common in many organizations to convert traditional project managers to the role of Scrum Master. That can work, but it can also be problematic. The Scrum Master needs to be the right personality. A traditional Project Manager is constantly pushing the team to meet deliverable timelines within budget. A Scrum Master, while still invested in the team’s deliverables, is more interested in helping the team and the team members become successful. The Scrum Master’s role and personality are very different from a Project Manager.  As mentioned in the previous point, the Scrum Master is a coach and mentor. That takes a special personality. Also, the Scrum Master needs to be fluent in ‘Agile’ practices and practical applications.Solution: Avoid the simple decision of converting Project Managers to Scrum Masters. Instead, interview for people with the right personalities and skills. Ask servant leader-centric questions when interviewing for a Scrum Master. 5. Time Off and Holidays – On my very first ‘scrum’ team we would spend a portion of our sprint planning to evaluate the calendar of the sprint. Each team member would look at their true calendars for the sprint and provide a daily capacity. That ‘true capacity’ could then be evaluated when choosing what stories and how many to bring into the sprint. Just know, it would be a disappointment for the team to fail a sprint simply because they didn’t take into account holidays or personal time off (most of which is known).Solution: Create a calendar at the beginning of each sprint and have your team provide their ‘real’ daily capacity. Publish that calendar for the entire team to see. The exercise alone gets people thinking about deliverable commitments, but publishing the calendar is a constant reminder.These silent killers in agile implementation can be silently sabotaging your teams, enterprise, or company’s implementation of agile. Also, you might see a completely different set of silent killers. It’s up to you to determine your non-negotiable practices and then work to mitigate those killers.
Rated 4.5/5 based on 44 customer reviews
58868
5 Silent Killers Of Agility (Using Scrum) You Can...

We all know that ‘agile’ is the buzz in IT and... Read More

How SAFe®️ Core Values Quicken The Progress Of An Agile Team

What is Scaled Agile Framework (SAFe®️)?The Scaled Agile Framework (SAFe®️) helps businesses address the significant challenges of developing and delivering enterprise-class software and systems in the shortest sustainable lead time. It is an online, freely revealed knowledge base of proven success patterns for implementing Lean-Agile software and systems at enterprise scale.Developed in the field, SAFe®️  draws from three primary bodies of knowledge: Agile development, systems thinking, and Lean product development. It synchronizes alignment, collaboration, and delivery for large numbers of Agile teams. Scalable and configurable, SAFe®️ allows each organization to adapt it to its own business needs. It supports smaller-scale solutions employing 50–125 practitioners, as well as complex systems that require thousands of people. Why use  SAFe®️ ? SAFe®️ combines the power of Agile with systems thinking and Lean product development. It synchronizes alignment, collaboration, and delivery for multiple Agile teams. As a result,  SAFe®️ provides dramatic improvements to business agility, including productivity, time to market, quality, and employee engagement, and more.SAFe®️ is improving business outcomes for companies of all sizes across the world. It has produced dramatic increases in time to market, employee engagement, higher quality, higher customer satisfaction, and overall improved economic outcomes. It also helps create cultures that are more productive, rewarding, and fun.QualityBuilt-In Quality practices increase customer satisfaction and provide faster and more predictable value delivery. They also improve the ability to innovate. Without quality, the Lean goal of the maximum value in the shortest sustainable lead time cannot be achieved. ProductivityWhen productivity increases, system development economics improves, as does employee engagement. For team members, productivity is a critical, personal need. Everyone feels better when they’re contributing more and doing less wasteful work.Employee EngagementAccording to the Society of Human Resource Management (SHRM), employees with the highest level of commitment perform 21 percent better and are 65 percent less likely to leave the organization. Clearly, employee engagement is directly linked to business performance.Faster Time to MarketLean-Agile frameworks allow businesses to deliver value to the market more quickly. Companies that adopt Agile development practices routinely gain first-mover advantages and enjoy the higher gross margins afforded to market leaders. SAFe®️ enterprises typically see a 30–75 percent (as much as 3x!) improvement in time to market.SAFe®️ configurationsSAFe®️ supports the full range of development environments with four out-the-box configurationsEssential SAFe®️Portfolio SAFe®️Large Solution SAFe®️Full SAFe®️Essential SAFe®️The Essential SAFe®️ configuration is the heart of the Framework and is the simplest starting point for implementation. It’s the basic building block for all other SAFe®️ configurations and describes the most critical elements needed to realize the majority of the Framework’s benefits.  Together, the Team and Program Levels form an organizational structure called the Agile Release Train (ART), where Agile teams, key stakeholders, and other resources are dedicated to an important, ongoing solution mission.Large Solution SAFe®️The Large Solution SAFe®️ configuration is for developing the largest and most complex solutions that typically require multiple Agile release trains and Suppliers, but do not require portfolio-level considerations. The Solution Train organizational construct of the Large Solution Level helps enterprises that face the biggest challenges—building large-scale, multidisciplinary software, hardware, and complex IT systems. Building these solutions requires additional roles, artifacts, events, and coordination. Portfolio SAFe®️The Portfolio SAFe®️ configuration helps align portfolio execution to the enterprise strategy, by organizing Agile development around the flow of value, through one or more value streams. It provides business agility through principles and practices for portfolio strategy and investment funding, Agile portfolio operations, and Lean governance. Full SAFe®️The Full SAFe®️ configuration is the most comprehensive version of the Framework. It supports enterprises that build and maintain large integrated solutions, which require hundreds of people or more and includes all levels of SAFe®️: team, program, large solution, and portfolio. In the largest enterprises, multiple instances of various SAFe®️ configurations may be required. Scaled agile framework core values  - SAFe®️  SAFe®️ is broad and deep and based on both Lean and Agile principles as its foundation.Importance of core valuesCore values are the fundamental beliefs of a person or organization.The core values are the guiding principles that speak behavior and action.Core values can help people to know what is right from wrong.It helps companies to determine whether they are working on the right path or not.SAFe®️ upholds four Core Values: alignment, built-in quality, transparency, and program execution, as illustrated in Figure below and described in the following sections.1. AlignmentAlignment ensures that many people act as one unit or team, all pulling in the same direction. Alignment in SAFe®️ is achieved when everyone in the portfolio, and every team member on every ART, understand the strategy and the part they play in achieving it.SAFe®️ delivers alignment by orchestrating strategic themes, vision, roadmap, and PI planning. Economic prioritization and the visible flow of work through the various Kanban systems and backlogs provide visibility and transparency.2.Built-in QualityBuilt-in quality is one of the important core values of SAFe®️. The enterprise’s ability to deliver new functionality with the fastest sustainable lead time and to be able to react to rapidly changing business environments is dependent on solution quality. But built-in quality is not unique to SAFe®️. Rather, it is a core principle of the Lean-Agile mindset, where it helps avoid the cost of delays associated with recall, rework, and defect fixing. The Agile Manifesto is focused on quality as well: “Continuous attention to technical excellence and good design enhances agility.”The following sections summarize recommended practices for achieving built-in quality.SoftwareSAFe®️’s software quality practices—many of which are inspired by Extreme Programming (XP)— help Agile software teams ensure that the solutions they build are high quality and adaptable to change. The collaborative nature of these practices, along with a focus on frequent validation, creates an emergent culture in which engineering and craftsmanship are key business enablers. Test-Driven DevelopmentTest-Driven Development (TDD) is a philosophy and practice that recommends building and executing tests before implementing the code or a component of a system. By validating them against a series of agreed-to tests, TDD—an Agile Testing practice—improves system outcomes by assuring that the system implementation meets its requirements. TDD, along with Behavior-Driven Development (BDD), is part of the ‘test-first’ approach to Build Quality into development. Writing tests first creates a more balanced testing portfolio with many fast, automated development tests and fewer slow, manual, end-to-end tests. Acceptance Test Driven DevelopmentAcceptance Test Driven Development (ATDD) is a practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. It’s the best way to ensure that all have the same shared understanding of what it is we are building. It’s also the best way to ensure we have a shared definition of Done.Behavior-Driven DevelopmentBehavior Driven Development (BDD) is a Test-First, Agile Testing practice that provides Built-In Quality by defining (and potentially automating) tests before, or as part of, specifying system behavior. BDD is a collaborative process that creates a shared understanding of requirements between the business and the Development Team. Its goal is to help guide development, decrease rework, and increase flow. Without focusing on internal implementation, BDD tests are business-facing scenarios that attempt to describe the behavior of a Story, Feature, or Capability from a user’s perspective. When automated, these tests ensure that the system continuously meets the specified behavior even as the system evolves. That, in turn, enables Release on Demand. Automated BDD tests can also serve as the definitive statement regarding the as-built system behavior, replacing other forms of behavioral specifications.Continuous IntegrationThis is the practice of merging the code from each developer’s workspace into a single main branch of code, multiple times per day. This lessens the risk of deferred integration issues and their impact on system quality and program predictability. Teams perform local integration at least daily. But to confirm that the work is progressing as intended, full system-level integration should be achieved at least one or two times per iteration.RefactoringRefactoring is “a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.” A key enabler of emergent design, refactoring is essential to Agile. To maintain system robustness, teams continuously refactor code in a series of small steps, providing a solid foundation for future development.Pair WorkSome teams follow pair programming, but that may be too extreme for many. More generally, pair work may couple developers and testers on a story. Still, others prefer more spontaneous pairing, with developers collaborating for critical code segments, refactoring of legacy code, development of interface definition, and system-level integration challenges.HardwareHardware quality is supported by exploratory early iterations, frequent system-level integration, design verification, modeling, and set-based design. The Agile architecture supports software and hardware quality.1.System IntegrationDifferent components and subsystems—software, firmware, hardware, and everything else—must collaborate to provide effective solution-level behaviors. Practices that support solution-level quality include:Frequent system and solution-level integrationSolution-level testing of functional and Nonfunctional RequirementsSystem and Solution Demos2.ComplianceSAFe®️ enterprises that build high assurance systems define their approved practices, policies, and procedures in a Lean Quality Management System (QMS). These systems are intended to ensure that development activities and outcomes comply with all relevant regulations and quality standards, as well as providing the required documentation to prove it.3.TransparencyTransparency builds trust. Trust, in turn, is essential for performance, innovation, risk-taking, and relentless improvement. Trust exists when the business and development can confidently rely on another to act with integrity, particularly in times of difficulty. Without trust no one can build high-performance teams and programs, nor build (or rebuild) the confidence needed to make and meet reasonable commitments.  And without trust, working environments are a lot less fun and motivating.Here are few SAFe®️ practices which enable trust:ARTs have visibility into the team’s backlogs, as well as other Program Backlogs.Teams and programs commit to short-term, visible commitments that they routinely meet4. Program ExecutionSAFe®️ places an intense focus on working systems and business outcomes. History shows us that while many enterprises start the transformation with individual Agile teams, they often become frustrated as even those teams struggle to deliver more substantial amounts of solution value, reliably and efficiently. That is the purpose of the ART, and that is why SAFe®️ focuses implementation initially at the Program Level. In turn, the ability of Value Streams to deliver value depends on the ability of the ARTs and Solution Trains.ConclusionThe four Core Values of alignment, built-in quality, transparency, and program execution represent the fundamental beliefs that are key to SAFe®️ effectiveness. These guiding principles help dictate behavior and action for everyone who participates in a SAFe®️ portfolio. Successful teams and programs implementing  SAFe®️ have aligned their organizations along these core values and getting many benefits—employee engagement, productivity, quality, and time to market. 
Rated 4.0/5 based on 14 customer reviews
4610
How SAFe®️ Core Values Quicken The Progress Of ...

What is Scaled Agile Framework (SAFe®️)?The Sca... Read More