Dev and Ops are verbs

The term DevOps is commonly thought of as a portmanteau of two nouns, developers and operators. It should be thought of as two verbs, developing and operating.

Developers and Operators (bad)

If Dev and Ops are people, that leaves a lot of people out

role-grid
Not sure of original credit, oldest use I could find – https://imgur.com/KMM8q

You’ve probably seen this image showing how different roles in an IT organization view each other. The image is often used to demonstrate why developers and operators don’t get along. It’s entertaining, and also fairly accurate. It also shows one reason why thinking of Dev and Ops as nouns is a problem.

There are a whole lot of roles missing, not to mention the fact that very few people have a job title of “operator” anyway.

It leads people to think we need even more words

I think this is a big reason why we see things like DevSecOps and DevQAOps and so forth come up. If someone is recommending a change that only involves developers and operators, it’s natural to want to know how all of the other vital functions are going to get done.

Including those roles is important, and it’s also what was intended from the start.

Developing and Operating (good)

Developing software is a team activity. That team should have a wide variety of skills.

Verbs are more inclusive

devops-definition
My definition of DevOps

All too often people with job titles such as QA are left out of key conversation and decisions. Telling them you’re transitioning to a culture which focuses on developers and operators understandably results in them feeling excluded.

Tell them you’re transitioning to a culture where cross functional teams will be developing and operating the software from here on out.

I’ll take security as an example, even though I’m far from a security expert…

Security isn’t something you do after the application is done, it’s something that needs to be baked into what you’re doing from the start. It affects every part of your application. Decisions you make about which libraries or components you’ll use, integrations with other systems, the deployment platform, who has access to what in the data, how you’re going to manage the data, and on and on and on.

Metrics that aren’t evil

People focused on specific roles are given metrics which are locally optimized. How many bugs you found, lines of code, story points completed etc. These metrics aren’t aligned to business goals, they are just things we can count. Local optimization is almost always bad.

When you have a team developing and operating a system you can use business goals as your metrics. Did that change we made to the e-commerce site result in more sales? Yes, awesome, let’s build on that. No? Also awesome, the whole team knows we should focus on something else.

This helps avoid creating yet another role

When we think of DevOps as combination of roles, it’s possibly a natural next step to create a new role which represents that bridge. Also, the “DevOps engineer” job title is born.

I’m not going to turn this into a “DevOps isn’t a role” rant, but it’s not.

Work together and make great software

Let’s focus on developing and operating great software. Let’s include the right people at the right points and stop worrying about their job title.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s