10x Programmers: Myth Or Reality?

Ashraf Alam on March 25, 2019

10x programmers are a hot topic to discuss in the software industry nowadays, so thought it'd be a good idea to share my view point in this regar... [Read Full]
markdown guide
 

"10x" wasn't originally an engineering term, but a business term.

The term is bullshit and you shouldn't be using it or trying to identify with it. If you do, you're just trying to make yourself look better than you are by gatekeeping perspective.

It was:

  1. Used for marketing, as a tool for companies/recruiters to convince devs that they need to adhere to some magical kind of standard to be able to apply to their company. Easy to keep the expert under control if you keep inventing new things and convince them to follow them.
  2. Used by non-tech managers who dealt with several types of software development professionals. One might've been a strong engineer/scientist who had a hard time communicating, while the other candidate was better at talking but maybe wrote worse code and made compromises in quality to get business results faster. To the manager, the 2nd got results faster (or w/ less friction).

To be perceived as a "10x" dev, ditch all of your preconceptions/prejudices/engineering habits and focus solely, and almost mindlessly, on the immediate business goal that affects the bottom-line.

Result in the commercial world is money and how efficiently you can get it, that's it. Not how good of a person you are, not performance, not scalability, not technologies or frameworks, not engineering.

Business doesn't care that they're spending €1k/mo on server costs while it could be only €50/mo because the original dev didn't "engineer it properly", because they can earn more money bringing on new clients.

(Until the point where the # of incoming clients is so high that they've reached a growth spurt and the scaling needs some % improvement to keep up.)

It's about investing yourself and putting yourself on the line to make results happen. Step out of the bounds of what you're taught as an engineer and stop trying to be just an employee. (Though at that point I'd personally recommend taking full responsibility and starting your own business.)

 

I don't really like the prefix of '10x' on anything, it's a (silly) business term that's now filtered its way through into our domain.

Firstly, I think that people should avoid any attempt to quantify their value over others, because what you offer is not some magical linear spectrum based on one single capability.

There's also a real hint of narcissism about it. Most tech places will have a structure in place, which will have senior/principal prefixes before roles. These gives a rough indication of seniority. This seems infinitely preferable, because it is representative of their abilities and experience rather than being a dogmatic self-assertion of some sort of quantifiable exponential value over others. You can be a prodigy programmer within a company, but to refer to yourself as a 10x programmer is still just a bit overly-confident and a bit silly.

Companies shouldn't condone the use of the phrase, either, and should stop using it in jobs specs.

 

I don't think coding ability alone defines a 10x programmer. In my experience they've been people that excel in a lot of other abilities, especially in soft skills, such as negotiating and planning.

The high productivity isn't about getting lots of code, but about getting the right code as well, and there's no way to do that without having good skills in all areas of programming, not just coding.

I talk about these other skills in my book What is Programming

 

nice post. and I agree with this comment too.
coding ability is just one part of being a very good engineer ( if he/she is 2x 5x or 10x who cares). of course, they make the foundation for it but as I also wrote in What makes a 10X developer the multiplying factors are others ( which as you said go more under the soft skills and being able to do the right things in the right way).
I understand that people get irritated by these marketing / recruiting buzzwords, but I don't get why they get so upset and can't just focus on the positive aspects of this "label" and use it for self-growth.

 

I really like the idea of 1% improvement. When you gradually tweak your skills and becoming better. For me the tipping point was wathching vlogs. Then I started to pick up some cool new habits here and there.

I do remember a video from @mpj where he was coding an offline Pomodoro Button. That hit me :)

I've recently shared my experice on dev.to:

How Failing With Pomodoro Technique Made Me 2x Better Programmer

 

Also I do believe into becoming 10x programmer. But where «x» is referred to yourself years ago.

 

And. Speaking for myself. What was NOT healthy for me — was comparing myself to «10x developers» (from a marketing point of view).

It made me worry and put some invisible pressure on me.

 

I imagine the people who string tons of frameworks, extensions, javascript doodads, and other forms of other people's code ( OPC ) would be considered 10x programmers.

Very productive, yet you end up with hollow bloatware that can't be maintained in the future..

I'd rather get into another profession if this became a standard way of thinking.. although it kinda already is!

 

Very productive, yet you end up with hollow bloatware that can't be maintained in the future...

That is not being productive. A productive developer is the one that generates good code, understanding good code as the one that is maintainable and extensible with ease, in a quickly fashion while giving and getting feedback from the other departments.

 

To be very frank, crude, and also "In my honest opinion" only (so add lots of salt)


There are a lot of programmers who are really bad. Like 10x or even 100x bad.

So as most pointed out, it ended up as a business term in larger companies. Especially nonengineering companies, who could not know better regarding programming.

Because due to their sheer hiring size - a good chunk of their developers ends up being really bad, or worse, being busy with politics rather than actual work.

So whenever a good programmer, is willing to ditch the political nonsense. Put his job on the line and risk. And get things done...

Suddenly from the average perspective in that company: he is truly 10x (Assuming he succeeded, if he didn't, he would be fired)

I personally witnessed many times as a vendor working for such big companies. Which is interesting to say per least, cause being in an engineering-focused company. We would not consider such individuals 10x. But I guess 2, or 3x technically? I have no idea how to quantify this.

So in that sense, they were 10x not because they were extremely great. But because the average was really bad. And they have the courage to stand up to it.

Also to be clear: For those in such a situation, and made it through. They automatically earn my mark of respect. Cause I will emphasize. It takes real courage to get things done in such an environment. And in development work, cutting through the crap and communication is a good half of the battle.

Personally, I would not stand for it. And send in my resignation letter for a real engineering company... or in my case form my own engineering company.

 

Nice article. I particularly like the distinction you draw between a programmer and an engineer.

My two cents to your three: big picture awareness and OCD-like strive for improvement (micromanaging the right things if it had to be one).

code of conduct - report abuse