Did you know that some software development operations deploy code up to 200 times more frequently than others? Or that they can make code changes in less than an hour, recover from downtime in minutes and experience a 60-times lower code failure rate than their peers?
The difference is DevOps, a new approach to agile development that emphasizes modularity, frequent releases and a constant feedback cycle. DevOps is a sharp contrast with the conventional waterfall approach to software development. Traditionally, software development has involved extensive upfront design and specification, a process that could take weeks. Developers then went away – often for months – and built a prototype application. After a lengthy review process, changes were specified and developers disappeared again to implement them. As a result, it wasn’t unusual for enterprise applications to take a year or more to deliver, during which time user needs often changed, requiring still more development.
No one has the luxury of that kind of time anymore. Today’s software development timeframe is defined by the apps on your smartphone. DevOps is a way to make enterprise software development work at internet speed.
DevOps replaces the monolithic approach to building software with components that can be quickly coded and prototyped. Users are closely involved with the development process at every step. Code reviews may happen as frequently as once a day, with the focus being on steady, incremental progress of each component rather than delivery of a complete application.
A significant departure DevOps take from traditional development is that coders have control not only over code, but also the operating environment. Agile infrastructure makes this possible. Technologies like containers and microservices enable developers to provision their own workspaces, including variables like memory, storage, operating system and even co-resident software, to emulate the production environment as closely as possible. This reduces the risk of surprise when migrating from test to production, while also enhancing developer control and accountability.
With the advent of containers, IT organizations can now create libraries of lightweight virtual machines that are customized to the needs of individual developers. Containers can be quickly spun up and shut down without the need for IT administrative overhead, a process that can save weeks over the course of a project. Pre-configured containers can also be shared across development teams. Instead of waiting days for a virtual machine to be provisioned, developers can be up and running in minutes, which is one of the reasons DevOps enables such dramatic speed improvements.
Many organizations that adopt DevOps have seen exceptional results. High-performing DevOps organizations spend 50% less time on unplanned work and rework, which means they spend that much more time on new features, according to Puppet Labs’ 2016 State of DevOps report. Code failure rates are less than 15%, compared to up to 45% for middle-of-the-road performers. Lead time for changes is under an hour, compared to weeks for traditional waterfall development.
As enticing as those benefits sound, the journey to DevOps isn’t a simple one. Significant culture change is involved. One major change is that developers assume much greater accountability for the results of their work. This quickly helps organizations identify their best performers – and their weakest ones.
But accountability also gives top performers the recognition they deserve for outstanding work. This is one reason why Puppet Labs found that employees in high-performing DevOps organizations are 2.2 times more likely to recommend their company as a great place to work. Excellence breeds excellence, and top performers like working with others who meet their standards.
Users must shift their perspective as well. DevOps requires much more frequent engagement with development teams. However, high-performing organizations actually spend less time overall in meetings and code reviews because problems are identified earlier in the process and corrected before code dependencies layer on additional complexity. Meetings are more frequent, but shorter and more focused.
If you’re adopting agile infrastructure, DevOps is the next logical step to becoming a fully agile IT organization.