What is Scrum?
Have you ever watched a game of Rugby? There's a type of play that looks a lot like a huddle in American football. That play is called a scrum and it consists of a group of players fighting for the ball by forming a tightly connected unit and pushing with all their might against members of the other team to advance down the field and hopefully secure possession of the ball.
In software development, Scrum is a project management framework or methodology that is used to efficiently produce quality work while adapting quickly to change. The scrum framework is not a prescriptive set of processes and techniques - it simply provides an over-arching conceptual model on top of which you can add the working methods that function best for your unique circumstances. The Scrum framework defines three key aspects of the software development team:
- Roles and Responsibilities
Let's begin our look at the Scrum framework with an explanation of the underlying theory behind the scrum model.
Scrum Theory & The Three Pillars of Scrum
The scrum framework is founded on the core concept of Empiricism, which asserts that knowledge comes from experience and supports an evidence-based decision-making process that derives wisdom past successes and failures. The iterative, incremental approach that characterizes scrum projects helps make projects more predictable and reduce the risk of project failure. Empirical process control relies on three qualities that form the three pillars of the scrum framework.
Members of the scrum team must collaborate effectively to ensure that project stakeholders share the same vision for the project and maintain visibility of the project's current issues and status. The key to transparency is establishing a common understanding.
The iterative and incremental approach to scrum projects encourages members of the development team to perform frequent inspections of their work and the work of other team members, checking for errors and working to detect undesirable deviations from project requirements.
The concept of adaptation is similar to that of change management or corrective actions in the context of quality control processes. When a product is created that does not conform to the specified requirements, the process or materials must be adjusted to minimize further deviation and correct the deviation before it negatively impacts the end-user. Inspection and adaptation are formally conducted through the four scrum events.
Three Roles in the Scrum Team
Scrum teams are self-organizing and cross-functional. They consist of experts with broad domain coverage working together to achieve a common goal in the most efficient way possible. In the scrum framework, there are three defined roles for the scrum team: product owner, development team and scrum master.
The Product Owner
The product owner is the person in charge of managing the product backlog and maximizing the output value of the software development team. The product owner communicates with the development team about the product backlog, helping them organize and prioritize their working time to optimize value creation.
The Development Team
Development teams are teams of people that develop software products. They may participate in systems design and architecture, code the software for the application, create and conduct various types of testing and perform other security, development, and operations tasks throughout the software life cycle. In the Scrum paradigm, development teams should be self-organizing and empowered to choose their own working methods and techniques.
The Scrum Master
The scrum master has been described as the servant-leader for teams operating in the scrum paradigm. The objective of someone in this role is to help ensure that other members are effectively organizing their project contributions in accordance with the scrum framework. A scrum master supports the organization, along with other team members and their activities by promoting transparency between working teams, communication, and adherence to the Scrum framework. The scrum master is an evangelist for scrum theory, rules, practices, and values.
Four Scrum Events
The scrum framework for application delivery is based around sprints. A sprint is a fixed duration of time during which the scrum team attempts to deliver a specified feature or set of work. There are four major events that take place in the scrum framework and all of them are organized around the sprint.
Planning Sprints in the Scrum Framework
Each sprint is a time-boxed event - it lasts only a specific duration and then it is finished. Sprint planning, therefore, deals with two important questions:
- What can be delivered during the upcoming sprint?
- How will the scrum team work together to deliver this work in the upcoming sprint?
Daily Scrum Meetings
The daily scrum meeting is meant to occur in a 15-minute time-box that cannot be exceeded. This meeting may be called a "scrum" but the term "stand-up" is also popular. A stand-up meeting is intentionally kept short by having attendees stand up and talk instead of sit around a table in a meeting room. Daily scrum meetings are meant to deal with immediate problems, address objectives and challenges for the day and to ensure that the team is on track to meet its sprint target.
The sprint review is one of the most formalized processes of the Scrum framework. The purpose of the sprint review is to assess and update scrum artifacts and collaborate to determine the next steps.
The purpose of a sprint retrospective is to analyze the performance of the scrum team over the past sprint and identify any opportunities for improvement that could lead to better results in the future.
Three Scrum Artifacts
Scrum artifacts exist to help ensure project transparency and drive information flow throughout the scrum team. There are three important scrum artifacts of which practitioners should be aware.
The product backlog is a comprehensive to-do list for the project. It contains a detailed list of all requirements and all changes that must be made to the product in future releases.
The sprint backlog contains all of the product backlog items that were selected to be completed in a sprint. These items are the highest priority items for that sprint, as identified by the product owner.
If the product backlog is a to-do list for the project, the increment is a list of all items on that list that have been checked off. Items in the Increment must be marked as "done" according to the scrum team's shared definition of what constitutes a finished release.
Sumo Logic: The Right Tool for Scrum Teams
Software development teams can use the scrum framework to deliver high-quality projects faster than before, but only when equipped with the right software tools. Many developers today are choosing to build products in the cloud, taking advantage of affordable IT infrastructure and platform-as-a-service (PaaS) products offered by cloud service providers.
For developers working in the cloud, Sumo Logic's cloud-native analytics platform provides real-time insight into the operational and security performance of your public or hybrid cloud environment. With Sumo Logic, developers can spend less time managing administrative and maintenance tasks and more time engaging with scrum team members to make each sprint a success.