Scrum is a framework for organizing and managing work. Scrum is not a standardized process where you methodically follow a series of sequential steps that are guaranteed to produce, on time and on budget, a high-quality product that delights customers. Instead, Scrum is based on values, principles, and practices that provide the foundation to which your organization will add its unique implementation of relevant engineering practices and your specific approaches for realizing the Scrum practices.
The Scrum framework is like the foundation and walls of a building. You can’t ignore or fundamentally change a value, principle, or practice without risking collapse. What you can do, however, is customize inside the structure of Scrum, adding fixtures and features until you have a process that works for you.
To understand how to make a version of Scrum that is uniquely yours, you must first have a firm grasp of the Scrum framework, its principles, and the planning that occurs at every level.
Scrum development teams consist of at least three roles: ScrumMaster, product owner, and development team. The product owner is responsible for what will be developed and in what order. The ScrumMaster is responsible for guiding the team in creating and in following its process. The development team is responsible for determining how to build what the product owner has requested.
The product owner has a vision for what to create, held in a prioritized list called the product backlog. The development team chooses a certain number of items from this backlog that it will complete during a timeboxed iteration called a sprint. That set of items—the sprint backlog—is chosen according to the sprint goal during an activity called sprint planning. The sprint backlog is a set of detailed tasks that describes how the team plans to design, build, integrate, and test the selected set of features, to the point where each feature is potentially shippable at the end of the sprint.
During the sprint, the development team checks in with each other during a daily scrum to determine how they are trending towards their sprint goal and how they can help each other. At the end of the sprint, the development team, product owner and stakeholders meet during a sprint review to inspect and adapt the features the team has completed during the sprint. The final activity of each sprint is a sprint retrospective, where the Scrum team meets to inspect and adapt its process, to discuss what is and is not working with Scrum and associated technical practices, and to develop a plan for improvement. After the retrospective, the whole cycle begins again.
All of this process is built on core agile principles: the fundamental beliefs that drive how we develop with Scrum. The principles are as follows:
- Variability and Uncertainty
Scrum helps us create innovative solutions through iterative and incremental development, the power of inspection, adaptation, and transparency, and a holistic approach to addressing uncertainty.
- Prediction and Adaptation
Because we accept that we can’t get it right up front, in Scrum we balance predictive and adaptive work by keeping our options open until the last responsible moment, favoring an exploratory approach, and making changes as early as possible.
- Validated Learning
In Scrum, we validate important assumptions fast, leverage multiple concurrent learning loops, and organize our workflow for fast feedback.
- Work in Process (WIP)
With Scrum, we work in smaller batches, optimize our flow of work and focus on idle work rather than idle workers, while always considering the cost of delaying work.
We measure progress in Scrum by building working assets that deliver value and can be used to validate important assumptions, not by how we are proceeding according to a predefined plan.
In Scrum, our core goal is to be nimble, adaptable, and speedy. By going fast, we deliver fast, get feedback fast, and get value into the hands of our customers sooner. We do not, however, mistake going fast for being hurried.
This is not to say that Scrum is better than plan-driven, sequential (waterfall) development. It is, however, often the most appropriate tool for solving complex problems.
Many believe that Scrum takes off with no planning. This isn’t true. When developing products with Scrum, planning happens at multiple levels and times.
Although Scrum formally defines only daily and sprint planning, all organizations will benefit from planning at the release, product, and portfolio levels as well.
Portfolio planning helps determine which products to work on, in what order, and for how long. Although portfolio planning is conceptually at a higher level than product planning (because it deals with a collection of products), one of its primary inputs is a newly envisioned product idea from product planning.
The goals of product planning, or envisioning, are to capture the essence of a potential product and to create a rough plan for the creation of that product. Envisioning begins with a product vision and ends with an initial high-level version of the product backlog. Many companies also find it helpful to build a product roadmap, which communicates the incremental nature of how the product will be built and delivered over time along with the important factors that define each individual release.
Release planning is about making scope, date, and budget trade-offs for incremental deliveries. On most development efforts, it is sensible to do initial release planning after envisioning and before starting the first sprint associated with the release
Don’t be fooled by the fallacy that agile means no planning. Successful Scrum development projects require multiple interrelated planning activities.
Once you understand the underlying foundation of Scrum, you should discover your own path forward. Don’t wait to “get Scrum perfect” before you start. You can’t! Instead, learn, inspect and adapt your way forward based on your organizations unique goals and culture and the ever-changing, complex environment in which you operate.
Learn more about Kenny’s new book: “Essential Scrum: A Practical Guide to the Most Popular Agile Process“.