Today, in the world of manufacturing and services, lean principles are applied to optimize nearly all large organizations. Until recently, information technology was a major exception.
Why isn't software "lean"? Well, optimizing software is much more difficult than optimizing physical widgets. How can we lower the variance in a software system when we can't even agree on what the product is — the software code, the service provided or the user experience?
In lean production, statistical process control and a flexible organizational culture allow products to be designed and built while always reducing the variance (i.e., errors) of the manufacturing process. Aside from reducing the need for a separate quality-control department, the quantitative attention to detail allows for more flexible and customizable products.
The Japanese auto manufacturers of the post-World War II era grew their market share by committing to lean production. By the 1980s, American manufacturers did too. Today of course, nearly all mass-market auto manufacturers are lean — they could not compete without it.
The rudimentary state of software engineering is not surprising. Corporate information technology is barely 50 years old, and as a result, past efforts to apply lean to software development were substantially unsuccessful.
But the past five years have seen the rise of DevOps, information technology's answer to lean production. DevOps is a term unknown to those outside of IT organizations, yet it is having a revolutionary effect on how we work and interface with technology.
DevOps is short for development/operations, taking into account that in today's IT world the development of software and its operation (often in the cloud) are symbiotic and must each plan for the other's efficiency and success.
It operates off three core principles, according to Gene Kim, one of the authors of the DevOps movement: