Home > Articles > Software Development & Management > Agile

Get Ready for Scrum!

  • Print
  • + Share This
In this article, excerpted from the author’s book, Agile Software Development with Scrum (Prentice Hall, 2001, ISBN: 0130676349), Ken Schwaber describes his own experience with a complete implementation of Scrum,including how he worked closely with a team to build a product while using the Scrum process.
This chapter is from the book

Scrum is different. Work feels different. Management feels different. Under Scrum, work becomes straightforward, relevant, and productive.

Scrum Is Different

I've spent a good part of my professional life building technology products and systems. I've had successes, and I've certainly had failures. I think I'm not alone when I say that most systems development projects are difficult, and I suspect harder than they need to be. I remember a project when I worked with a plant manager at a pharmaceutical company. Together, he and I implemented a complicated material requirements planning system. As we were about to successfully complete the project, I congratulated him and told him that he could make a lot of money helping other companies implement similar systems. He looked at me aghast, and said, "I'll never go through something this gruesome again. I can't wait to go back to just managing the business!" His observation was one of many that led me to think that something was wrong, that there must be a more straightforward way to build and implement systems.

Every project is different. The technology, the requirements, and the people involved are different every time. I've studied different approaches to project management in an effort to make my life easier and the teams more productive despite their differences. I've tried new development environments, modeling tools, technologies, methodologies, people approaches, everything and anything to improve the process of building a system. I've found some things that improved my life, like always using the best engineers, forming cross-functional teams, and facilitating long design sessions around white boards. These tactics all help, but without Scrum these projects were all eventually overwhelmed by the complexity inherent in systems projects.

I used to place my hopes on commercially available methodologies. They contain templates of work that has built systems previously. They therefore contain the tried and true processes that other professionals have successfully used. Companies that build software for a living usually sell methodologies. I always figured that for this very reason, they must all be really good. Methodologies are like cookbooks; follow their recipes and a successful system will result. Some methodologies are modest in scope and depth, while others contain literally thousands of pieces of work, or tasks, tied together into templates. Each template is appropriate for a specific type of development project. I worked with these methodologies for years, trying to improve them.

Over the years, methodologies added definition to my projects. I knew what to do when and could assign people to the work. I felt like I was more in control and each project had a lot to show for it. Unfortunately, my success rate did not go up. One company that I worked at cancelled a major project after two years. I toured the project space not long after its cancellation and found a ghost town. There were hundreds of cubicles full of workstations and books of standards, training materials, requirements manuals, and design documents. Unfortunately, this project hadn't been successful. The project never even reached the software construction phase of the project, so no functionality was even delivered.

I ran a software company in the early 1990s that developed and licensed a process management product called MATE. Our largest customers were Coopers & Lybrand and IBM, and these companies wanted us to employ their methodologies to build MATE. I gave it a shot and was thoroughly displeased with the results. At the time, my company's requirements were always changing and we were working with fairly new technologies. It looked like the methodologies should help, but instead they just got in our way, decreased our flexibility, and generally slowed us down.

I wanted to understand the reason that my customers' methodologies didn't work for my company, so I brought several systems development methodologies to process theory experts at the DuPont Experimental Station in 1995. These experts, led by Babatunde "Tunde" Ogannaike, were the most highly respected theorists in industrial process control. They knew process control inside and out. Some of them even taught the subject at universities. They had all been brought in by DuPont to automate the entire product flow, from forecasts and orders to product delivery.

They inspected the systems development processes that I brought them. I have rarely provided a group with so much laughter. They were amazed and appalled that my industry, systems development, was trying to do its work using a completely inappropriate process control model. They said systems development had so much complexity and unpredictability that it had to be managed by a process control model they referred to as "empirical." They said that this was nothing new, and that all complex processes that weren't completely understood required the empirical model. They helped me go through a book that is the Bible of industrial process control theory—Process Dynamics, Modeling and Control, by Babatunde A. Ogunnaike and W. Harmon Ray (Oxford University Press, 1994)—to understand why I was off-track.

In a nutshell, there are two major approaches to controlling all processes. The "defined" process control model requires that every piece of work be completely understood. Given a well-defined set of inputs, the same outputs are generated every time. A defined process can be started and allowed to run until completion, with the same results every time. Tunde said that the methodologies that I showed him attempted to use the defined model, but that none of the processes or tasks was defined in enough detail to provide repeatability and predictability. Tunde said that my business was an intellectually intensive business that required too much thinking and creativity to be a good candidate for the defined approach. He theorized that my industry's application of the defined methodologies must have resulted in a lot of surprises, loss of control, and incomplete or just wrong products. He was particularly amused that the tasks were linked together with dependencies, as though they could predictably start and finish just like a well defined industrial process.

Tunde told me that the empirical model of process control, on the other hand, expects the unexpected. Because the processes are imperfectly defined, generate unpredictable and unrepeatable outputs, and every project is different control is exercised through frequent inspection and adaptation. The experts at DuPont recommended that I study this model and consider its application to the process of building systems.

During my visit to DuPont, I experienced a true epiphany. Suddenly, something in me clicked and I realized why everyone in my industry had such problems building systems. I realized why the industry was in such trouble and had such a poor reputation. We were wasting our time trying to control our work by thinking we had an assembly line when the only proper control was frequent and first-hand inspection, followed by immediate adjustments.

Based on this insight, I have since formulated with others the Scrum process for developing complex products, particularly software systems. Scrum is based on the empirical process control model.

Scrum is a way of doing things that is completely different from what most people in the software and product development industry are used to. All of the assumptions, mechanisms, and ways of looking at things are so different that a new way of thinking evolves as you begin to use Scrum. Scrum feels and looks different because of it rests upon an empirical basis. Less time is spent trying to plan and define tasks, and less time is spent on management reports. More time is spent with the project team. Most people really understand Scrum only when they begin to use it. A light bulb goes off when they experience its simplicity and productivity. They realize how inappropriate more traditional models of development process really are for this industry.

The following case study covers a complete implementation of Scrum. In it, I describe working closely with a team to build a product while using the Scrum process. In this example, I made decisions and encouraged the team to act differently than they were used to acting. I taught them by example to approach their work in an entirely different way. By the time we had completed the first Sprint, the team was already behaving differently. They had seen Scrum work, and now they were Scrum users. They had come to embody the values integral to Scrum, such as empiricism, self-organization, and action.

As you read the case study, think about what is missing from it. There is no formal project planning. There is no Pert chart. There are no roles and individual assignments. Notice how the team is able to get on with its work and build valuable product increments anyway. Notice the team transform from a dispirited group of individuals waiting for instructions into a team that takes the initiative and acts. The team operates within the permission it has and does the best it can. By the end of the first Sprint, the team had adopted a completely new set of values and begun to act unlike any other team at the organization.

  • + Share This
  • 🔖 Save To Your Account