Even if you are not a rugby fan, chances are you have heard the term Scrum. That’s where rugby teammates huddle together - heads down, arms locked, working as a cohesive unit – to gain possession of the ball from the opposing team. The collaboration, flexibility and communication required in rugby are embodied in the Scrum framework, which is a core component of Agile software development.
Principles of Scrum
Agile software development, an iterative approach to developing working software quickly, relies on a mindset based on an overarching goal of building software more simply than in the past. Scrum is one of the most popular frameworks within Agile because it can be tailored to the needs of the project at hand. Favorable outcomes are achieved by allowing people to address complex adaptive problems, while productively and creatively delivering products of the highest possible value. It is a simple framework for effective team collaboration on complex projects.
There are several principles that embody the Scrum framework. Empirical process control allows for transparency, inspection, and adaptation for decision-making instead of up-front planning. Self-organization is built on the concept that employees have more to offer than just their technical expertise. Collaboration brings stakeholders and developers together to deliver the greatest value. Value-based prioritization assures that what is most valuable to the customer gets completed first to increase return on investment. Time-boxing recognizes that time is the most crucial factor in managing and executing Scrum projects. Iterative development allows for course correction as all people get a better understanding of what needs to be delivered as part of the project. The six principles are considered “non-negotiable” and serve as the foundation for all Scrum projects.
Scrum helps teams deliver customer value early and often in a highly predictable manner usually within 2, 3, or 4-week sprints, which are timeboxed iterations of a continuous development cycle. Within a sprint, a planned amount of work must be completed by the team and made ready for review. The following are key roles in Scrum projects.
Product owner: This can only be one person, not a committee, as multiple product owners tend to confuse team priorities. The product owner is responsible for maximizing the business value delivered by the team, prioritizes the backlog, accepts or rejects work, and helps define what “done” means during the project. The product owner should be knowledgeable, empowered, and engaged.
Scrum master: This is the individual responsible for facilitating the Scrum process and ensuring the team is delivering value. The Scrum master builds self-organizing teams, removes impediments, keeps the process healthy, and empowers the team. The Scrum master is often described as a servant leader - not commanding or controlling.
Team: These are the people responsible for turning the product backlog items into increments of value during each Sprint. A team generally includes a Business Analyst, Developers and a Tester. Teams are cross-functional and can consist of 7 to 9 members. Generalizing specialists help in different areas, creating environments where everyone does whatever they can to get work done. Teams come together as one cross functional team and work together on the backlog. Teams are completely focused on quality.
Scrum in Action
Sprint Planning: A sprint is where Scrum teams work to complete a set amount of work in a fixed period. During sprint planning the Scrum Master, Product Owner, and the Team finalize what is going to take place in the current sprint. User stories are taken from the backlog, a prioritized list of tasks needed to accomplish the planned work, to build the sprint. This meeting takes place no later than the first day of each sprint and takes approximately two hours per each week of the sprint. For example, sprint planning for a two-week sprint could be expected to take four hours to complete.
Product Backlog Refinement: This is the process where the Scrum Master, Product Owner, Stakeholder and the Team add details and estimates to the backlog. Product backlog refinement takes place as often as necessary during the sprint but should take no more than 10 percent of the sprint’s duration.
Daily Scrum: Also called a standup, the Daily Scrum is a quick meeting of approximately 15 minutes that anyone can attend, but where only the Scrum team can talk. These are held at the same time and place each day while the sprint is in progress to create a work plan for the next 24 hours.
Sprint Review (Demo): This meeting occurs at the end of the sprint, where the Scrum Master, Product Owner, Stakeholder and the Team review work that has been completed to determine whether the product meets the definition of "done”. Sprint reviews typically take one to two hours, depending on the size of the sprint.
Sprint Retrospective: This meeting takes place after the sprint review and before the next sprint planning meeting. It features the Scrum Master, Product Owner, and the Team discussing (without finger-pointing) what went well and what could go better in the future. Sprint retrospectives take approximately 45 minutes for each week of the sprint.
Scrum Artifacts: These communication tools help those involved with the project develop a common understanding of the product being developed.
- The Product Backlog contains the prioritized to-do list that is created and maintained by Product Owner.
- User Stories describe a software feature, written from a user-perspective, that follows a common format.
- As a ____
- I need _____
- So that ________
- The Sprint Backlog lists the highest priority user stories that go into a sprint.
- Release Burndown Charts visually show the progress of the sprint.
The Scrum framework has become more prominent in software development than traditional planning-oriented ‘waterfall’ frameworks. Scrum makes rapid application development possible through consistent reliance on the six core principles: empirical process control, self-organization, collaboration, value-based prioritization, time-boxing, and iterative development. The Scrum framework is even being adapted by other industries thanks to its successful implementation in software development.