If you look up DevOps on Wikipedia, you’ll see several references to Lean. Lean, originally Lean manufacturing, is a management and process improvement methodology first developed by Toyota starting in the 1930s.
Can a manufacturing methodology really apply to software development?
IT, as a group, is constantly trying to fight against the manufacturing metaphor: Software development isn’t an assembly line, estimating effort is hard, we need time for creative concentration. All of these differences with traditional manufacturing seem like legitimate reasons to question the validity of borrowing a manufacturing methodology for this clearly non-manufacturing activity.
So what gives? Is Lean actually applicable to Software?
I just finished reading Onward by Starbucks CEO Howard Shultz. In chapter 30, he talks about Starbucks' introduction to Lean, and the impact it made on their business. He talks about his encounter with a store manager, Amy:
Amy explained that for years her store had followed protocols, arranging all of their products, milk, syrups, extra cups in the exact places the company’s manuals and photographs had instructed. Her store had also ground all of the whole beans for the day’s brewed coffee every morning because the prevailing company wisdom was that it was most efficient to grind coffee in batches. “I knew there was a lot of waste”, Amy admitted to me. But she did not go after it until her district manager gave her permission to do so.
For a second Amy stopped talking. “I just wanted to apologize,” she said to me. I had no idea what for. She explained. “When I started working with Lean, one of the first things I did was step back and watch my team work. Usually I’m with them behind the counter helping serve customers. But when I took the time to observe from the floor, I saw things. So many things that were not right. Maybe someone did not make a beverage correctly, or forgot to hand a customer a straw or shake an iced tea,” she said. “I’m sorry that as hard as we’ve been working, I missed opportunities around customer service.”
Here’s the thing…
Lean isn’t really a manufacturing philosophy. It’s a management philosophy, that just happened to be made popular by a manufacturing company. The specific implementation that helped Toyota may not help your team, but the principles of the philosophy are broadly applicable.
Lean grew out of an Eastern mindset, where group collaboration is highly valued. Contrast this to Scientific Management, or Taylorism, which is a Western philosopy for managing individuals in a top-down manner.
In this light, the Lean management philosophy makes sense in any context where groups of people are working together, including building software or serving coffee—not just to building auotmobiles.