Historically, IT has existed in a very siloed environment, with each function working on its own piece of the puzzle and nothing else. Silos are a natural outgrowth of specialized skills, and this mindset continued to be entrenched as IT grew into a more vital component of business. However, this method was not perfect. For example, communication was often minimal, with Development writing code in isolation and throwing the code “over the wall” to Operations when it came time to release and transition to support. Technology decisions were made in isolation, or with minimal input, often taking a long time to implement a solution that may or may not meet business needs.
Leading practices, such as the Waterfall project management methodology, were seen by Operations as an essential component of stability and by Development as an unnecessary impediment to getting the best code out into the wild as quickly and with as little friction as possible. While this method of running IT ruled the roost since the beginning of the IT department, cracks began to form in the façade. New methodologies, such as Lean Startup and Agile, began to appear on the scene, suggesting the existing world order was ripe for disruption. Finally, these ideas coalesced into a new philosophy of deep integration between Development and Operations, called DevOps.
The Beginnings of DevOps
DevOps originally formed in 2009 as a backlash against the siloed, iterative IT that has existed for decades. It seeks to bring development and IT operations together at every step of the process to facilitate quick, collaborative decision-making and rapid iterations for continuous improvement. In doing this, DevOps aims to eliminate both process friction and waste, which, admittedly, existed in spades in previous methodologies.
Though it was first formalized at the 2009 Velocity Conference, DevOps is eating the world at a rapid pace. Gartner predicted that as of 2016, only 7 years after its formation, DevOps was used in 25% of Global 2000 companies, and that number is consistently rising. DevOps is seen as a paradigm of the future, and it has the results to back that up. Research has proven that companies embracing DevOps can realize incredible benefits, up to and including:
- Improved delivery frequency of code
- Faster time to market for products and services
- Shortened lead time between proposal and deployment
- Reduced failure rate
- Faster mean time to recovery when an incident or fault occurs
- Faster delivery of features to customers
- More stable operating environments, which reduces downtime, a cost to the business
- More time available for business and technical resources to add value to end users and/or customers, rather than doing break/fix or maintenance work on the existing IT environment.
- Continuous incremental improvements are now possible, because of the reduced time to delivery for new releases.
A study from CA Technologies suggested that companies embracing DevOps are:
- Three times as likely to be able to move quickly to pursue new opportunities.
- Three times more likely to see an increase in market share.
- Twice as likely to see revenue and profit growth.
- Twice as likely to see customer retention and acquisition improve.
Mature organizations with well-established IT departments have seen incredible benefits from implementing DevOps. For example, Fidelity Worldwide reduced the time required for software releases to 1-2 hours, instead of 2-3 days, a 99% improvement. This allowed Fidelity to realize total yearly cost avoidance of $2.3 million. IBM’s Watson division implemented DevOps and reduced deployment times from months to 3 weeks (and falling). Watson was also able to reduce the time from feedback to feature from 6 months to 1 week. Nationwide Insurance is also on the side of DevOps, having reduced end-user downtime by 70% and improved code quality by over 50% in the 3 years since It implemented DevOps.
How to Implement
I know what you’re thinking: This is all well and good, but how do you implement DevOps effectively within a mature organization? It’s a great question, and we’ll go into it in more detail here.
Before anything else, it’s important to remember that DevOps is not a process guide; it’s a philosophy. Therefore, there is no one single way to “do” DevOps; rather, DevOps relies on rapid iteration and seamless communication between disparate teams in the IT value chain.
With this in mind, look to the following guidelines to implement DevOps in a mature organization:
Remember the Pieces of the DevOps Puzzle
CA Technologies did a wonderful job identifying the pieces that go into the DevOps puzzle. Please keep these in mind throughout your implementation:
It Starts With Culture
In order to truly thrive with DevOps, your organization must have the kind of people who can support the DevOps philosophy. Look to instill a culture of collaboration and cross-functional thinking, and hire from outside the organization to fill any gaps that may exist. In addition, be sure to encourage experimentation and breed a willingness to fail among your IT department. It starts with you.
Be sure that key stakeholders and teams support your DevOps implementation, or it will go nowhere.
Have a Transition Plan in Place
A transition plan might seem antithetical to the mission of DevOps, but it’s going to be vital for your organization’s survival, if only for one key reason: for a time being, your IT department will have multiple personalities. Some teams will be practicing DevOps, and some teams will not. This will need to be managed deftly to minimize friction and help the teams that are using DevOps unlock its true value.
The worst thing you can do when implementing DevOps is create a separate “DevOps” team. This does nothing but perpetuate the siloed thinking against which DevOps is leading the rebellion. Instead, identify a cross-functional team as the “pilot group” for DevOps. Sit them together, or encourage extensive collaboration.
While this is going on, begin to break down the silos that implicitly and explicitly exist within your IT department. Those silos will kill your DevOps implementation if you leave them in place.
Eat Your Own Dog Food
You need to be able to understand whether your own plans will work before sending them to other teams within IT. Test automated testing and deployment plans to proactively find issues and gain confidence in the DevOps implementation.
You need to understand what will make your DevOps implementation successful, and this involves identifying the Key Performance Indicators (KPIs) for your DevOps. Puppet Labs, in its 2013 State of DevOps report, identified four main key performance indicators (KPIs) that can measure the improvements DevOps can bring your IT department. Your experience may vary, but these are a great start when it comes to thinking about KPIs:
- Deployment Frequency
- Teams in the survey that were following DevOps the longest shipped code up to 30 times faster, and completed deployments up to 8,000 times faster, than lower-performing competitors.
- Speed of Deployment
- Over 25% of respondents were able to complete deployments in less than a day.
- Deployment Success Rate
- High- performing organizations reported a 50% reduction in the failure rate from deployments after DevOps.
- Mean Time to Restore (MTTR) service following a failed deployment
- Over 75% of respondents were able to restore service in less than an hour. Almost 30% of respondents could restore service within minutes.
The other “KPI” Puppet called out is culture, which is essential to your DevOps implementation but unmeasurable.
Measure Performance Against Those KPIs
A KPI that is not measured is merely window dressing. Be sure to measure your organization’s progress against these identified KPIs, in order to drive continuous improvement and help you understand when your organization is more mature within its DevOps implementation.
This is the most mature step, and it will guide your DevOps philosophy moving forward.
DevOps is rapidly becoming the new normal in the IT world, and its adoption will only accelerate in the coming years. Mature organizations can still reap the benefits of DevOps if they focus on the process and define success.
 “Assembling the DevOps Jigsaw,” CA Technologies, https://www.ca.com/us/modern-software-factory/content/assembling-the-devops-jigsaw.html
 Source: http://www-03.ibm.com/software/businesscasestudies?synkey=X332016M82338E12
 Source: http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ST&infotype=SA&appname=SWGE_RA_RA_USEN&htmlfid=RAV14259USEN&attachment=RAV14259USEN.MP4
 Source: “Assembling the DevOps Jigsaw,” CA Technologies, 27 October 2015