“If you aren’t embarrassed by the first version of your product, you shipped too late.”
Reid Hoffman, LinkedIn cofounder and former PayPal COO
Over the past 20 years, I’ve seen successful organizations use the same general process: shipping small batches of software in short iterations, using the resulting feedback loop to drive improvements to their software. These teams continuously learn and change their software to match user needs.
IT organizations that follow this process are delivering a different type of outcome rather than implementing a set of requirements. They’re giving their organization the ability to adapt and change monthly, weekly, even daily. This is the outcome of Agile software development, and it’s at the core of how IT can drive innovation for their organization.
By “small batches,” I mean identifying the problem to solve, formulating a theory of how to solve it, creating a hypothesis that can prove or disprove the theory, doing the smallest amount of coding necessary to test your hypothesis, deploying the new code to production, observing how users interact with your software, and then using those observations to improve your software. The cycle, of course, repeats itself, as illustrated in Figure 1-1.
This entire process should take at most a week—and ...