In a previous blog article, I mentioned how I was getting back to my programming roots and reading The Principles of Product Development FLOW: Second Generation Lean Product Development by Donald G. Reinertsen. I am in the process of reviewing each chapter. I have already posted my reviews of:
Here is my review of Chapter 4, "Exploiting Variability."
In lean manufacturing, variability is often the enemy because manufacturers are looking for a repeatable process. Manufacturers treat variability as waste. This same view is often applied to software development even though, unlike widgets, each piece of software being coded is unique. So the software development management trick is to welcome just the right amount of variability but carefully assess its cost to the organization, potential benefit to the customer, and the probability of success. These factors can be used to calculate an expected monetary value of possible alternatives. Factoring in the probability of success, the alternative with the highest potential payoff with only incremental cost is the action to take. The asymmetry between reward and risk is what provides opportunities for real economic value. It's why people buy lottery tickets. The probability of success is low, but the payoff is so high (e.g., $millions) as compared to the cost ($1). The costs associated with software development are significant, so more care is exercised in the decision-making process.
One of the bravest decisions I have ever witnessed was when Software Development Director, Ajay Kela, decided to replace the graphics system in AutoCAD. The existing system had been developed over a number of years, had a long legacy of customer expectations for exactly how it was to operate, and an entire industry (development of ADI drivers) had sprung up around it. The problem was that its architecture was antiquated given the more graphics-rich models being designed by AutoCAD customers and advances in graphics technology. The development of the replacement system completed near the latter part of the project (the risk), but its performance was so much faster than the existing code (the reward), that Ajay pulled the trigger and opted to include the new system in the AutoCAD release. Part of his decision was based on the passion and thoroughness of the new system's development (high probability of success) by relatively new to Autodesk coders, Jeff Kowalski and Brian Mathews. That was many years ago. Jeff is now Autodesk's Chief Technology Officer and Brian is Vice President of Reality Computing.
Managing variability is alive in the lab.