In this post I want to show where Scrum fits in the greater scheme of things now that we are well into the 21st Century. The context here is software development, where Scrum got its start. Scrum is used for many other types of work now but we are going to stick with software in this post. We will see that Scrum is just one tool in the set for achieving business agility.
Value Stream Map
In the Lean Manufacturing world, one of the inspirations for Scrum, there is a very handy tool called a Value Stream Map (VSM). A VSM illustrates a mental model of how value flows from customer request to customer delivery. For a fast food restaurant we might draw a VSM like this:
The customer drives up to the window and orders a burger. The order-taker relays the order to the kitchen. The kitchen cooks and assembles it. Someone puts it into a bag with condiments. The order delivery person accepts payment and hands the burger to the customer through the pick-up window. Your favorite burger place may have more steps, but you can see how it works in this basic case.
We use the VSM to understand a process flow. It gives us a visual way to evaluate process complexity, look for certain types of wastes, identify bottlenecks and find opportunities for improvement. We are going to use it here simply to illustrate the currently popular Agile frameworks and how they are being used.
Mapping Software Product Development
Here is a simple Value Stream Map for software development. It starts with Product Discovery, activities to determine what we want to ship next based on customer input, new ideas, technology opportunities, etc. Once we have a vision of what we are going to build, we Define the Product in some form like a requirements document in the old days or a product backlog in the new days. Next comes Product Development when we build the product, followed by Product Delivery to the customers. These days pretty much all software is then Operated on servers of some sort, though it might also be operated in a car or some other device as embedded software. Finally there is a need for Support because the user always comes up with questions and novel ways to use the product that were not anticipated.
It is important to not view the steps in this VSM as phases. They may have been at one time, but a key attribute of Agile is continuity. There is a continuous flow along this stream with occasional eddies to match cadences of release cycles, iteration cycles, deployment frequencies.
Scrum and Extreme Programming
Scrum and Extreme Programming (XP) were the first frameworks to get this whole Agile business started. You can see in the next figure that these frameworks are in the Product Definition – Product Development – Product Delivery part of the VSM. They replaced the of Waterfall method that sat at the same place for a few decades. From this diagram we can see how Scrum is not the answer to all of our hopes and dreams because it only covers these parts of the VSM. XP is also in this part and its technical practices are a vital complement to Scrum when building software. Few companies that I have encountered use XP as originally defined but the most successful Scrum teams use the XP development and testing practices.
The rest of the VSM has become more agile in recent years, spreading out in both directions. First came a need to improve the ability for Product Operations to absorb increasingly frequent deliveries from Development. Traditional Operations teams were not all that welcoming of frequent changes. Their job is to keep things running smoothly. So no matter how important a new release of software may be to customers and the business, it meant more work, more risk and more diligence for Ops. With the advent of virtualization technology, automation of deployments, maturity of automated testing practices and The Cloud came new thinking on how to be more agile about operating our product. Along with the ability to accept frequent changes came increased confidence in operability through automated testing in production, active monitoring with automated rollback and fairly easy server capacity expansion capabilities. These tools, practices and philosophy are collectively known as DevOps.
At the Support end of the VSM, we see more frequent use of Kanban, a technique also derived from Lean Manufacturing. In the original form, Kanban describes a signaling technique for ordering just enough parts at just the right time to keep the production flow steady. The framework we see used in software development was developed a few years ago and original proposed as an alternative to Scrum in the Product Development part of the VSM. It has found some use there but is now applied less often for plannable work and more often for work that is reactive – responding to unplanned but important requests such as we see at the support end of the stream.
At the left end of the VSM it became apparent some years ago that Agile Teams could produce new functionality faster than traditional marketing research techniques could discover what to build. Some new methods have developed to speed up the discovery process. The one shown in the next diagram is Lean Startup, a light, rapid iterative framework originally designed for startup environments where ideas and opportunities were often missed or mis-implemented in the race to get to market. Lean Startup is a more scientific approach to finding out quickly what your customers need or potential buyers would be willing to buy. Many enterprises now use these lightweight techniques to create clear visions for upcoming products and product releases. There are other tools and frameworks that operate in the Product Discovery part of the VSM that I have encountered, Innovation Games and Pragmatic Marketing.
The ”bleeding edge” of Agile frameworks, the one that many companies are trying to figure out, is Lean UX. While Scrum and XP were proving themselves as powerful development techniques, there was parallel evolution of a body of knowledge – complete with professional specialties – in the world of User Interface Design, User Experience Design and Usability – collectively referred to as UX. In the old Waterfall world, these activities were part of the specification and design phases. As development became more iterative, many teams had trouble figuring out how to fit this work into their sprints. Is UX design a separate sprint? Separate team? Separate phase? The industry has been experimenting with different models and seems to be settling on a common pattern of UX preceding development by a sprint with designers either in their own team or on the development team.
These frameworks comprise a full-spectrum approach to software product development that enables agility, profitability and competitive advantage. They all share a set of core values derived from Control Theory, Queuing Theory, Human Behavioral Psychology and Systems Theory. They are road-tested, well defined and well understood by successful practitioners. Some are easier for companies to absorb and implement, some harder. And Scrum, a common starting point for agility, is just one piece of the picture.
- Cohn Succeeding with Agile: Software Development Using Scrum
- Rubin Essential Scrum
- Humble Continuous Delivery
- Anderson Kanban
- Ries Lean Startup
- Gothelf and Seiden Lean UX
Post 1 of this 2 post series is here: Is Scrum the Best Choice for Any Kind of Work?