Search the term ‘DevOps’ online and there’s a good chance you’ll find about eighty different definitions in the first five minutes. DevOps means different things to different people and both its definition and implementation methods are hotly debated everywhere. However, read widely enough and it becomes pretty evident that there a several common themes across most of the descriptions, namely:
Whilst some definitions are very specific in their approach i.e. DevOps is all about using automation tools or DevOps is all about culture, we tend to think that DevOps as a concept and in practice is a hybrid of all these things. The fact that common themes emerge only supports this. The DevOps umbrella encompasses so many aspects, roles and processes that it seems crazy to try and pinpoint ‘DevOps’ as being one specific thing.
Implementation of ‘DevOps’ also varies significantly and therefore sees a hybrid of practices as well. A startup is going to have a very different approach to an enterprise, or even SMB, in implementing DevOps methods. The startup may need to concentrate on rapid development and deployment to just get to market and win new customers, while the enterprise might throw buckets of money towards its infrastructure, software tools, hardware and training first.
So what are some common definitions out there?
One is that it simply boils down to a job title. There are jobs going for DevOps Engineers, DevOps Leaders, DevOps Developers, even DevOps Content Creator Instructors and a DevOps Cloud Task Force.
Funnily enough, the descriptions of these jobs emphasise a hybrid of required skills – not only strong technical skills, but also skills in project leadership, end-user communication and business operations. In this sense, DevOps “refers to roles or processes that bridge various departments – usually development and operations teams – to achieve a certain project management philosophy”.
Other definitions focus on Agile and the SDLC, stressing the technology and automation side of things. Agile requires quicker and more frequent release cycles, utilizing automation tools and processes.
Traditionally, development and operations teams have worked separately; after development is complete, it is the operations team’s turn to deploy and implement. Unfortunately, if deadlines are missed and releases delayed, it’s not unusual to see each party blaming the other. A fundamental requirement of agile DevOps is that the operations team is continuously engaged with the development team and vice versa throughout the life cycle of solution development.
Closely following this is the view that DevOps focuses on the need for improved collaboration between development and operations teams along with an organizational culture shift. “
There’s operations teams focusing on stability, best practice and deployment; developers focusing on innovation, new technologies and speedy development and testers and quality controllers reducing risk. Here DevOps is the love between all of the above.
Continuous Delivery (CD) – an engineering approach that sees teams produce software in short cycles, ensuring that the software can be reliably released at any time (if necessary) – is an integral part of a fourth definition of DevOps. This definition focuses on adopting new tech, software and processes to enable Continuous Delivery (CD), whilst also needing contributions from other departments.
Finally, a fifth definition of DevOps focuses on customer (end-user) value:
Whatever your preferred definition of DevOps, the question now is actually one of whether the concept is here to stay or is about to be relegated to the darkness where other IT concepts go to die. There seems to be rumblings that the time for DevOps is over. So, what’s next?