TL;DR. DevOps is a euphemism for cost-cutting. It is mind conditioning at the expense of a poor soul who does what two persons are supposed to do.
Cloud Opinion has an interesting take on what DevOps is not (see here).
Update: Adrian Colyer in his blog mentions “Dev and Ops is a combined role” as one recipe for complex system failure!
Well, I’d rather not define what DevOps is but instead, tell you what DevOps really means.
DevOps is a blanket term by marketers, human resources people and the industry in general to refer to IT roles that only Clark Kent may qualify. As the saying goes, it’s the job for Superman.
Because software is still immature.
The job of a developer is broad enough for learning and mastery. Same goes with operations. They are not the same and should not be merged into one.
Heck, you won’t even find a full-stack developer, let alone a DevOps person!
The IT industry is so fond of buzzwords that DevOps should be eliminated in the IT vocabulary. It is not only toxic. It is detrimental to poor IT guys and gals.
You see, software is getting to the point of being heavily automated. That’s a sign of progress but should not be at the expense of people. IT system is increasingly getting more and more complex but that’s because we are dealing with lots and lots of moving parts that may be unnecessarily complicated.
The goal is to reduce complexity into automation. Leave complexity to the experts. But just because it is automated does not necessarily mean it’s easy to use.
Just because it is complex does not necessarily mean it has to be complicated to use. Contrast NaCl with others for example.
The goal is usability. Usability reduces complexity into engines via minimal and easy to use interface.
The IT industry is used to creating systems of complexity. The software industry is yet to reach its maturity until we have systems that have minimal interface (UI and API) and until software becomes essentially invisible.
But we still have far way to go…