Agile is a collection of software development methods that can incorporate the client’s direct involvement for delivering a solution. This ensures collaboration from the initial stage of the project life cycle and subsequently results in early delivery and continuous improvements. One of the most important and famous methodologies of Agile is Scrum.
Scrum is a framework within which complex problems are addressed to deliver a product with the highest possible value. Scrum, itself, is not a process or technique, but rather a framework in which various techniques and methods are employed. It is a combination of an iterative and incremental model. In a traditional model, such as a waterfall, the major hindrance to improving the system is that until the first stage has been completed, the next phase cannot start. If there are any problems in the later stages, then it becomes a challenge to adjust and implement those changes, which ultimately increases cost, time, and effort.
- Small self-organization team: Responsibilities are discussed among all the members of the team.
- Less documentation: To the point, user stories are used.
- Regular and frequent customer feedback: Customer closely works with the team.
- Decentralization: Decision making is easy for every member of the team.
A scrum framework consists of the scrum team, each of whom has their roles, as well as events, artifacts, and rules. Each component has a specific purpose which is essential for the success of Scrum.
Let’s get familiar with the terminologies to understand Scrum.
The heart of the Scrum is an activity known as sprint. In every sprint, the time frame of two weeks or one month is given to deliver the increment. The times allotted for each activity need to be consistent throughout the project. The next sprint can be executed as soon as the previous sprints have been completed.
- Sprint Planning
- Daily Scrums
- Sprint Review
- Sprint Retrospective
In sprint planning, the Scrum team collaboratively makes a plan to execute the sprint. The duration of a sprint planning meeting is a maximum of four hours for a two weeks sprint, and a maximum of eight hours for a one month sprint. It is the responsibility of a Scrum Master to ensure meetings start on time and that all stakeholders are present and aware of the objectives. In Sprint Planning, two things are discussed:
- What needs to be delivered?
- How to execute the work
The Daily Scrum (which can also be called the daily stand up meeting), is a five to 15 minute short meeting to synchronize activities, and to align the team(s) with the specifications. In a daily scrum, each person describes what has done already and what is going to be done to contribute towards the goal of the project. Any perceived hindrance which could affect achieving the sprint goal is also discussed in the daily scrum.
Sprint Review & Demo
The sprint is reviewed at the end of every sprint. The scrum team and other stakeholders review the sprint that has been released, so then changes are reviewed, creating value to the project. The objective of the sprint review is to adjust the feedback and move towards progress in a collaborative manner.
Scrum team(s) usually spends two hours on sprint review for two weeks sprint, and four hours for a one month sprint.
The sprint retrospective occurs after the sprint review but before planning begins for the next sprint. These are usually one-hour meetings for a two-week sprint and three hours for one month sprint. Their purpose is to combine what has been learned from the recent sprint(s) and identify significant items which could be developed to improve the project further.
The Scrum Team
Scrum team consists of three roles:
Scrum Master is the keeper of the process, whose responsibilities include:
- Ensuring the process works smoothly
- Eliminating roadblocks which impact productivity
- Organizing and facilitating critical meetings
Creating value is the responsibility of the product owner, whose role may vary from organization to organization. The product owner is the only person who manages, and is responsible for, the project backlog.
- They should convey the product backlog clearly to the team
- Ensure that backlog is visible and transparent for every individual
Keeping the product owner on side is an essential factor in the Scrum. The team has to follow the owner’s wishes and it’s the Scrum Master who makes sure things work as per the product owner requirements.
The scrum team is self-organized and cross-functional, and includes designers, developers, testers, analysts, and all who are relevant to the project. A cross-functional team has the competency to rely less on others and make their own decisions, which in turn saves time and effort.
Scrum team usually consists of 5 to 9 members who make them easy to coordinate and flow of information is smooth which helps in solving the problem without taking more time. Scrum team delivers the project iteratively and incrementally which helps them getting the feedback early, and the process gets further improved.
In Scrum, the product backlog is a single document that outlines every requirement of the project to be implemented. Product backlog can also be thought of as a to-do list which produces deliverables, has business value and is maintained by the product owner on the basis of business value.
These are the specific items that need to be implemented in the sprint and which come from the product backlog.
A sum of all product backlog items that have already been completed is known as the increment. However, it is the up to the product owner as to when an increment has to be released, and it is a team responsibility to make sure that the increment release process is smooth.