While there were elements that predated the formalizing of a modern development processes, says Tara Hernandez, a senior engineering manager at Google, many of the concepts of DevOps later evolved through agile development’s encouragement of faster development cycles and close collaboration.
“As far as starting to formalize the discussion, the Agile Manifesto talked a lot about the 12 principles, earlier time-to-market and more interaction with customers,” she says, encapsulating the approach as: “What are the things that make your organization engage?”
The Key Principles of the Agile Manifesto
The Agile Manifesto’s 12 principles, as described by the Agile Alliance, include:
- Customer satisfaction: The highest priority of an agile development approach is to satisfy customers through continuous delivery of software.
- Frequent release cycles: Agile development relies on release cycles of a few weeks to a few months.
- Close collaboration: Business staff should work closely with developers on the project.
- Sustainable development: The approach should allow for a constant pace that can continue indefinitely.
There are different types of agile development — most notably, scrum, a sprint-driven approach that is most common among agile proponents — but ultimately, the goals of agile development focus on continuous software development that considers the needs of the consumer and can adapt to changes as they happen.
What Is DevOps?
Often described in the same breath as agile development, DevOps is a similar method that leans on improving processes so things get done faster.
DevOps, which was formalized around 2009 but whose roots date back years earlier, refers to a merger between development and IT operations that applies continuous integration methodologies to traditional infrastructure development.
While not limited to settings such as the cloud and the server room, DevOps is often associated with those technologies. A good example of this in action is DevSecOps, which extends the approach specifically to security needs so that response time is minimized and vulnerabilities are quickly detected.
How Does Agile Development Differ from DevOps?
DevOps, in many ways, is a maturation of the agile development approach, as both represent a reaction to the separated-out waterfall style of development. One term used in reference to both disciplines is the idea of “shifting left,” in which practices associated with later parts of a waterfall process are considered much earlier in an agile or DevOps process.
But in many ways, DevOps moves faster and has a different target audience. As a blog post from the tech education platform Guru99 notes, there are significant differences in scale, audience and the way that teams are structured. Agile development tends to enable problem-solving within smaller teams, while DevOps by nature tends to work across departments to help solve larger goals quickly.