Tuesday, 15 July 2014

Why DevOps isn't a job

Buzzwords.  Gotta hate them.  I love the idea of this thing called "DevOps" though but I come out in a cold sweat when  I hear this word being thrown about with abandon.

My official position is that really there is no such thing as DevOps – at least not as a technical discipline.  I also happen to lead the DevOps initiative at a large financial services enterprise.

So not much contradiction there then...!

The ever increasing popularity of the Cloud has really driven a lot of ideas about new how to create and deploy ‘change, how to collaborate and how to manage mega sized infrastructures.  The massive scale of companies like Facebook, Amazon and Netflix have caused companies to look for new ways to scale their teams, technology and business processes. These types of companies often evangelise this term “DevOps” as part of the solution to their woes.

What they are really talking about though is culture.  Not a collection of funky hipster tools and technologies such as Puppet, Chef and Vagrant.

So, here are my five reasons why you shouldn't ever be able to get a "DevOps" job.

1.    DevOps means producing good quality software and systems that are easy to maintain and quick to change is the responsibility of everyone

That’s not new – just how software should be adopted in the first place.

Its not a developer responsibility.  Or a DBA.  Or a BA.  Or the Operations guys.  Its everyone involved in producing and managing change.

It doesn't just apply to funky new web startups out of Silicon Valley.  It's as applicable to traditional enterprises (including financial services where I work) as it is to those cool Etsy-esque Cloud companies.

2. You can’t get rid of organizational barriers by creating a new organizational silo and calling it DevOps

As companies grow they tend to put people in technology focused "teams".  A database team, or a network team, a development team, a test team, a release management team and so on.

By doing this, these teams often become silos, incentivised in different ways – not focusing on the same end goals.  That’s why you can’t become a DevOps engineer.  Silo’s aren’t fixed by creating a new silo and calling it “DevOps”.

This is why the scale of Cloud has really driven the idea behind DevOps as a “new” discipline.  The idea is to get everyone to collaborate effectively to achieve common goals.  If you want to deploy code to 100,000 servers there are some pretty massive engineering challenges.  Do we update 10% first?  How do we ensure that the change hasn’t broken anything?  Has the login rate dropped?  How do we quickly roll it back if something goes wrong?

3.  One of the misconceptions about DevOps is that it involves automated releases into production.

DevOps is about bringing people together and having the culture in place to achieve shared goals.  Once you have the culture in place, processes and tools become a means rather than an end.  How do developers and infrastructure engineers both ensure that they can test their scripts?  Can they use common techniques such as version control and unit testing?  These are all important questions, but the inherent technical skill sets are not new per say.

DevOps is about breaking down whatever barriers are necessary in order to achieve your goals.  Happy with your pace of change but want to increase quality?  Break down the silos between Devs and Test to get them aligned in a collaborative environment.  Have them work within the same team and incentivised the same way. By sharing tools and techniques, you can avoid developers falling into the trap of throwing code over the wall and moving on.

4. You can’t create a new discipline simply by cobbling up a cool portmanteau

With that in mind, it's not really just about Dev vs. Ops. It’s about the functions that come together to achieve meaningful change.  You might as well call it DevBizTestReleaseThingyOps (more to come on this a later date!)

5. Business culture cannot be changed by creating a new position category nobody really understands in the first place

DevOps is whatever you want to make it.  It’s a culture that extends far beyond technology.

No comments:

Post a Comment