The IT Industry's Industrial Revolution
It's been around for about 2 years now and I was thrilled to have come across this cultural change in the IT industry! It's our pursuit to bring more agility into the release management and production operations that lead us to discovering what's brewing out there in the world with other teams!
So to get a context you have to view this (rather un-believable) way in which Flickr is pulling off deployments at an incredible speed.
10+ deploys sounds unbelievable isn't it. Well, I'm more surprised it's almost 2 years old and we've got to know just now. But if you dig around what DevOps really is you'll see the picture crystal clear. At the heart of it is developing co-operation models that can bring those developing the software and those operating it closer so as to increase the speed of delivering software without compromising the quality!
In practice there's a lot more to it than just this co-operation. Let's look at it this way, at a very high level we can say most of the software is built to automate business processes. And we've been reasonably successful at it. But then the business of producing software has itself run in a very manually drive, prone to human error kind of way. It's like we're at the stage of pre-industrial world in the sense that there's more of craftsmanship then industriousness in the way we work. While I have nothing against the craftsmanship, this lack of industriousness in our process themselves has off late been at loggerheads with the businesses that consume what IT industry produces. Today's world has these sort of an always on, highly disruptive kind of global business ecosystems competing tooth and nail, and time is a luxury they don't have. Time to wait 2 months for a release (for most businesses that could be a disaster!). And as the software is expected to automate or execute every growing in complexity business processes or services, we've increasingly found out that large batches don't do well.
But a lot of these was to be solved by the Agile Methodology you'd wonder! And you're right, I've been part of that same confusion, and a look at my blog would reveal how we've been obsessing over "Agile Release Management" for last two years. The unfortunate mistake in Agile wave or change was that they (unintentionally) left out all that happens "post" development and testing. We increasingly began to realised just because you develop, test and demo working software every fortnight doesn't mean it is production ready. That's where DevOps has stepped in, think of it as the entry pill to your "Agile Release Management" realisation.
I think it's a wider scope than continuous delivery as it doesn't stop at release and adds continuous learning and feedback to the whole cycle as well. So It can be envisioned as the cycle below.
Easier said that done I know and I don't think we have all the answers right now; but worth putting your money on it you've been stuck at a point where the rhythm of Agile Development is impeded or at times becomes bottleneck as work accumulated over multiple sprints begins to move towards production. There is no one way to ever solve the chaos of the production release but DevOps seems to be bringing a good change in all of this. In our experiences we've noticed that we are missing truly speeding up production releases beyond twice a month because of the phased manner in which processes accountable for getting a release through to production work. Add to that the fact that we've been lacking automation in security audit and acceptance testing for various reasons. All of this contributes to not being able to move fast to production.
Talking of how DevOps would help here; we're now beginning industrialising the whole game of requirements to working software with a heavy focus on automation of processes via tools and making processes light weight and "automation-able" by running things in smaller batches. This is what would hopefully lead to accomplishing the "Sprint Demo on pre-prod" and deploy to production on acceptance the next day mission we've been chasing for so long.
DevOps while still in early stages but, it might just be the answer towards complete modernisation of how software is made and operated.