Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place.
W. Edwards Deming
An effective innovation capability relies on being able to frequently test ideas with real users. Crucially, the rate at which we can learn, update our product or prototype based on feedback, and test again, is a powerful competitive advantage. This is the value proposition of the lean engineering practices we describe in this chapter. Andy Hertzfeld, one of the engineers who worked on the original Apple Macintosh, notes that “instead of arguing about new software ideas, we actually tried them out by writing quick prototypes, keeping the ideas that worked best, and discarding the others. We always had something running that represented our best thinking at the time.”1
In many organizations, getting software deployed in an integrated production-like environment is a process that still takes days or even weeks. But organizations that treat software as a competitive advantage rather than a necessary evil invest substantially in reducing this lead time. For a sense of what’s possible at scale, in May of 2011, Amazon achieved a mean time between deployments to production systems of 11.6 seconds, with up to 1,079 such deployments in a single hour, aggregated across the thousands of services that comprise Amazon’s platform. Some of these deployments affected upwards of 10,000 hosts.2 Amazon, of ...