Search

Are You Writing The Best User Stories In Agile?

WHAT IS A USER STORY?A user story is a part of an Agile software development approach to present the details of a requirement from a customer’s point of view. A user story specifies what type of user you are, what you want and the reason behind it. A user story helps to create a simple and short description of a requirement told from the user’s perspective.They generally follow a simple approach for a user story:As a < type of user >, I want < a goal > so that < a reason >.Another approach includes:As a <user type>, I want <a goal> because <why>.Originally, Agile user stories were meant to be very short and simple to write on sticky notes or index cards. They were fixed on tables or walls to simplify their planning and discussions. Therefore, they actively shift the target from writing about features to explaining them. In reality, these explanations are more important than the story is written. We can know them prominently in any major Agile process.What does a user story mean? Let us try to understand with an example.Imagine you are using an app on your phone. Now, you like the app, but you would love to have an additional feature in this app. How would you describe your wish to the developer of the app? You will say something like-"I want to have X functionality so that I am able to get Y benefit."While creating a user story, you write in the exact same way, the only additional information which you need to provide is about the type of user you are.The advantages of user stories can be written at different levels in details. We can write a user story to cover a huge amount of functionalities. These large user stories are generally called ‘epics’. Let us clarify this with a few more examples-“As a user, I can view the license terms before purchasing or subscribing so that I know what I’m getting.”“As an app user, I can read FAQs, so I can get quick answers.”“As a website admin, I want all the offers to get unpublished on the website after 7 days of publishing so that the expired offers are not still listed if I forget to delete them.”In all these examples, it is clear who want the features, what they want, and what benefits they would get with the additional functionality.WHO WRITES THE USER STORIES?Business people are responsible for writing the user stories in a customer-specific language. We have to do this because we want user requirements to be clean and clear to both the development team and the business. The role of a development team is to satisfy the end-user acceptance criteria of the storyboard. In Scrum process, the product owner is responsible to represent the business as well as to finish the activity.WHEN TO WRITE USER STORIES?In an Agile project, User stories are generally written in the end. Usually, writing a user story workshop is held close to the beginning of the project in Agile. Everyone should participate in writing or adding the user stories to the product backlog at any time. If your team members are predicted to deliver the stories, then roughly we have to maintain 3 sprints of user stories in the backlog. The additional aspects of efforts and features are a superset of user stories. In these cases, the product owner team interacts with the development team to split user stories into enough levels.WHY ARE USER STORIES USED IN SOFTWARE DEVELOPMENT?User stories are used because they provide many benefits in software development. Here are some of them.User stories help in delivering value to the customer.User stories talk about the immediate customer needs. Because of this, the features implemented and delivered to the end user is of  the highest value.User stories enable a project to be quickly adjustable.Since user stories help in adding small features one by one, it becomes easier for the developing team to steer towards new direction if it is required.User stories increase the collaboration of end user.Since user stories are short, the people involved in the project need more explanation from the end user to clearly understand the story. This increases user collaboration.User stories are followed by Acceptance Criteria. Acceptance Criteria clarifies the end user that in which situations the story will be fulfilled. They are a list of requirements. They are written in "Given, When, Then" format.Let us see an example for a clearer understanding of user stories. Suppose, there is a story for a website user which goes like this-"As a logged out user,I want to be able to sign in to the website,So that I can see my previous transactions."Now the acceptance criteria for this story can go something like thisScenario: The registered user signs in with a valid username and password“Given I am logged out of the websiteand I am on the Sign-In page.When I fill in the “Username” and “Password” fields with my valid credentialsand I click the Sign-In buttonThen I get signed in to the website”Acceptance criteria help in creating a clear understanding between the developers and the clients about when and how the features will work. The client understands what to expect from the project. And hence, the chances of miscommunication between the parties get reduced.
Rated 3.5/5 based on 4 customer reviews

Are You Writing The Best User Stories In Agile?

393
Are You Writing The Best User Stories In Agile?

WHAT IS A USER STORY?

A user story is a part of an Agile software development approach to present the details of a requirement from a customer’s point of view. A user story specifies what type of user you are, what you want and the reason behind it. A user story helps to create a simple and short description of a requirement told from the user’s perspective.

They generally follow a simple approach for a user story:

As a < type of user >, I want < a goal > so that < a reason >.

Another approach includes:

As a <user type>, I want <a goal> because <why>.

Originally, Agile user stories were meant to be very short and simple to write on sticky notes or index cards. They were fixed on tables or walls to simplify their planning and discussions. Therefore, they actively shift the target from writing about features to explaining them. In reality, these explanations are more important than the story is written. We can know them prominently in any major Agile process.


What does a user story mean? Let us try to understand with an example.

Imagine you are using an app on your phone. Now, you like the app, but you would love to have an additional feature in this app. How would you describe your wish to the developer of the app? You will say something like-

"I want to have X functionality so that I am able to get Y benefit."

While creating a user story, you write in the exact same way, the only additional information which you need to provide is about the type of user you are.

The advantages of user stories can be written at different levels in details. We can write a user story to cover a huge amount of functionalities. These large user stories are generally called ‘epics’. Let us clarify this with a few more examples-

“As a user, I can view the license terms before purchasing or subscribing so that I know what I’m getting.”

“As an app user, I can read FAQs, so I can get quick answers.”

“As a website admin, I want all the offers to get unpublished on the website after 7 days of publishing so that the expired offers are not still listed if I forget to delete them.”

In all these examples, it is clear who want the features, what they want, and what benefits they would get with the additional functionality.

WHO WRITES THE USER STORIES?
Business people are responsible for writing the user stories in a customer-specific language. We have to do this because we want user requirements to be clean and clear to both the development team and the business. The role of a development team is to satisfy the end-user acceptance criteria of the storyboard. In Scrum process, the product owner is responsible to represent the business as well as to finish the activity.










WHEN TO WRITE USER STORIES?
In an Agile project, User stories are generally written in the end. Usually, writing a user story workshop is held close to the beginning of the project in Agile. Everyone should participate in writing or adding the user stories to the product backlog at any time. If your team members are predicted to deliver the stories, then roughly we have to maintain 3 sprints of user stories in the backlog. The additional aspects of efforts and features are a superset of user stories. In these cases, the product owner team interacts with the development team to split user stories into enough levels.

WHY ARE USER STORIES USED IN SOFTWARE DEVELOPMENT?
User stories are used because they provide many benefits in software development. Here are some of them.

  • User stories help in delivering value to the customer.

User stories help in delivering value to the customer

  • User stories talk about the immediate customer needs. Because of this, the features implemented and delivered to the end user is of  the highest value.

    User stories talk about the immediate customer needs
  • User stories enable a project to be quickly adjustable.
  • Since user stories help in adding small features one by one, it becomes easier for the developing team to steer towards new direction if it is required.
    user stories help in adding small features
  • User stories increase the collaboration of end user.

Since user stories are short, the people involved in the project need more explanation from the end user to clearly understand the story. This increases user collaboration.

User stories are followed by Acceptance Criteria. Acceptance Criteria clarifies the end user that in which situations the story will be fulfilled. They are a list of requirements. They are written in "Given, When, Then" format.
 Acceptance CriteriaLet us see an example for a clearer understanding of user stories. Suppose, there is a story for a website user which goes like this-

"As a logged out user,
I want to be able to sign in to the website,
So that I can see my previous transactions."

Now the acceptance criteria for this story can go something like this

Scenario: The registered user signs in with a valid username and password
“Given I am logged out of the website
and I am on the Sign-In page.
When I fill in the “Username” and “Password” fields with my valid credentials
and I click the Sign-In button
Then I get signed in to the website”

Acceptance criteria help in creating a clear understanding between the developers and the clients about when and how the features will work. The client understands what to expect from the project. And hence, the chances of miscommunication between the parties get reduced.

KnowledgeHut

KnowledgeHut

Author

KnowledgeHut is a fast growing Management Consulting and Training firm that is a source of Intelligent Information support for businesses and professionals across the globe.


Website : http://www.knowledgehut.com/

Join the Discussion

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

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
7595
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
58862
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
4608
How SAFe®️ Core Values Quicken The Progress Of ...

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

Useful links