One of the questions I commonly get asked at the workshops we run is “What’s the connection between Agile and Devops?” or vice-versa. My usual tactic is to let the workshop attendees argue that one out amongst themselves. Firstly, because it’s quite an emotive question, so it gets people chatting, and secondly because I’m always keen to hear what other people’s opinions and experiences are.
Here are a few of the things I’ve heard from the workshop groups:
- “Devops is an evolution of Agile”
- “Devops is the missing link between agile development and operations”
- “Devops is a subset of Agile”
- “Agile is a subset of Devops”
- “What time are we having lunch?”
I’ve heard strong arguments in support of each one, and I’ve also heard people say there is no link between agile and devops (again, with a strong argument to support this opinion).
For me though, I like to think of devops and agile as complimentary. I also think devops is a key enabler for enterprise agility, and this is where things get a little murky. I don’t want to get into any great yak shaving exercise, but before we can describe the relationship between agile and devops, we really need to define what we mean by “agile”.
Agile development vs Organisational Agility
Agile development comes with many different frameworks, some more prescriptive than others, but they all share a certain number of core “agile“ features in common – namely that they embrace change, and are able to comfortably respond to it (ok there are plenty of other features in common, such as focus on customer value and working software etc, but I’m going to concentrate on the responsiveness to change for now).
Scrum, on the other hand, is a framework for helping you do agile software development, it has clearly defined team roles and a few rules you need to follow. But let’s be clear – Scrum is NOT agile. Don’t confuse the two!
Scrum is a framework for helping you do agile software development, doing agile software development helps you become agile
Now let’s take a deeper look in to what being “agile” is all about. It’s about being able to respond to changing conditions, changing market forces, changing requirements, and not only survive, but to succeed. “Change” is the arena in which agility thrives. So, to be agile you need to be able to react and respond to changes quickly. This is where the agile world and devops come together. Devops encourages closer and more meaningful collaboration between the business, development and operations, to help organisations deliver higher quality applications that can be deployed quicker, be maintained and monitored more easily, and provide fast and accurate feedback to the business. Without these key enablers, you’d be hard pressed to respond or react quickly to anything, let alone changing requirements, changing markets and changing technologies.
So in a nutshell, agility is all about the ability to embrace change, and succeed in a changing environment. Devops is one of the key ingredients to helping you achieve this.
Can you do agile software development without doing devops? Yes, of course you can, you could do Scrum, for example. But doing agile software development and being agile are two very different things.
So, now for the harder question: Can you “be agile” without doing devops?
Some might argue that this must be possible, because organisations have been agile for longer than devops has been around – to which I would respond by saying that the term “devops” may be relatively new, but the ethos behind it has been around for as long as agile has.
I imagine that under certain circumstances it may be possible to be highly agile and yet have an anti-devops culture, where there’s very little collaboration between the business, development and operations, but I’ve not actually come across it, if it does exist. In my experience, highly agile organisations from start-ups through to large enterprises, are embracing the principles behind devops whether they know it or not.
In summary, agile is NOT about sprints, it’s NOT bout stand-ups, it’s NOT about retrospectives or any of the following:
You can’t do agile, you can be agile, but you can’t DO it. You can “do” scrum, XP, Devops, TDD, BDD etc – these are explicit activities, unlike agile, which is more of a set of values and principles. You can perform all of the individual activities listed above, independently of any other. Sure, they certainly complement each other, but they can be done separately. The same can be said of agile software development and devops.
The relationship between devops and organisational agility is that one is an enabler for the other. The relationship between devops and Scrum, for example, is simply that they are both enablers for organisational agility, but they can also exist independently of each other.
Uh oh, I feel a rant coming on…
“Scrum is a framework for helping you do agile software development”
Not in my experience! Scrum seems to have been invented by agile apologists, working within a heavily Waterfall-oriented corporation, desperately trying to convince the management that agile != anarchy.
Too harsh? My biggest problem with Scrum are the numerous meetings… sprint planning, backlog grooming, sprint review, sprint retrospective. And that’s before we mention the daily standups that we struggle to keep under 15 minutes (because, hey, we’re all human). After all those meetings, there’s barely time to do any actual real work. Additionally, many of these meetings are unimportant if you are practising pair programming.
Scrum is great for “meeting moths” (you must have seen them – they’re in nearly every meeting you go to, but never contribute), but it’s an anathema for developers.
I have personally found both XP and Kanban to be a far more efficient methods of helping you “do agile software development”.
… rant over.
I cannot agree more on SCRUM…! Being right now at an organisation which has literally shifted to scrum overnight and has agile coaches in… its a meeting nightmare… my calendar is now barking at me multiple times per day, retrospectives, planning, refinement\grooming, team rallies, multiple show and tells and the daily stand ups..
The history actually Scrum is a stripped down XP or in other words Scrum is XP without engineering practices. XP also have those meetings in Scrum, they are just called differently – Planning Poker, Customer Demo, Daily Standup and Retrospectives. XP is actually harder to do properly. Most organisation who actually said they are doing XP actually only cherrypicked several XP pratices.
You are right that there are various perspective on whether there are co-relation or even dependency between the two.
You mentioned one is of the enabler of the other and seeing response of can you be agile without embracing devops – I have a more frustrating question because I felt devops have been misled by so many (for their own beneficial definition) and more worrying – can you claim to be having devops culture but have no relation to “being agile” and can you successfully build a devops culture and harness the benefit in a non agile environment and framework?