CAMS – Culture, Automation, Measurement, and Sharing: the classic, albeit basic, four word guidance for those dipping their first toe in to DevOps. Some may argue that “L” should be in there in order to develop a “Lean” team, but let’s keep it as simple as possible (for now). As I meet and discuss DevOps with IT people around the country, the same questions keep surfacing. “What is it?” being first, of course, but once that’s been defined in a manner that speaks to the audience at hand, the next question is almost always “How do I get started?”.
The process is different for every organization in terms of a bottom-up or top-down approach. If management doesn’t quite get it and falls more into the “Approver” bucket rather than the “Obstacle Destroyer” bucket, it may take a rogue group of forward-thinking leaders, entrenched in the day-to-day battles, speaking up and not only explaining the world as they know it, but demanding and driving the necessary change.
I’m not talking about trust-falls, bean bag chairs, and ping-pong tables thrown into some dark corner of the office for employees to “use wisely”. Culture starts with the people. Hire the person, not the resume. Make it a priority. Choosing not to makes building a good company culture really, really hard. Are you spending 8+ hours of your workday with people that you’d just as happily spend 8 hours of your free time with? Pro-tip: you should be.
You don’t have to be a coding genius to find ways to automate and get things done quickly with little-to-no-interaction. Once your team has figured out that they can script automated deployments of infrastructure, you may find that their happiness (not to mention efficiency) has increased – along with their Ingress levels. The wheel has been invented. Time to jump on board and ride this puppy. Why repeat the same steps over and over again when you can trigger something to do all of the work for you? Afraid of losing your job by automating yourself out of things to do? Trust me, there’s plenty to do and lots of things to innovate. I WANT MY FREAKING HOVER BOARD!
Measuring what you’re doing immediately and consistently is important for so many reasons. It’s how you know if you are progressing towards your goal and also, how you spot potential problems. What worked? What didn’t? Measure all of the things. Celebrate your improvements. Understand your failures. Our COO recently wrote a post about interpreting metrics, which is hard to do if you don’t have any.
This concept goes far beyond just throwing your team on to a chat client and hoping that they all start interacting with each other. Part of this speaks to the culture piece referenced above but the larger idea is about creating an environment where your team feels compelled to openly share everything that they are doing. Any good company inherently has shared goals, shared priorities, and shared problems. It only makes sense for the same team to share in the process towards achieving, addressing, and solving them. Mailing groups, internal wikis, and of course chat are all easy first steps, but so much more goes on that can be shared.
Take the code, for instance. Teams ought to be storing their codebase in a repository for all (on the team) to see and access. Engineers should have their efforts “code-reviewed” by peers. Tools like GitHub make it very easy to accomplish this with very little effort, allowing for more sets of eyes on the code. Sharing the knowledge of the greater group provides efficiency and promotes learning and improvement across all departments and teams.
At face value, it may appear that these four elements may be fairly easy to institute, and for some organizations, they are. However, to truly implement a DevOps culture, it starts with management. If management doesn’t see the value in the movement, it’s going to be tough to get traction on any of this. However, with the right approach, a DevOps culture can be built from within, allowing for a smoother path towards the rest.