Organisations are embracing DevOps which is great. However the whole adoption is causing a lot of confusion as well.
Some of you might have heard the term “Agile and DevOps”. With that it looks like Agile and DevOps are different. To over-simplify further people assume Agile is all about processes (like Scrum and Kanban) and DevOps is all about technical practices like CI, CD, Test Automation and Infrastructure Automation.
This is causing a lot of harm as some organizations now have Agile and DevOps as two separate streams as part of their enterprise Agile transformation. Agile by definitions disrupts silos and you see, in this case people are creating new silos in the name of Agile and DevOps.
With that background in mind, let’s try to understand what exactly DevOps is all about.
DevOps is mainly the widening of Agile’s principles to include systems and operations instead of stopping its concerns at code checkin. Apart from working together as a cross-functional team of designer, tester and developer as part of an Agile team, DevOps suggests to add operations as well in the definition of cross-functional team.
DevOps strives to focus on the overall service or software fully delivered to the customer instead of simply “working software”.
It emphasises breaking down barriers between developers and operations teams, and getting them to collaborate in a way where they benefit from combined skills.
Agile teams used automated build, test automation, Continuous Integration and Continuous Delivery.
With DevOps that extended further to “Infrastructure as Code”, configuration management, metrics and monitoring schemes, a toolchain approach to tooling, virtualization and cloud computing to accelerate change in the modern infrastructure world. DevOps brings some tools on the block as well like configuration management (puppet, chef, ansible, cfengine), orchestration (zookeeper, noah, mesos), monitoring, virtualization and containerization (AWS, OpenStack, vagrant, docker) and many more.
So you see DevOps is not a separate concept but a mere extension of Agile to include operations as well in the definition of cross-functional Agile team, collaborate together and work as ONE team with an objective to delivery software fully to the customer.
Creating separate Agile and DevOps horizontals in any organization just defeats the whole purpose (removing silos) of DevOps.