What is a DevOps Engineer?
When people are hiring for DevOps, they tend to mean a few things:
Continuous Integration: Automation in compiling the application; downloading libraries and running tests.
Continuous Deployment: Deploying the Compiled Application safely and automatically
Infrastructure Engineering: Right sizing server infrastructure and monitoring
Platform Delivery: Installation and ongoing configuration of all the programs installed and configured on the servers used to run the application
Task automation: Creating self-service utility (a button) where possible:
- “I need the latest database backup”
- “I need to reset this dev server”
- “I need to run visual regression testing”
Introducing the Flow Engineer!
The term DevOps itself is an amalgamation. The organization has two classic silos, Development and Operations. However, what seems to adequately serve Development does not always adequately serve Operations.
It works on MY machine!
That’s great that it works on your machine, but if it fails to deploy to production effectively or adequately serve the market.. then its a BAD MEASURE OF SUCCESS. There is a stream in the organization through which value flows from conception to market. That stream goes through Development and then Operations. Recognizing the fact of the Value Stream, we must acknowledge that success in Development alone does not necessarily account for success in Operations and so does not necessarily account for success in the Value Stream. To remedy this, we must consider the Development and Operations silos instead as a single organization concerned with end-to-end success rather than local optimization in each silo. Let’s call this new organization DevOps!
Given the above semantic breakdown, a DevOps Engineer could be considered to mean one who integrates disparate organization silos, specifically Development and Operations. Such a role could be better labeled as a Flow Engineer, concerned with the Value Stream at large and its improved flow through the organization to the market.
In practice, I think DevOps Engineer is a fine job title for the way it is being hired in most cases as those functions serve to deliver end-to-end success in Development and Operations, but the semantic breakdown exercise has value to put it into an important context. Maybe still, one day it might be cool to get to hand someone a business card with the title Senior Flow Engineer!