Talking about a DevOps team may seem like an oxymoron. The point of DevOps is to knock down walls between dev and ops. In fact, in many companies, it appears that "DevOps" has become little more than a new term for the operations team. This is not the right way to approach DevOps.
At FP Complete, we do have the concept of a DevOps team, a DevOps engineer, and a DevOps project. These apply both internally, and for our consulting work. This article will explain how this works, why we think it's a good idea, and how we avoid being an oxymoron.
In the ideal world, every engineer on every project would have full knowledge of every component used in the project. For various reasons, we don't live in that ideal world. Instead, people have specific experience, passions, and limited time.
A DevOps engineer straddles the fence between dev and ops. In our FP Complete world, a DevOps engineer is capable of coding an application, and may even regularly do so. But the DevOps engineer also understands the network stack, the CI/CD pipeline, various tooling, and more.
The job of the DevOps engineer isn't to be both a dev and an ops person. The job is to establish a strong connection between both.
Once we have a DevOps engineer, the question of how to place them on a team arises. For small companies, it makes perfect sense to have one or two DevOps engineers embedded directly with the dev team. However, at FP Complete, we do have dedicate DevOps teams.
However, these teams do not function like a siloed operations team. Instead, these teams are responsible for:
And that last bullet is the key point. While we keep a separate DevOps team, the goal is ultimately to integrate these engineers directly into projects. This makes sense at our scale, where we need a core team focused on DevOps in a holistic sense.
For typical projects, and companies doing less dedicated DevOps work, having a separate DevOps team is an oxymoron. It's more valuable to deeply embed a DevOps engineer with your projects.