Some years ago, IT professionals around the world noticed that there was a complete disconnect between the developers and the operations team. There were a number of problems arising due to lack of communication and the inability of these teams to work jointly on a project. As a result, projects were mishandled, developers and system admins were at war, customers were dissatisfied and the organizations earned an unsatisfactory reputation for themselves. After so much went wrong, IT professionals had had enough. Patrick DeBois brought DevOps to the forefront, and eventually gave more clarity about the concept thereby creating a revolution in the IT world.
So, what about DevOps is so revolutionary? Good question. Back in 2009 when the term ‘DevOps’ was coined, researchers spent months trying to figure out what the DevOps movement would entail.
DevOps is the combination of Development (“Dev”) and Operations (“Ops”) which means the amalgamation of the tasks performed by an organization’s software development and systems operations teams. It is an intangible attitudinal and cultural change, the adoption of which brings about tangible results in the organization, in the form of faster time to market and increased speed and efficiency of work.
DevOps mainly brings about improved results in the following spheres:
Unpredictable Deployments – When the code is written, the developer runs the risk of the code not working in a manner predicted by him. Very often, even the most reliably-written code can backfire without warning. To prevent this, people from the Dev Team as well as the Ops Team need to keep an eye on the code to ensure that it performs exactly as desired.
DevOps allows techies to alter code and monitor the effects of the alteration in real-time without putting the code through an unnecessarily long implementation process. This also allows for faster deployments.
Resistance to Change – In today’s day and age, the only thing that’s permanent is change. However, once software is created, techies resist changing it in any way, believing the software to be brittle and susceptible to disruption. Hence if any change has to be introduced to the software, some techies would rather choose to maintain status quo and leave the software as it is.
The DevOps movement is actively working to override this resistance to change and allow techies to introduce real-time changes to the software. DevOps also aims for an increase in the speed of deployment, resulting in greater customer responsiveness. It’s a win-win situation as the customer, who asks for the software, receives exactly what he has asked for and the organization succeeds in creating software that completely meets the expressed needs of the customer.
To Work or Not To Work? – Code is written and deployed with the intention of it working as desired by the developers. However, most often, code is built for one type of platform, tested on a second type of platform and executed on a third. This lack of uniformity among platforms results in failure of the code to adequately deploy on platforms other than the one it was built on.
Due to this, the most common complaint one hears from developers, when confronted with code deployment failure is, ‘It works on my machine!’ This results in a blame game between developers and system admins with developers asserting that system admins have built an unstable platform and system admins asserting that developers have written unstable code.
DevOps is working to reduce this gap between platforms and code by introducing real-time changes to code, thereby facilitating active deployment and alteration of code as-and-when an error is spotted, not at the end stage when the code is ready for deployment.
A Silo Here, A Silo There, A Silo-Silo Everywhere – People working on a particular project are sorted into teams depending on what they do – developers, code testers, system admins, etc. The flipside of team spirit and increasing team bonding is twofold. Firstly, it can result in an “Us versus Them” kind of mind-set. The teams work in their respective silos and communication is largely reduced leading to higher chances of mistakes, misunderstandings and unnecessary squabbles at the workplace. The second effect is that because of the perceived disconnect between teams, they may toss their problems over to the other teams without communicating the extent of the problem or describing exactly ‘what went wrong’. Without open communication, finding a method to solve the problem in question may become very difficult.
DevOps believes that better teams can be built without the formation of silos which impede the speed and progress of work. It focuses on effective collaboration aimed at delivering more value to the customers.
Organizations have now decided to adopt DevOps with the intention of returning more value to their stakeholders. They are slowly recognizing the merit in introducing the cultural change of DevOps within the organization in order to make a tangible change to the bottom line. With DevOps being here to stay, snags and problems with development and operations will soon be a thing of the past.