DevOps: Is There One Definition?

Merger

Is there one definition of DevOps?  

In short the answer is NO!

DevOps may be the hot buzzword of 2015.  However, as I shared in my previous post, DevOps is as much a cultural and mindset shift as it is anything else.  It simply cannot be bought of the shelf and implemented.

Wikipedia currently defines DevOps as the following:

DevOps is a software development method that stresses communication, collaboration (information sharing and web service usage), integration, automation and measurement cooperation between software developers and other information-technology (IT) professionals.  DevOps acknowledges the interdependence of software development and IT operations.  It aims to help an organization rapidly produce software products and services and to improve operations performance – quality assurance.

DevOps has been utilized over the years to support many areas of technology operation.  More recently, the uses include:

  • Automated Infrastructure Provisioning
  • Continuous Integration
  • Development Environments
  • Automated Delivery
  • Continuous Delivery

Over the last few years, I’ve come to know DevOps as a set of practices, tools and policies that support Automated Delivery (AD).  AD is closely related to where many advanced DevOps cultures are pushing the envelope on Continuous Delivery (CD).  No only does a CD environment want every iteration to deliver production-ready code, but ideally that code is automatically deployed to the production environment without human intervention.  (And that sound you just heard was CIO’s and their IT teams screaming- “Noooooo!”)

Obviously, and for all the right reasons, Continuous Delivery is not for everyone.  However, I would submit that if any iteration’s output can be deployed to production, it should be.  You see, by automating the process for deployment, you get to repeatability and consistency for software releases (sprints) and by nature of the automation actually reduce or lower risk.

In fact, in many ways rapid and frequent deployment to production reduces risk:

  • Releases contain fewer changes
  • Fixes are easier to address
  • You don’t have to perform major rollbacks

So, back to a definition of DevOps!  DevOps is sort of everything required to make AD and CD possible.  However, one definition will not fit all.  You still can’t define your needs and buy the DevOps solution off the shelf.  You have to define DevOps for you and your business and from there, integrate it into your processes at all levels.  DevOps is in part about creating the ability to move faster in the Digital Age, but doing so by ensuring quality at all stages of the software development and operations lifecycle.

What is your definition of DevOps?