There are times when the tech industry moves so fast that an idea gains significant ground before it's clearly defined to the masses it's meant to reach. Such is the case for the benefits of DevOps. The technically-hip may know what understand, but its mass appeal is still a bit limited because we shot right past defining it for many people.
"DevOps" is simply a compounding of "development" and "operations." It is a methodology that advocates a significant change in the manner in which applications are developed in-house at a firm because it changes the way apps are developed and who is involved.
The Benefits of DevOps
Understanding the benefits of DevOps requires some backstory.
In the old way, a business unit made a request for an app and then letting the dev team do all the work. The end user wouldn't see the app until developers declared it finished, and often, it was not to their liking. In DevOps, the business unit is represented all along the development cycle. Their feedback is constantly solicited and taken into consideration as development goes along.
"The old way is you give me your requirements and six months later I give you a current something that may not meet your set of requirements. DevOps and Agile are a more flexible way of delivering software," said George Spafford, research director, IT operations at Gartner.
Part and parcel with DevOps is another term that gets thrown around a lot, "Agile." Agile development is a new methodology for building apps that fundamentally changes how appdev is done.
In the old method, dating back to mainframes and up until recently, application development was done using a method commonly called "waterfall." The developers would get a request for an app and go off and build it. When the app was done, they would begin the testing process and then deliver the final product, probably months later.
This led to several problems:
* The needs of the group may have changed, effectively making the app out of date.
* Say the app is 50,000 lines of code. When errors inevitably show, that means checking all of that code. And one when thing is fixed, something else might break.
* The app might come out completely different from what the business group wanted, in which case a significant rewrite might be needed.
The larger the app, the more painful the testing process became under waterfall because there would be so much to check. The most famous case of waterfall's failure was the federal government's HealthCare.gov Web site, a boondoggle of epic proportions even by government standards. In a subsequent investigation it came out that the whole site was built and then testing began one week before its launch.
Agile changes that. Instead of writing the whole app and then testing, one working part of the app is written and then thoroughly tested, both by human QA testers and automated testing tools. Problems are fixed, then a new bit of functionality is added. That is tested, problems fixed, and so on.
So the first benefit of DevOps is that it gets the end user involved in the development cycle and they have a say in how the app is progressing, rather than seeing it at the end.
This dovetails into a second benefit, which is keeping the staff happy. "For me, DevOps is primarily about people, and it is clear that people working in a DevOps construct are happier and more satisfied in their work. The ‘systems thinking’ of DevOps ensures everyone knows their role in the whole system, from planning to delivery," said Andi Mann, chief technology advocate for Splunk.
A third benefit is speed to deployment. The ability to get continuous feedback and incorporate it into application development means faster development cycles, and by testing from the start, that means fewer showstoppers at the end.
This leads to increased revenue and customer satisfaction. In the digital business era, customers' needs are evolving so rapidly that their needs can no longer wait a year or more to incorporate suggestions. The turnaround needs to be much quicker, something only Agile offers.
However, improving cycle times for its own sake doesn't help. Going faster doing the wrong thing doesn't help. That's a benefit of using Agile in conjunction with DevOps. It's not good to just go faster, you need to deliver value faster. "If I simply accelerate my release time and deliver garbage, we've accomplished nothing and may even damage the business. We need to deliver the value the business needs at the speed the business needs," said Spafford.
A secondary benefit of using DevOps to speed development is that it also means boosting developer and operations productivity, but because faster IT means business can try new things and innovate faster, noted Mann. One of the major headaches for IT is that it spends most of its time and money just trying to keep things running and far too little on innovation.
"Agile techniques mean business partners can work more closely with both developers and ops on developing and deploying new ideas. Faster delivery of new capabilities lets business partners see their ideas come to life sooner," he said, which means they can move on to another project sooner rather than spend time bogged down on a massive project, built using waterfall, that the end users don't like.
The requirement of the end user being involved in development may seem odd to some. They have gone through their careers asking for apps and then waiting to get them. People in finance or marketing may not be used to having input in the development of the apps they use, and might not even want it.
But they have to want it, said Spafford.
"The reason they should want it is they need someone who gets it. In a perfect world, it would be the person who knows exactly what they need. This person is constantly filtering and prioritizing the backlog of requirements. Their constant feedback changes the project and is the fastest way to respond to what's working and what isn't," he said.
Mann believes the biggest benefit of DevOps is the impact on business outcomes. While the technology teams get great benefit, and business can innovate faster, the most important impact DevOps has is on business goals like revenue, share price, customer acquisition, competitive differentiation, etc.
"By speeding up the software delivery cycle, gaining closer alignment with business areas, improving the quality of releases, and even by having happier IT staff, business typically benefits in tangible ways that even a COO can understand," said Mann.
And it can translate into significant competitive differences. A recent survey called "2016 State of DevOps Report" from DevOps software provider Puppet and DORA (DevOps Research and Assessment) found high-performing companies, those that embrace DevOps and produce software at a rapid rate, deploy 200 times more frequently and have 2,555 times faster lead times than low-performing companies that either don't use DevOps or don't do it well.
They recover 24 times faster from failed changes and have three times lower change fail rates. The report also said high-performers spend 22 percent less time on unplanned work and rework, and are able to spend 29 percent more time on new work. The full report is here.
So in addition to theories, concepts, and ideas around DevOps, there are measurable benefits as well.