While not technically included in the Agile methodology, the popular set of practices known as DevOps works hand-in-hand with Agile, especially in software development, and it’s become very popular in recent years.
So what exactly is DevOps? And is it something your business needs to explore?
What is DevOps?
Essentially, DevOps involves removing the barriers that creep up between developing software and seeing it go live. It can be easily understood as a means of coordinating software development, technology operations and quality assurance into one seamless flow that allows for very fast deployment in conjunction with Agile’s iterative sprint-based arrangements.
DevOps is widely viewed as a dramatic improvement over traditional software development models – even those that followed the Agile Manifesto philosophy – because it attacks an issue inherent in every development scenario. The folks over at New Relic do a very good job explaining this:
“Once upon a time there were two teams in charge of creating great software: Dev (development) and Ops (operations). Though they worked on the same product, their goals were diametrically opposed to each other. On one hand there was the Dev team pushing for feature changes, and on the other hand was the Ops team striving for stability.”
This opposition, although based on good intentions, naturally makes development bottlenecks a regular occurrence as the push for innovation and deployment conflicts with the need for quality control and testing.
DevOps seeks to eliminate these bottlenecks by including QA, testing, and technology operations directly in the development process through constant feedback provided real-time.
It’s based around a concept known as feedback loops – a system for providing that constant real-time feedback between departments so that problems can be caught earlier in the development process rather than waiting until users are inconvenienced, bother to complain, and then customer service chooses to notify IT, QA, or the development team.
In an ActiveState blog from last year, Phil Whelan uses a simple example to explain how a feedback loop works:
“A simple example of a feedback loop would be: “Does it fail in production?” The earlier, quicker, and low-cost way that the software development team can get this answer from IT, then the quicker the developers can take action on it. Otherwise, the compound interest that this production-unfriendly code generates will cause show-stopping issues when the application finally reaches IT for deployment.
Why Should Your Organization Care About DevOps?
Well, the fact is, maybe you shouldn’t. DevOps isn’t necessarily for everyone, despite its current status as flavor of the month in the Agile world.
In the case of companies that are developing on structured cadences that leave plenty of room for iteration and testing without unnecessarily holding up the deployment schedule, adding DevOps practices to the process just to say you did is unlikely to do much good.
On the other hand, if you find that testing and other QA or back end tech processes consistently get in the way of the deployment schedule you’re shooting for, DevOps could very well make your life easier and your company more successful.
If that’s the case, and you need some professional guidance as to how to implement DevOps into your current Agile framework, we’re happy to have a technical coach offer just that.