Solving staffing challenges with concentric circles
Instead of resolving from the top down, start with the inside out.
As you begin to lead organizations that are of a reasonable size, such as in the hundreds of engineers, you will find that staffing is one of the most repetitive and challenging aspects of your job.
Ensuring that you have enough people focused on the right things, with the right skills, and in the right places is a never-ending task. It is also by definition unsatisfiable: you will never have enough people to do everything you want (or need) to do, and you will never have the perfect mix of skills and experience either.
Organizations of this size typically span a wide range of products, technologies, and geographies, further complicating the issue of having the right number of people working on the right things.
You’ll have production code that needs to be maintained, new features that need to be built, and bugs and support issues that need to be addressed. It’s a balancing act.
When inevitably a team’s project pivots, expands in scope, or is just plain harder than expected, you’ll be asked to provide them more people to help. However, this isn’t straightforward as everyone else is equally busy. If you find yourself in wartime it may be the case that you can’t rely on hiring your way out of the problem either.
So, let’s imagine that one of your 30 teams is asking for more people. What do you do?
Stack ranking: it’s not that simple
Before we think about what to do, perhaps we should imagine ourselves in that team’s shoes. What are they expecting you to do when they ask for more people?
If they have a new and important thing to do, they may assume that you will prioritize their work over other lower-priority work, thus allowing people to move from the less important thing to the more important thing. This assumes that you have a continual stack ranking of all of the work that needs to be done at any given time and that this team’s work is somewhere near the top of the stack.
It may be the case that you have a stack ranking like this. And if you do, good on you. However, if you’ve ever tried to do a stack ranking of, say, hundreds of projects and teams that span multiple products and pieces of infrastructure, you’ll know that it soon becomes quite complex: how do you compare scaling infrastructure with a new feature that could drive revenue versus another new feature that could unlock some big strategic deals?
These stack rankings also often rank ongoing projects and initiatives and do not always take into account the need to maintain and improve existing products and services, which is especially true in SaaS: nothing is ever really done, it is running in production and needs to have a base level of maintenance and improvement over time.
Instead, many organizations operate, often implicitly, on a pool of investments approach: there are X products or services that exist in production, spread amongst Y teams, and your optimization is to ensure that those products or services are being maintained and improved in a way that is consistent with the overall strategy of the organization.
This is a much more nuanced approach than a simple stack ranking, and it is often the case that the right thing to do is to not move people from one team to another, even if the other team’s work is more important, since it leads to an unacceptable level of entropy in the overall system.
Stack ranking taken to the extreme can lead to a situation where the pool of investment approach breaks entirely: you could argue that whatever the top 3 projects are, they should get all of the staffing, and the rest should get nothing. This is clearly not a good strategy as everything else would need to be abandoned.
Given that you are likely operating in a pool of investments model which is more nuanced than a simple stack ranking, is there a more nuanced way to think about staffing challenges?
Concentric circles
When you are faced with no obvious way to solve a staffing challenge, it can be helpful to think about the problem differently. One way to do this is to think about the situation in terms of concentric circles.
What I mean by concentric circles is imagining that the team asking for more people is at the center of a series of circles:
The innermost circle is the team itself which is asking for more people.
The next circle out is the team’s immediate neighbors in the org chart. They will typically share a common manager.
The next circle out is the team’s broader organization. This could be a product group, a business unit, or a division. This may be the org that you run.
Outside of the circle is the entire rest of the department, outside of your organization and control.
It looks a bit like this.
The idea is that you should try to sequentially work your way out from the innermost circle to the outermost circle, looking for ways to solve the staffing challenges at each level. You do this will the manager of each circle, asking them to help you solve the problem.
For example, this could look a little like this:
Starting at the innermost circle, you work with the team to see if there is any work that can be stopped, delayed, or de-prioritized to free up capacity without needing to add more people in the first place. You may be surprised at how effective this can be.
If the above does not work, then you work with the manager of the team and its immediate neighbours to see if there is any way that people could temporarily or permanently move between sibling teams to help out. One benefit of this approach is that the people moving are more likely to have context and have a shared mission or goal with the team they are moving to.
If that does not work, then you work with your direct reports to see if there is any way that people could move between teams in your broader organization. This is effectively what you would likely have been asked in the first place, but by working your way out from the innermost circle, you have a better chance of finding a solution that is more nuanced and less disruptive first.
If all else fails, then you work with your peers in the department to see if there is any way that people could move between organizations. However, this is the most disruptive and should be a last resort, and in large organizations, it is often the case that this does not work without further escalation.
There are several benefits to this approach. Firstly, from experience, you often solve the staffing problem by the time you’ve gotten to the second bullet point. This makes it faster to solve and less disruptive.
Secondly, and importantly, you are implicitly coaching your managers that you do not need to be the arbiter of all staffing challenges and that they should be working with their peers to solve these problems themselves with the trade-offs that they need to make. This is very healthy in the long run.
Next time you have a staffing challenge, try thinking about it in terms of concentric circles. If you’re on the asking team, why not think of solving from the inside out first?
Thanks for sharing this write up and putting a name to the practice. Using concentric circles to solve challenges without throwing money at the problem or creating additional drag on the org is really efficient. I have seen several managers use this practice successfully.