This is part two of The Bitesize DevOps Series with Partner and Co-Founder Kris Saxton. For part one, click here.
DevOps and Agile are equally hot topics right now, but both have been known to cause confusion. This post aims to address the question, can you do DevOps without Agile? Whilst highlighting the subtle differences between them and how, if you so choose, they can be used together as a force for positive change.
Over to Kris…
I think it is possible to implement DevOps without Agile, or vice versa, but the argument is almost academic. They have so much in common that it almost never makes sense do one without the other. Agile and DevOps are distinct in that DevOps is an organisational model, but tells you nothing about how you deliver software, which is what Agile is (a software delivery methodology). By contrast, Agile doesn’t directly tell you how to organise yourself, but its focus on people over process does suggest that removing functional barriers between teams will improve workflow.
One of the underlying principles behind Agile is to value people over processes, and that sits very well with DevOps – which is about getting all the right people you need to deliver value in the same team. That can be the hardest problem to solve in a large organisation and yet remains the most important.
So both are focused on accelerating the delivery of value to customers and users by eliminating waste and improving the developer experience, they just focus on different aspects of the experience which is why they are often confused and conflated.
Many systems integrators and technology consultancies tend to keep to their comfort zone and focus on CI/CD or cloud automation, but technology-focused initiatives tend to stall in the experimentation phase because they are not tackling the process and organisational changes that you need to make Agile and DevOps self-sustaining and scalable.
When people are not organised together around a product or service, process tends to take priority over people, so not doing DevOps also undermines your ability to be Agile.
As a simple example, let’s say you have an organisation trying to do Agile but not doing DevOps. They want to build a new feature for a product and deliver it in 2 weeks. Not an uncommon request. So they organise a 2-week sprint, however, to get the environment to build or test the product in, they’re reliant on another team and the request to build that environment takes 4 weeks. So they have to fill in a form, email another team then they get the environment within 4 weeks and it might be misconfigured and have to be sent back for rework. It should be fairly obvious to see how that undermines delivery objectives.
Essentially DevOps and Agile come from different historical paths, but with subtle differences. They have the same goal but different provenance and different views on the same problem. In all cases, the answer is to focus less on process and more on people.