DevOps or Agile – which one to choose?
Agile and DevOps are two buzzwords which are used interchangeably BUT they actually differ. Agile is all about iterative execution, continuous feedback, value generation, while DevOps is about connected teams (like development and operations), collaboration, common tools and processes.
If you look at how Agile and DevOps evolved, Agile was coined first and focused on simplified processes and adopting change quickly. This was adopted by development teams (teams who were building the application or say products). Various methods on Agile were discovered – Scrum, Kanban, Scrumban, XP, etc. But what about Operations (teams taking care of servers/infrastructure that host the application/ products)? They still were following detailed procedures and were reluctant to change anything quickly on their servers. So, at one end we had our agile development teams while on the other hand we had our traditional operations team. These teams had different vision, different tools and different methods. Hence there was a need to connect these teams, make them understand that they need to deliver quality to the customer quickly and frequently. Thus, the DevOps term was coined. Connecting two different teams indicates cultural changes – connecting and simplifying the engineering processes end to end.
So, what to choose – Agile or DevOps? This depends upon your ecosystem and the need or say priority. While Agile defines ways of working with different methods; DevOps focuses on cultural aspects – demands for organizational structural changes – may lead to new roles and responsibilities as well. They definitely compliment each other. The twelve principles of Agile are guidelines that any team (whether development or operations) can adopt and practice.
In many cases, I have observed that teams adopt Agile principles first and then head towards being a true DevOps team – “we build and run teams”. Now the latter is a “nirvana” state (perfect end state) but definitely is a good vision for organizations. If teams are educated and empowered about the relevance of Agile, then the transition to DevOps becomes easy. If development teams can adopt Agile methods to deliver, then why not Operations teams? Today, Operations not only is responsible for managing servers and ensuring applications are running but they also are evolving with new methods and technologies like Infrastructure as a Code (IaaC), Platform as a Service (PaaS), Cloud platforms, etc. And to deliver such services, Agile is a good option. If development teams can use Kanban boards to monitor their user stories and tasks then why not Operations teams also adopt Kanban boards to monitor their requests? The intent is to understand the need for delivering value, making our teams and customers happy.
So, which one would you choose? What does your experience say ? 🙂
Answered all my question related to both, once again, an empathetic and an informative blog…..I have been using both of them, so the experience says that both of them adds a lot of value to the work and for the maximum value both should be used concomitantly.
Another good article.. plz keep posting
Good Article…