Can it be true that as many as 95% of Lean transformations fail? If so, how? Challenges from the complexities of modern software development offer insights. This post is part 2 of a 3-part exploration, inspired by the article The Coming Software Apocalypse.
Lesson #6 Difficulty in Testing Our Systems
“When we had electromechanical systems, we used to be able to test them exhaustively,” says aeronautics and astronautics professor Nancy Leveson at MIT. We could think through all possible configurations and interlocks controlling train movements, put them on a few sheets of paper, and run physical trains through these configurations. We could build, test and know exactly what we were dealing with. Lean is a system of human behaviors, which are not as reliable as electromechanical systems. We can’t exhaustively test how people will react in each new situation they encounter. When we build a lean management system, there will be bugs. We need to run experiments, tolerate failure, learn and adapt. If we expect people to always act rationally, we are in for a Lean failure. [Edit: If you noticed that this lessons seems similar to #5, skip to comments section below.]
Lesson #7 Requirement Errors, Not Coding Errors
“The serious problems that have happened with software have to do with requirements, not coding errors.” It is the rare and fortunate Lean transformation that begins due to clear requirements and pressure to change from customers. When a good customer can tell a business what they need in order to secure future business and grow profitably together, the transformation gains direction and energy. A Lean efforts that focuses on cost at the expense of customer and supplier relationships, or increases capacity without a growth plan, is courting a Lean failure.
Lesson #8 Faithful Followers, Bad Instructions
“The software did exactly what it was told to do. The reason it failed is that it was told to do the wrong thing.” Lean can help us do things efficiently, even things that we should not be doing at all. Like software, Lean fails due to bad design even when the execution is good.
Lesson #9 Ask People What They Need
According to the article, Microsoft’s integrated development solution Visual Studio, used by about a third of all professional programmers, has over 55 million lines of code. More than 98 percent of it is completely irrelevant to the user, missing fundamental problems that people were facing. Lean fails when the people who are leading the effort don’t go to the people who will live and work within the system each day, and ask them what they need in order to do their job successfully.
Lesson #10 Communication Problems
In software development, communication may be the weakest link. The main problem is not know-how, it is know-what. The people know how to code. The problem is what to code. Requirements are are vague and ambiguous, allowing each person to interpret it slightly different way. The article argues that there is a stronger need to study how programmers perceive the tools for software development, rather than build new tools. That’s true of Lean also. It’s often peoples’s perception, misunderstanding or misplaced confidence in Lean methods that cause failures, not the lack of a powerful enough problem solving methods, kata cards or templates.
To be continued.