Why do companies hire people to be idle a lot of the time?

Monday, November 27, 2023

The biggest tech companies employ a lot of engineers. In 2021, Microsoft employed over 100,000 software engineers. That is just mind boggling scale to me. It's roughly as many people as the whole county I grew up in.

They are paying a lot of engineers. Some of them do very little, with employees saying they "were paid to do little-to-no work"1. So... why are they paying them if there isn't a lot of work for them to do?

There are a couple of theories for this. The one I hear most often is that the big tech companies employ people to keep them off the market. There might be some truth to that, but I think it's a small portion compared to another very reasonable explanation.

Let's take a step back and use everyone's favorite software engineering reference: constructing physical infrastructure, like bridges! I'm not comparing the two fields, but we can observe similar dynamics at play with construction crews. We've all seen the construction crews where one person is operating machinery and four are standing around watching. So the same question comes up here: why are they paying them if there isn't a lot of work for them to do?

In the case of construction crews, I think it's quite obvious that they're not paying them to keep them off the market. So there has to be another dynamic at play. Most of the time, when we see people idle at a job site, they're actually either resting, waiting to be able to do their work, or supervising and inspecting. But some of the time, you really do have a lot of people at the site to do nothing. It's that last part that I think is the key at play here in software, too.

There are multiple metrics you can optimize for in construction projects. Among these are total resource efficiency and total timeline speed. There is a trade-off between these! At the two extremes, you have:

  • Maximize resource utilization and schedule crews based on when the work for them will be available. This increases timelines, but has better overall resource utilization by sending people only where they can be fully utilized, but that means the job site grinds to a halt when crews are not currently available.
  • Minimize timeline by having everyone available for their portion immediately. This reduces total utilization of any individual worker, but also dramatically shortens the job because whoever is needed is always already available.

This sort of schedule compression is available for high-priority construction projects where it's essential to get it done as fast as possible. It's also very expensive, so it's not the typical mode.

I think big companies do something similar in tech. It's not a perfect comparison, because companies also do have a lot of inefficiencies and the processes don't maximize for total throughput of features, but I see two modes:

  • Startups (and other resource-constrained companies) often maximize utilization of employees, so some features and products take different timelines but everyone is at maximum utilization
  • Big companies (without cash resource constraints) maximize for other metrics so employees have more downtime. This slack allows the company to achieve other metrics by having people available at a moment's notice.

This isn't the full picture2—nothing ever is—but I think it gives a reasonable intuition for why idle engineers at big tech aren't just being kept off the market. It's often the case that there's some other metric being optimized, not individual employee utilization.

These companies have a lot of resources that they can throw at problems. If there is a metric they want to optimize, it's a viable approach for them to hire a lot of people to be only somewhat utilized in order to achieve that other objective. And that's why you see can this trend reverse in leaner times. The big tech companies have started to value full utilization more during this economy, since they are more cash constrained than previously.


1

From BusinessToday.

2

Other factors that also lead to idle engineers are prestige and budgets. It's considered prestigious to have a bigger organization reporting to you, so managers have an incentive to grow teams and departments even without work for them to do. And budgets must be used or else they'll be reallocated, so keeping and growing your headcount is a way to defend that budget for the future.


If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.

Want to become a better programmer? Join the Recurse Center!