The Purpose of Support Roles

“We seem to have a lot of people looking after work and not a lot of people actually writing code…”

People struggling to understand the purpose of management

A phrase I’ve heard a number of times over the years, and a frustration I can completely understand: why do we have all these people just to help a couple of people/teams do some work? Why can’t they help out with the work itself?

To explain, I’d like to take you along a very similar parallel: Scaling Infrastructure.

When we talk about lateral scaling in Infrastructure, there are some commonly accepted truths; if you want to do it, you’ll need:

  • Load Balancers (to direct work to the right instance)

  • State Management (so that different instances can share information)

  • Load Monitoring (to know when to scale/reduce)

  • Infrastructure Management (to actually scale/reduce when required)

  • Various other bits and pieces required to keep the whole setup ticking over

None of these things are required when you have a singleton instance, but as an industry it’s accepted that this is the (worthwhile) compromise of wanting to scale laterally.

The thing is, the same also holds for people and teams. Want to scale your department by adding more teams? Want to be able to direct work flexibly across those teams based on need? Well, you’re going to need people doing exactly the same thing:

  • Load Balancers (to identify the right people/teams)

  • State Management (to keep track of who’s doing what and avoid clashes)

  • Load Monitoring (to manage the workload and stress levels of the teams)

  • Infrastructure Management (to assist/step in when teams need support in not taking on more work, and orchestrate recruitment based on load)

  • Various other bits and pieces required to keep the whole setup ticking over and keep people healthy

It’s not waste, it’s a necessary consequence of an approach to scaling that looks laterally and focuses on resource utilization. If you want to scale without having these roles, try thinking about how you’d do it with infrastructure! It’s not impossible, but it requires a fundamentally different architecture.