Tony Robalik

Business geniuses and bus factors

Broken down bus under the stars

Photo by Jake Weirick on Unsplash

I was first introduced to the term bus factor about five years ago, by my then-manager. As it was explained to me then, "bus factor" means, if you're hit by a bus, who else understands the systems you manage well enough to take over their management in your (ostensibly regrettable) absence? If the answer is "no one," then the bus factor is one, and this, my manager informed me, was a problem to be solved.

There is of course something inherently hostile about this framing. If I die or am permanently disabled, what will the business do? The answer "I don't care" is not considered acceptable.

The positive spin on this framing is that we should write self-explanatory code, write good documentation, pair program to spread knowledge, mentor junior colleagues, etc. And insidiously, this is what the best of us want to do anyway—lots of coders love sharing knowledge. The internet is full to overflowing with blog posts, tutorials, youtube videos, discussion forums, open source projects.[1]

Nonetheless, the implication is that good employees should seek to reduce themselves to interchangeable widgets, i.e., to make themselves redundant.

How's that going for us?

My response at the time was to file that term away in the part of my mind labeled "dumb concepts," but I nevertheless did all the good things anyway, for all the usual reasons: I like helping others, and I also enjoy writing and self-promotion (those are the things that secured me the job in the first place, after all!). This was 2021, and the then-most annoying thing in software was crypto. The notion that my work would be replaced by blockchains was laughable.

Years passed, and it ultimately became clear that <former company> never actually cared about the "bus factor." Despite being a load-bearing senior engineer on a team of load-bearing senior engineers, I observed firsthand how infrastructure teams were systematically undermined through understaffing, constant reorgs, and constant pressure to paper over significant deficits in old code that accidentally still worked.

The corollary to "show, don't tell" is "observe, don't believe press releases." Systems are what they do, and these systems really hate having employees. Business geniuses are now ascendant, buoyed by years of ZIRP, low taxation, and now a new toy. Using so-called "AI" as the excuse, these t-shirt clad Everymen have declared the end of the bad old days (of paying highly skilled employees) and the arrival of a New Era of Productivity.[2] According to jobloss.ai, nearly 90,000 jobs have been lost worldwide (75% in the US) with "AI" used as the reason, with more to come.

Businesses don't want humans with expertise, who may in fact be irreplaceable. But what about the bus factor? The point of that frankly disgusting metaphor is that redundancy reduces risk, and less risk is presumably better than more risk, especially in highly regulated industries (such as the financial industry, an example I choose for no particular reason).

Nonetheless, as we can observe, businesses have abandoned concerns about the bus factor and continue to double down on a Just In Time approach instead. More efficiency, less redundancy, more (short-term) profits, and more risk as well. I fear a lot of it is externalized onto society. We're entering a new era. In this new age, with a software landscape perhaps irremediably infected[3] with slop code that no one understands, we no longer have to be concerned about bus factors of one. The new bus factor is zero. For math nerds who also enjoy an extended metaphor, this means that the risk from this code is literally incalculable.


  1. Or was. Now it's chock full of sloppy approximations of human knowledge. ↩︎

  2. Good luck getting them to define what they mean by "productivity," though. ↩︎

  3. Is slop code software's long COVID? ↩︎