You must have started thinking of RAID technology which is used worldwide for data storage. Hold on! It also has a different meaning in another important area of software engineering. RAID stands for Risks, Assumptions, Issues, and Dependencies. RAID is an acronym which should be at the forefront of your mind if you are a project manager or a program manager.
Most of us have come across the term Agile!! It is a most used term when we talk about SDLC (Software Development Life Cycle).
Don’t worry you will not be reading another article for what is agile and how it works! I am going to focus how Agile has arrived.
The most popular Agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as agile methodologies after the Agile Manifesto was published in 2001.
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