In my hunt for the mysterious DevOps practice, I’ve been let down. DevOps are hard to find. When you find them, they do not exactly do what you think they should do. Some DevOps teams only execute on automation for dev; while others are operations folks with a new name; and still others are internal consultants helping operations and developers (but not actually doing the work).
In my DevOps scavenger hunt I have identified a new type of creature; shared services (aka the unicorn)
What I have learned about this mysterious creature is interesting.
While we normally think of DevOps as a function that combines both development and ops, we miss that DevOps also requires someone who is not in the weeds of development or operations. Someone who can look beyond the specifics and proactively seek new ways to enhance development processes for increased software quality and releases.
Where do shared services belong?
This responsibility is tricky, both tactically and operationally.
It has a somewhat vague objective, and is not necessarily tied to the results of one specific application. Organizations need to be opportunistic to build such a team. The group would have to behave similar to a consultancy, but focused on strategy and not execution.
Shared services is just this, and it has existed since before DevOps was a thing.
What do shared services employees do?
All the shared services personnel I have talked with had a consistent theme:
- Provide a library of tools, either the actual tool or the opportunity for it, to operations and development teams.
- Facilitate the cross pollination across those teams.
This means they have a keen eye on what is possible. They typically do not implement the tools, and they do not have oversight over all of them. For example shared services might recommend a log analysis platform, but the implementation and setup could be owned by IT.
In this particular example, ownership is changing. Developers are demanding more visibility into the applications relationship with infrastructure. It is problematic to implement both APM and log analysis without the connection. Today they have to request the information directly, which is disruptive both for IT and development.
Shared services can play the messenger.
If the eco-system is large enough this is necessary because operations does not know all of what Development is doing and vice versa. So, having that middle layer is nice. Especially in organizations that try to standardize tooling, which is a challenging in its own right. But, the downside is it does increase the gap, which is contrary to DevOps.
Building in consistency
In organizations where each dev group can choose and implement its own tools, shared services operates as facilitator for the groups inauguration, and a point of validation across other groups.
This functions like you took the strategy of DevOps and moved to its own group, which is pretty neat, but has a bummer of a requirement.
Is shared services only something large companies can do?
But the idea is something even small organizations can learn from. The dirty little habit of most dev shops is to only focus on a particular release, and the details associated with it.
Because of the need for speed, DevOps tools get implemented, but it should be the other way around.
DevOps should be created deliberately not reactively. Like the oversight of shared services, small groups can learn to adopt the approach of picking tools and processes for the pipeline not the problem. They can do this by selecting an individual to have the oversight, or collectively as a team.
The ideas are spreading
I’m really excited about the shared services idea, and what this is going to bring to so many large (often thought of as barred from DevOps) organizations. When shared services are added as a component, they can bring both strategy and execution under one umbrella. I understand this is idealistic; tactically it is hard to find the talent or time to allow for both strategy and execution.
Shared services is not DevOps in name, but it is the DevOps facilitator, and it has the proper amount of focus on what the organization is doing today, and what they can do in the future.