I read some articles related to DevOps and Agile and found both are two different methodologies for software development. My questions is, If both methodology is solution for same problem then what is advantages of one over another.
2 Answers
Agile is a methodology to organize (or group) a set of changes to software components in a give period (= sprint), so think about it as a planning tool or so. Whereas the stake holders are the scrum master, the PO, the actual developers, etc.
DevOps is (mostly) about shipping modified components from one environment (e.g. unit testing) to another one (e.g. acceptance testing), and for which things like CI and CD can be used. Whereas the stake holders are the developers, the testers, operations control people (or SREs if you prefer), etc.
Agile is really a simple manifesto about how software should be developed by people working collaboratively with customers. It assumes change will happen (rather than trying to lock down requirements early) and uses demonstrable working software to track progress.
The manifesto was a response to heavyweight software delivery models.
Since 2001 (when the manifesto was written), we have learned a great deal using an agile style of software development. Lots of different methods (XP, Scrum, Disciplined Agile Delivery, and so on) were created under the Agile umbrella.
DevOps was originally a very simple idea about getting development teams and operations teams to collaborate. One of the main ideas here was to align their goals to remove an almost universal conflict between Dev and Ops that was caused by asking:
- Developers to delivery more stuff, more often
- Operations to keep everything stable
Over the past decade, DevOps has grown to include Lean, Agile, and Continuous Delivery (the modern version of XP) - thanks to a great deal of research by the folks at DORA (DevOps Research and Assessment).
If you look at the DevOps model, it includes culture, product development, technical practices, Lean management, and lots of other very specific ways of improving your performance. It doesn't require you to do all of them, it's like a list of ideas that can help solve problems. There's a predictive relationship that links the capabilities together with business outcomes.