Introduction to Speed
Over the last decade, one of the main development sin software products is the broad adoption of continuous deployment. This development started in the cloud-based Software as a Service (SaaS) companies. This is due to the fact that the cost of deploying new versions of software in a SaaS environment is very low, perhaps even negligible, compared to traditional installed software. That allows for a deployment model where software is updated very frequently, in some cases many times per day.
The ability to deploy frequently brings enormous benefits to companies and as a consequence, the software-intensive systems industry is now undergoing the transformation towards continuous deployment of software even in areas where the reliability requirements are much higher. Even without the data constant adjustment of the development backlog to customer needs, allows for continuous testing of small slices of new functionality in systems in the field and provides a productive outlet for teams as the functionality that they developed is not sitting on a shelf for months at a time but in the hand of customers hours or days after it got written.
Speed Dimension in Short
Based on studying dozens of companies, we have identified and defined the levels that companies evolve through in the speed dimension. As shown in the figure below, starting from traditional development (level 1), companies adopt agile development practices first (level 2).
Then there is a need to build continuous integration capabilities (level 3). Once the company reaches a point where it always has a production quality version of the software, it moves to continuous deployment (level 4) where software gets deployed at least every agile sprint and potentially much more often.
Finally, the company uses this capability to shift its development process from requirement driven to experimentation driven (level 5).