Call it the need for speed.
When it comes to delivering software, today’s business climate has three prerequisites for success: speed, agility, and innovation. While multi-year, expensive, and bloated software initiatives were once a reality for some companies, today’s expectations for new projects are measured in days, weeks, and months.
This requirement for accelerated delivery and faster time to ROI has significantly changed the process of how companies develop and deliver software. Companies such as Netflix and Etsy, who understand and deliver on a Continuous Delivery approach, are reaping the business rewards. They are differentiating their user experience based on rapid and iterative feedback.
Also, by deploying smaller sets of features more frequently, these companies are mitigating risk by making it easier to identify and correct potential problems more rapidly.
Several studies have proven that real business benefits are derived from investing in a more collaborative and agile software delivery process. These benefits include 22 percent improvement in quality of deployed applications, 21 percent increase in new software and services delivered, and 19 percent increase in revenue, according to a late 2013 study of 1,300 IT executives and managers sponsored by Computer Associates (1 in my list of sources below).
However, as it stands today the traditional software delivery process is, quite frankly, broken in many companies. While over half of business leaders now expect projects to be delivered within six months, 70 percent of those same companies admit it takes longer than that. In fact, 40 percent of companies admit that it takes more than a year for IT departments to produce solutions to support innovative ideas (2).
This is why development teams and leaders increasingly take matters into their own hands, and not only embrace the flexibility of cloud infrastructure, but also lead key charges by working with their operations counterparts to redesign the entire process of bringing an application from development to production, in a process known as devops or DevOps.
This leadership from the development organization to rethink the process of bringing applications from development to production more quickly is based on a conceptual advantage. Dev teams understand the core concepts of agile development, and are able to apply that same conceptual approach to a broader application delivery problem.
Dev leaders understand that a faster, iterative approach (in the development case bringing application code together on a more regular and iterative basis and testing at each step) can result in faster development that is also higher quality.
Most dev leaders have already moved from a waterfall approach to a more iterative development approach with a series of smaller repeated cycles. The result: speed, lower cost and flexibility.
“Continuous delivery” takes many of these same elements and applies them to the process of end-to-end software delivery (all the way into production). While more frequent changes can seem scary to operations leaders (after all, for decades our mantra has been “change is risk”), an updated approach proves that more frequent and smaller application changes are not just a necessity but an advantage in terms of maintaining production service/application quality.
Two elements that a continuous application delivery approach adds beyond the concept of rapid and iterative releases are significant automation and shared devops visibility. Automation is applied to the full cycle of application testing, and also to the deployment steps of bringing that same application (or application feature) from development – to test-to staging – to production. Ideally, it also means automating the core elements of the management of that application once in production (scaling, requesting and provisioning more resources or removing resources as needed).
Another essential concept within continuous delivery is that of shared dev and ops visibility. The right process ensures both sides have visibility into an application’s behavior as it moves from testing into production. This visibility is essential to achieve the rapid feedback that is required, so that any glitches or issues in an application’s production behavior can be seen immediately.
When it all comes together into an automated process for bringing applications from development to production rapidly and frequently, the results can be astounding. Consider that according to a survey by Puppet Labs, organizations that invest in devops capabilities deploy code 30 times more frequently than their peers, have 50 percent fewer failures and are able to restore service 12 times faster following failures (3).
So, how can organization make this move to continuous delivery? The answer: one step at a time. A company can move incrementally. Any step you make to steer your internal process toward greater collaboration is an improvement. As a first step, consider aligning the dev and ops teams with common metrics. Developers “move fast, break, then fix things,” and strive to be quick and agile. Meanwhile, the ops view is more measured and change-averse. By creating a dev and ops alignment plan with shared visibility and metrics to measure success, you will ensure everyone shares the same mindset, which is integral to collaboration.
Note that this is a people and process-related first step, not a tools or tech one. At the same time, you should start to automate key steps in the software development process. For example, many companies find that investing in a continuous integration system is their first starting point, often paired with, or followed by, an investment in automated testing. Once that system is in place, a great next step is to automate the deployment of applications into staging and production.
As mobile usage, cloud adoption and customer demand continue to underscore the need for speedy, innovative software development, continuous delivery and better devops collaboration will become the new default requirement for competitiveness.
Over time, we will see a high correlation between those companies that have achieved “market leader” status in every category and those that have adopted continuous delivery best practices.
Clearly, the ability to deliver value rapidly will become the “killer” strategic advantage.
- CA Technologies, “DevOps Driving 20 Percent Faster Time-to-Market for New Services, Global IT Study Reveals,” 9/12/13, survey of 1,300 senior IT decision-makers worldwide
- Application Development Trends, “Forrester Study Reveals Disconnect Between Business and Software Development,” 3/15/2013
- “The State of DevOps (by Puppet Labs),” Sanjeev Sharma, SDArchitect, 4/1/2013
Original article published on VentureBeat