Bencz code or something like it

Where Are All The 5x Engineers

No figure in the modern software industry is more sought-after than the “10x” engineer. Possessing productivity well in excess of a mere mortal, this mythical beast is the basis for numerous articles.

A lot has been written about “10x” engineers and whether they exist already and I’m not going to explore that particular issue. Instead, I think it’s interesting what the rise of the meme of “10x” (AKA ninja or rockstar) engineers says about software development as a discipline. Hint: it’s nothing good.

Why 10x?

I think it’s pretty well understood that measuring productivity in knowledge work and especially in software development is tricky business. Over the years, numerous heuristics have been developed for measuring programmer output - including lines-of-code, function points, bugs closed, commits made, value added, and the venerable “time spent in seat”. A “10x” engineer is presumably 10 times more capable along one or more of these axes[1].

10x is a big difference though, in fact it’s an order of magnitude. The choice of 10x as the dividing line between average and great says a lot about our ability to measure differences in ability with any precision or nuance. Can the average startup differentiate between their 2x and 4x engineers? What about 5x and 9x? These are substantial differences in skill that will absolutely affect product schedules and quality.

At some point, the focus on 10x becomes harmful. Being able to identify your 10x, A-player, ninja, rockstars is great but as an organization grows it does not necessarily solve the problem of keeping the rockstars around, nor does it help you best utilize the rest of your team.

Engineers Don’t Grow on Trees

So where do 10x engineers come from? Tellingly, most of what I’ve seen written on 10x engineers is about finding and hiring these individuals and not about creating them.

I’m a big believer in the idea that human ability is - especially in the realm of the mind - is malleable. It’s highly unlikely that 10x engineers are simply born, fully formed. Certainly some minimal aptitude for math and logic is required for good programming, but the skill to quickly write complex software requires experience. Many of the engineers who are 10x straight out of college, probably earned their abilities through curiosity and late-night coding sessions in high school. Their peers who started software may be just as bright but lacking the experience needs for “10x” performance.

Given this, the world is probably full of 2x and 5x engineers who, with the right mentoring can become the 10x engineers everyone seeks. It seems curious that this approach is not more common.

I think the unfortunate reason for this is the short-term focus of the current Silicon Valley culture. You don’t have time to develop a 10x team out of promising 2x candidates if your product has to be profitable 6 months from now. But for big-idea products, where the technology will take years to develop and mature, starting with less-experience engineers and training them up seems like a natural choice. As the technology grows so does the skill level of the team.

Problematic Framing

The way that the talent acquisition problem has been framed in the software industry - as a matter of finding and hiring rock-stars - is unfortunate. While software is a technical discipline, I believe it is also a craft and if software is indeed eating the world we are going to need plenty of “10x” engineers for projects whose time horizon exceeds the next 6 months.

[1] Of course it’s possible that someone talking about a 10x engineer is measuring productivity using their own subjective metric.