According to a November 2015 global survey of 250 business leaders by Harvard Business Review Analytic Services, two-thirds (66 %) respondents say that their company’s future depends on the quality of their software. The need for digital transformation has led to the rise of DevOps. To enable self-service, software developers need to create the software that users will work with, and operations teams have to orchestrate the processes in the background to deliver the services and goods on the back end. Thus, we have the collision of the two worlds and the rise of DevOps.
DevOps is a set of philosophies focusing on various aspects of culture and process. The folks at Puppet Labs have put out a fantastic State of DevOps Report since 2014. With every year, each category — deployment frequency, lead time for changes, mean time to recovery, and change failure rate — has had a positive trend. This solidifies the stance DevOps plays on today’s software stage. Compared with their competition, high-performing organizations have demonstrated code deployments that are over 200 times more frequent, lead times that are 2,500 times faster, a mean time to recovery that is 24 times faster, and a change failure rate that is three times lower.
If DevOps is a set of philosophies, then Continuous Delivery (CD) is the practical application of the teachings of DevOps. Embrace security, nonfunctional requirements, negative tests, performance, and disaster recovery from the get-go, and you’ll be adopting the tenets of CD into the daily regimen — whether that’s trunk-based development to achieve Continuous Integration (CI), or service virtualization to simulate applications, or testing high availability with Chaos Monkey.
Within CD, a number of methodologies and sub-disciplines have arisen. All are designed to help transform your software development to impact your business and promote some fundamental paths. I’ve defined these in the diagram below.
These pillars become useful when trying to identify where an organization is currently focused and where it could possibly see the biggest gain with increased focus.
When I’ve asked businesses what’s important to them, a consensus of speed, quality, risk, and cost generally rises to the top. If speed is paramount, what is slowing down your software development life cycle (SDLC)? Is it a lack of CI due to unavailable 24/7 environments and working back ends, or to the fact that your deployment is a heroic manual effort hidden in the scripts that deploy software? If the risk of data breaches is going to cripple your organization, maybe your plan to not import production data is the key. Does quality take the cake? Then are you confident you have full test coverage of all functionality? Be certain and deterministic. Did you plan for negative testing? All this finds a place somewhere in CD.
Well, all this is good, but you still may be asking yourself, ‘How do I take all these ideas and translate them into actual plans? Find out how by reading the full article posted at http://bit.ly/2byoUCg.