What Is Scrum?
Scrum is an agile approach for developing innovative products and services in company. With an agile approach, you begin by creating a product backlog a prioritized list of the features and other capabilities needed to develop a successful product. Guided by the product backlog, you always work on the most important or highest priority items first. When you run out of resources (such as time), any work that didn’t get completed will be of lower priority than the completed work.
Figure 1 Agile development overview
The work itself is performed in short, timeboxed iterations, which usually range from a week to a calendar month in length. During each iteration, a self-organizing, cross-functional team does all of the work such as designing, building, and testing required to produce completed, working features that could be put into production. Typically the amount of work in the product backlog is much greater than can be completed by a team in one short-duration iteration. So, at the start of each iteration, the team plans which high-priority subset of the product backlog to create in the upcoming iteration.
In Figure 1, for example, the team has agreed that it can create features A, B, and C. At the end of the iteration, the team reviews the completed features with the stakeholders to get their feedback. Based on the feedback, the product owner and team can alter both what they plan to work on next and how the team plans to do the work. For example, if the stakeholders see a completed feature and then realize that another feature that they never considered must also be included in the product, the product owner can simply create a new item representing that feature and insert it into the product backlog in the correct order to be worked on in a future iteration.
At the end of each iteration, the team should have a potentially shippable product (or increment of the product), one that can be released if appropriate. If releasing after each iteration isn’t appropriate, a set of features from multiple iterations can be released together. As each iteration ends, the whole process is begun anew with the planning of the next iteration.
The scrum approach focuses on the business needs of projects when developing products and services. It provides the same benefits with line management with only minor modifications to the tools. The scrum approach strips away non-value-added activities and impels delivery by focusing on the immediate details. It is not possible to interpret scrum as anything but a disciplined development model. Its counterpart, the waterfall model, is a sequential development framework in which each major phase appears to be “pouring” its results into each successive phase. Scrum is not only iterative, but has actions that require team learning and allows the rest of the project to be built on such learning. Much team learning will occur during each cycle of the scrum activities for the project in the form of the sprint retrospective and customer planned input. Hence, we control the end game activities—the customer going directly to the developer while still allowing the customer to make adjustments to the product as time passes. If anything, the scrum approach enhances the ability of the customer to add changes to the product.
During product development, both customer and supplier tend to acquire new knowledge about the product as they begin to implement the product specification and derived requirements. Verification and validation results may drive even more change. Both customer and developer can use the scrum approach to reduce the risk caused by midstream changes in the specification of a product. The scrum approach to project management brings an exciting new dimension to
the way we handle a variety of project management situations such as risk, scheduling, and other factors involved in completing a project. Scrum originated in the agile software development world and has been used primarily for software development in small- to medium-sized projects. We believe that it is time for scrum to come into its own as a tool for small- to medium-sized projects for any kind of development and for other kinds of projects; for example, Six Sigma projects. We also use the scrum approach with line management activities with one modification to the scrum tools.
Agile development, like scrum, is an instantiation of the agile manifesto (although precursors to agile development existed earlier; for example “extreme programming” or XP). This manifesto identifies key principles of operation:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Figure 2 Why is Scrum?
According to The Agile Customer’s Toolkit by Tom Poppendieck, agile development is centered around the seven principles of lean thinking:
- Eliminate waste—only add value, not inventory
- Amplify learning—repeat
- Decide as late as possible—defer commitment (note: this action is known in manufacturing as postponement)
- Deliver as quickly as possible
- Empower the team—train, trust, and lead
- Build in integrity—both customer perceived and conceptual
- See the whole—avoid suboptimizing
We prefer to think of the scrum approach that we propose as high-intensity management. We increase tempo, improve responsiveness, increase communications, and reduce risk. Our goal is to focus on a limited number of tasks within a short planning horizon so that we can drive them to completion and remove them from our concern. Today’s product development organizations are often stretched thin in occasionally suboptimal attempts to reduce cost. Often the same human resources are used for multiple projects, which diffuses the focus of the team from a particular set of deliverables. A term that describes this behavior is “frazzing.” This neologism was created by Massachusetts psychiatrist Edward Hallowell in his book Crazy Busy:
Overstretched, Overbooked, and about to Snap! Strategies for Coping in a World Gone ADD.
Frazzing is short for “frantic multitasking.” While sometimes this sort of work is selected by an individual, there are times when it is thrust on him or her by the volume of actions that organizations expect the employee to execute. Scrum helps by setting a specific set of activities within a relatively short span of time; in other words, we can use scrum as a tool to convert from suboptimal multitasking to high-speed mono-tasking and get more done (see Figure 2).
When task load is high, it is difficult to focus on priorities. Even when we know the priorities, we sacrifice the second-level priorities which somebody in the
Figure 3 Distraction
organization expects to be addressed. This approach can drive employees to motivational numbness such that they can’t take action in any direction (see Figure 3). We have implemented scrum across multiple departments and we will discuss our successes as well as some of the trials involved with the deployment of a scrum environment. Along the way, we will show you some tools you can use to make life easier. We will show you how scrum can help your project management by showing how it works in several different environments.
We will also be discussing improvisation, creative problem-solving, and emergent phenomena. One of the hallmarks of the scrum approach is the ability to adapt to reality rather than trying to force reality to adapt to our often top-heavy systems. We suggest that the scrum approach has the makings of a complex adaptive system, which provides the flexibility needed to meet shifting customer demands. We expect the scrum approach to become the preferred approach for project management and line management—an alternative to what we call “dropping the crystal.” Dropping the crystal occurs when upstream managers concoct a set piece product launch process with the inflexibility implied in the phrase. These processes often have hundreds of deliverable items, tens to hundreds of controls, and obligatory marathon reviews.
It is clear from Software Project Secrets, by George Stepanek, why software projects differ from other sorts of projects. There are a number of attributes that make these a risky proposition:
- Software is complex.
- Software is abstract.
- Requirements are incomplete.
- Technology changes rapidly.
- Best practices are not mature (or constantly evolving).
- Technology is a vast domain.
- Technology experience is incomplete (segmented).
- Software development is research.
- Repetitive work is automated.
- Construction is actually the design.
- Change is considered easy (it is only software).
- Change is inevitable.
The point behind the scrum approach is to constantly deliver a workable, sell able product to the customer at the end of each delivery period, which can be as often as each sprint. In some scenarios such as software development, this period may be as short as a day—the team executes a daily build with nightly verification of all changes plus regression testing (testing is done to see if the change has caused any problems).
Daily delivery is the ne plus ultra of aggressive software development schedules. This concept of planning as you go extends beyond technical projects to include business applications also. A book titled The Plan-As-You-Go Business Plan by Tim Berry describes the decide-and-correct approach exactly. This book illustrates the concept of just enough planning to accomplish the desired objective. The details of the objective will change as you progress through the activities, much like the learning scenario we described already.
Pries, Kim H. Scrum Project Management. Boca Raton: Taylor and Francis Group
Rubin, Kenneth S.Essential Scrum: A Practical Guide to The Most Popular Agile Process. US: Pearson Education