Isn't DevOps just another offspring of Agile? Is there any substantial difference between DevOps and Agile?
DevOps and agile aren't same thing but they are complimentary to each other. Agile development is development that adheres to the principles stated in The Agile Manifesto. In brief, agile is the word for an environment in which the priorities, according to the authors of the manifesto, are-
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation and
- Responding to change over following a plan.
The point of DevOps is to deliver technology to business units in a timely fashion and ensure the technology runs without interruption or disruption. To achieve it's goal DevOps mostly focus on-
- deep communication between software development and IT operational groups
- automated deployment processes
Below are list of relation/differences with agile and DevOps-
- Agile software development is a methodology for developing software, but DevOps, on the other hand, is all about taking software which is ready for release and deploying it in the safest, most reliable manner possible.
- Agile is all about development. Sometimes, it takes over the entire company. Even when it does, agile discipline doesn't inevitably lead to DevOps. The practice of DevOps involves a separate discipline and methodology from those of agile.
- Agile practices, like Continuous Delivery practices, can be part of a DevOps activities.
I would say that DevOps is a peer of Agile, not a child. Agile methods apply largely within software development. DevOps, by contrast, applies the same Lean Manufacturing/Lean IT concepts across the software delivery lifecycle, which begins with the business and ends with business value delivered (code running in Production.)
I believe, after some thought on the subject, that there is also a dependent relationship between Agile and DevOps. DevOps is intensely focused on automation. There is limited benefit in automating a process that executes infrequently. Waterfall development methods are a perfect example of a slow, infrequent process.
Agile methods are focused on maintaining a constant flow of work through Development. This is a perfect, natural fit for DevOps, which keeps that flow going all the way from the business to the end state, which is code running in Production.
DevOps is not an 'offspring of Agile', though it has been influenced by concepts from the Manifesto for Agile Software Development. DevOps consists of a set of characteristics of building, deploying, and monitoring software systems, as well as configuration management of source code, with a heavy emphasis on continuous integration and continuous delivery (CI/CD).
Adam Jacobs effectively defines DevOps in this presentation: AWS re:Invent 2016: What hundreds of companies show us about how to build a DevOps Culture (DEV320)
On a related note: about the use of the word Agile, Dave Thomas corrects its usage in the GOTO 2015 presentation Agile is Dead
Scope-wise, Agile covers development of software, i.e. mostly/only the
Dev aspects of
They best work together, however they are not exactly conditioned/dependent on each-other:
- non-devopsy orgs can still use agile in development
- devopsy orgs can still use non-agile development methodologies