The Scrum development approach is the most popular agile method in software development. The scrum methodology, developed by Schwaber and Sutherland, was initially presented in 1995 at a conference in Austin, Texas. Scrum utilizes incremental fixed timebound iterations in software construction. The term scrum comes from the sport of rugby, where team members organize and collaborate to achieve the goal of winning the game. The critical factors of scrum are transparency and visibility to everyone, inspection to detect problems in the early stages of development, and the ability to adjust through adaptation.
The scrum development method uses sprints, which are timebound iterations in software construction and delivery. Sprints are typically 2 to 4 weeks long. At the end of the sprint, the team is expected to provide a potentially shippable working model. The development goal and team should not change during a sprint, and the product owner or development team may redefine the scope as needed. The sprint team iterations (time length of the sprint) remain constant but can vary from team to team.
Scrum has three essential elements: roles, artifacts, and events. The principal roles are the scrum master, the product owner, and the scrum development team. The responsibility of the scrum master is to support the scrum team, ensuring the project achieves its goals. In contrast, the product owner is the expert on the business case, controls the backlog, and can make decisions on behalf of the company. The development team is responsible for delivering and implementing a releasable product at the end of each sprint. The development team usually comprises three to nine professionals responsible for delivering a functional product. It has the authority to determine the necessary actions to achieve the objectives of each sprint. The team defines and sets the goals before the beginning of the sprint.
The activities (events) of scrum focus on the sprint, which is the heart of the scrum development approach. Sprints start with a sprint planning meeting that sets the goals and guidelines of the iteration. Each day during the sprint, the development team conducts a stand-up meeting to report the team's accomplishments the day before, the plan for the current day, and any impediments the team has encountered. The benefit of the stand-up meeting is to assess the current progress and mitigate any risks that may arise. The stand-up meeting allows the team to communicate and share project knowledge, report on progress, and resolve issues that arise during the sprint.
At the end of the sprint, the team conducts a review meeting to evaluate the accomplishments of the sprint. The sprint review meeting is a retrospective in which the team evaluates the sprint regarding communication, resources, and processes to identify potential improvement areas. After each sprint, the team has the opportunity to share the positive and negative aspects to improve future sprints. The sprint retrospective is a “lessons learned” meeting to provide the team with what worked well and what did not.
The sprint backlog and the product backlog are artifacts that list the items that provide value and represent the work requested. The sprint backlog is a list of items to be accomplished in the sprint that define the requested enhancements, requirements, and corrections the team commits to working in the specific iteration. The product backlog is a priority-ordered list of everything that is needed or requested to be accomplished in future sprints. The sprint backlog and the product backlog comprise all the requests and requirements the development team delivers to the customer.
The process of scrum starts by translating the customer’s requirements into the product backlog. The team holds the sprint planning meeting with the help of the product owner to determine the planned accomplishments of the sprint. During the sprint meeting, the development team estimates the work to be accomplished. The team transfers items designed for the sprint from the product backlog to the sprint backlog, and the team completes the items in the sprint backlog for the iteration delivery. The sprint and product backlogs list things to be accomplished as requested by the product owner.