I've been revising my DevOps at Five talk for GOTO Chicago. In it, I talk about the CAMS model for DevOps. The 'C' in CAMS stands for Culture, and it's always a hard one to define. Yes, we do say that DevOps is about culture not tools. But what kind of culture? I can say everything is a culture. Agile development is a culture. But so is waterfall development, or cowboy coding.
Every time we try to define the culture, we end up using words like communication, collaboration, and feedback. The problem is that those words don't differentiate DevOps from ITIL, TQM, or any other operational process since Deming.
Your culture is really defined by the things that would be unthinkable to say.
In that light, I'd like to offer some statements that you will never hear in a DevOps culture.
- That's not my job.
- (From a developer) Well, the tests all pass, so the problem must be in Operations.
- (From operations) I did everything right, it must be a code problem.
- Oh, production is down? I didn't know.
- I built the production environment by hand. There's no reason to automate it because we're only doing it once.
- How close is QA to production? I don't know.
- You need a new environment? Put in a service request and we'll see.
- Your service request was approved. You should have a new machine in a few weeks.
- Why do you need another terabyte of storage? You're already using a terabyte!
- Our DBAs won't let you install that server. We're a SQL Server shop.
- I don't know what our slowest query is.
- I don't know how many cores our production environment has.
I could go on, but I think you get the idea.
How many statements like these do you hear around your company?