Agile vs DevOps. In spite of Agile having been around since the early 2000s. And DevOps having been around since 2009. There is still a high level of confusion over the similarities and differences of these two approaches. Including whether they are mutually exclusive.
Ultimately both Agile and DevOps share the same goal. To improve the speed and quality of software development. However, they do so from different angles. So they have different approaches. Below we will look at their similarities and differences.
1 – What is the intent of Agile and DevOps?
- Agile takes an iterative approach to software development. It focuses on collaboration, customer feedback and rapid releases. As a result it helps development teams handle changing requirements due to the constantly evolving needs of the customer.
- In contrast, DevOps is the practice of bringing everyone involved in the software delivery process together. In order to manage the end-to-end engineering processes. Specifically bringing the Development and Operations teams together.
2 – Where did Agile and DevOps originate from?
- A group of Software Practitioners created the Agile Manifesto in 2001. This was a critical milestone in the the history Agile. Because the Agile Manifesto contained 4 values and 12 principles that formed the basis of the Agile Methodology.
- The DevOps movement started in around 2009. It began with a small group of Developers and System Administrators. Sharing ideas and concerns about the industry and how best to get work done and soon grew into a global grass roots movement.
3 – What problem does it address?
- Agile aims to addresses the gap between customer need and development & testing teams.
- Conversely DevOps aims to address the gaps between development and operations teams. Such as System Administrator, Application Support and more recently Security.
4 – What is the scope?
- Generally Agile focuses on the ideation to code completion.
- DevOps extends the focus to include delivery and support and maintenance.
5 – Which parties are the primary focus of collaboration?
- Collaboration between the business and the development team is a focal point in Agile.
- In contrast the collaboration between internal teams is the focal point in DevOps. Including the business, the development and operations team.
6 – Who typically provides feedback?
- Because customer and developer collaboration is key in Agile. Customers are typically the ones who provide feedback.
- Where as, because of the focus on internal communication in DevOps. The internal team(s) are typically the one who provides feedback.
7 – How is it implemented?
- Agile is commonly implemented with frameworks such as SCRUM, SAFe, etc.
- Generally DevOps does not have commonly accepted framework. Although Team often use a Kanban approach for managing and visualising work.
8 – How is work organised?
- As Agile focuses on the development and completion of code the work is generally planned on a per iteration basis.
- The work in DevOps is also planned. However in addition DevOps also incorporate unplanned work. Which is common for operations.
9 – What are the technical areas covered?
- As Agile emphasises the development and completion of code. The Agile team do not typically care what happens to the code after it has been developed and released.
- DevOps is all about taking software which is ready for release. And deploying it in a reliable and secure manner so that is supportable and maintainable.
So is it a case of Agile vs DevOps?
Both Agile and DevOps began was ways to improve software development. Albeit from different from different aspects.
Agile tackles the problem of building software. By embracing changing requirements and prioritising working software over rigid processes. And allowing teams to build software faster. Agile covers more of the project or product management side of delivering software. Introducing strongly defined roles. Such as the Product Owner and or Scrum Master.
In contrast, DevOps focuses on getting code into production and improving the process. By having the technical teams involved in the software development process work together. It provides teams with a formula to deploy code more often. And increase quality and security. Requiring engineers to accept shared responsibility for building and running systems.
DevOps builds on the project or product management practices Agile principles provides. By focusing on the technical practices that teams use to build, deploy and run code in Production. As result DevOps can be thought as the evolution of Agile.
Ultimately it is not a case of Agile vs DevOps but rather Agile and DevOps.
Managing Director | DevOps & Cloud Lead