The increasing complexity of software applications demands a well-defined process for development. This has been the reason for the advent of software methodologies like Waterfall, Iterative, and Agile. The recent inclusion to this list is DevOps, which emphasizes as much on processes as much it does on technology and tools. Generally development and IT support groups do not talk to each other and act like absolute silos. DevOps is an attempt to build an infrastructure where these two teams – Dev and Ops collaborate among themselves more closely in a single unified environment.
Though combining Development and Operations brings great technical and business benefits to the organization, yet their job priorities and approaches are absolutely different in nature. Dev focuses on producing new systems and applications and ensures that the users get to use it as fast as possible whereas Operations looks from a complete different aspect as their focus is to ensure the users get to use a fast and bug free stable system. Both Development and Operations strive towards the goal of making a customer happy and satisfied with their delivered systems and services. Yet their approaches in getting to this goal are absolutely contradictory to each other. Operations want the customers to use a stable tested system and are sceptic in providing periodic upgrades regarding new features as they fear that might make the system unstable and buggy. Development on the other hand wants to overwhelm the customers with their new enhancements.
Image Credit: dreamstime.com
Prior to DevOps coming to picture, Development and Operations worked in absolute isolation. They only interacted during the Releases. Developers knowing about the Release Date tend to insert a new feature by then. On the other hand, Operations team knows from beforehand whether the current Release contains any new features or not. So once they get the Released version of the application, before deploying it on the customer’s site, Ops do rigorous testing to test the stability of the Release. Once they are satisfied, then only it is deployed at the customer site.
But with the advent of DevOps, there has been a paradigm shift of this culture. Now the developers do not have to wait for a Release to release the new features. Instead, using the concept of Continuous Integration and Delivery, new features are released on a daily basis. Dev emphasizes that Ops should manage these new Releases so that in no time it is deployed on Staging as well as on Production servers at the customer’s site. As a result, customers get to use these new features as soon as they are released.
But taking this approach, Ops had to deal with a pipeline of releases. They had to be extremely careful about the quality because the deployed builds on the customer server may or may not be absolutely bug free.
The obvious solution to this is the synchronization between the two which is termed as DevOps. It is the most prominent method by which an organization can bring in a check and balance between development and the quality. Both Dev and Ops need to embrace the DevOps methodology by changing themselves in their outlook as well as in their way of working.
From the Development standpoint
- Effective collaboration needs to be established with Operations.
- Effective and efficient engagement in figuring out the quality metrics that Ops need to track on the customer production systems to monitor the quality.
- Dev cannot leave the ground by writing code. They need to understand how their code works in the production environment and hence they need to be more involved in the testing of their own code.
From the Operations standpoint
- Effective collaboration needs to be established with Development.
- Ops need to be more flexible in accepting frequent changes
- Rigorous monitoring of all the running environments like staging or production, so that they can promptly react to any of the issues cropping up or defects being generated.
- Structured management of all the Releases and Builds coming out of the Dev team.
To conclude, it can be safely said that both Dev and Operations teams need to change considerably to successfully adopt the DevOps methodology. Adapting to DevOps is a gradual process and eases with time. A major criteria for achieving DevOps is an integrated environment for the entire application lifecycle. To know more about how integrated environment helps in achieving DevOps in a seamless manner read our upcoming blog “The Integrated DevOps Story”. You may also watch this webinar and learn about DevOps through Agile and ITSM Integration.