And here is another buzzword – DevOps. This term is coined using “Development” and “Operations” together. Typically “Development” includes development and testing teams both. Whereas “Operations” include the system administrators, infra engineers etc who maintain the dev, testing, and prod environments.
What is DevOps exactly?
It is a set of practices which attempt to reduce the friction between the dev team and the Ops team. This essentially means culture change for both the teams – Dev and Ops. Both teams need to work towards a common goal of “Enabling business”. From one angle, both these teams are working against each other – Dev bringing in the change and Ops resisting the change to keep the environment stable. This perspective forces these two teams to work in silos whereas DevOps practice forces them to work together.
How does DevOps break silos?
It changes the culture in both the teams to follow certain practices:
- Engage Early, Engage Often
- Involve each other
- Invite everyone to stand-ups and retrospectives
It also focuses on automation and monitoring a lot. Builds, testing, deployments, system configuration, Monitoring etc. With this kind of automation, any kind of issues get detected early and get fixed early. Complete set of tools have got built to enable teams to perform in this manner. Some of the tools are – Chef, Puppet, Vagrant, Jenkins, Dockers, Ansible etc.
Take look at the map below. You would get a fair idea how developed this ecosystem is.
Comparison of DevOps with Agile
Both these terms are related and have a lot of overlap. At the same time, they have certain differences. Agile methodology gave rise to automated builds, test automation, Continuous Deployment and Continuous Delivery. With DevOps, Operations related things such as configuration management, monitoring, metrics etc got included in the whole process. So in a way, one can say that DevOps is an extension of Agile.
Agile, Continuous Delivery, Continuous Deployment