Bencz code or something like it

From Intention To Action

I think it’s fair to say that everyone has ideas. They are the lifeblood of the mind and the foundation of hopes and dreams for the future. I think it’s also fair to say that most ideas don’t make it out of the individual’s head. Eventually you forget the specifics of it or why you thought the idea was important in the first place.

What’s that smell?

The problem is lack of execution. When ideas are allowed to persist as pure concept, they begin to rot. Like the unfortunate chipmunk that made it into your crawlspace - only to die - ideas trapped in your head start to decompose and stink up the place.

Say you have an idea for a blog post - initially, it’s fresh and new and full of creative potential. However just like no plan survives contact with the enemy, no idea is so perfect as to survive execution. What seemed so clear and elegant in your mind becomes gauche on the page. But that’s exactly the point! A fully formed idea in your head does not have room to grow, change, and adapt (it is, after all, fully-formed). The act of committing it into the real world forces you to consider parts of it that seemed clear, but were just being filled in with fuzzy mind-stuff. And the process of resolving these deficiencies allows for the idea to grow in new directions - sometimes unexpected ones.

Breaking the Habit

A very real danger of letting ideas die on the vine is how it habituates you to think and act in a certain way. Having ideas that don’t go anywhere is not really a productive activity - it amounts to daydreaming. Years of doing this and the natural impulse when faced withan idea is to do nothing. This means that when an opportunity to do something meaningful comes along, you will discard it like the rest of the ideas in your head.

If this is already you, realize that there’s always a way to change and grow. Namely, you have to execute. It might suck at first and people may not like it or understand it, but the first priority is to break the habit. Competent execution will come in time - as you get better at doing whatever it is you’re trying to do.

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.