Redefining the term '10x Developer'

12 May 2022 - Productivity

TLDR; - The term "100x Development" is better because it focuses more on the nature of software development, not an individual. And the 10x is just too small of a multipler.

I was recently honoured to be a guest on The .NET Core Podcast to chat with Jamie Taylor about developer productivity. The full episode can be found here, or in your favourite podcast app.

In it, I asked Jamie what he thought of the term "10x developer" - which is a term I hear thrown around quite a lot. Here was his reply...

"If I'm honest, right hand on heart, I hate the phrase. 10x when compared to what, right? You can't say 10x when you haven't described what a 1x is, right? I think that is used by people to sort of say I'm better than you. And in a team, you don't want a superstar, you want a bunch of people who are all working together. And so if I was working in a team with someone who was a self-proclaimed 10x developer, I would try to avoid them as much as possible."

I found this a really interesting angle, and as I thought about it afterwards - I realised that the problem with the term, is the word "developer". Okay, that's not the only problem - eg. productivity isn't a linear sliding scale, so what does 10x even relate to - but let's ignore that for now.

The thing I do like about the term is the 10x bit. Or 100x. Or 1000x. And I'm not talking about an individual developer being 10x either. I'm talking about the nature of tasks in our industry being 10/100/1000x depending on how you go about that said task.

Here are a few examples...

  • You need to fixup namespaces across your entire solution. Do you do it manually in each file? Or do you hit a keyboard shortcut so your IDE does it for you in seconds? How many X is that? 100+ maybe?
  • You spend 2 months building a feature. Or you discover a library that does it for you. 2 months vs 1 hour? 300x.
  • You have a process that's repeatable and needs doing often. You manually do this process each day for the next few years. Or you automate it to get all that time back. 1000x?
  • You have a performance issue in your app. You manually try to work it out by putting logs and timers in code. Or you've previously learnt how to use a profiling tool which very quickly gives you a detailed analysis of what's going on.

As you can see - in software development, there are massive multipliers to be had depending on how a task is done. A developer who knows more of these things, will be more productive - but I think the term "10x developer" focuses on the wrong thing. It focused on the individual, rather than the tasks themselves. So I think "10x development" is a much better term, which focuses more on the act of software development, rather than an individual. The "10" bit could perhaps be changed too, as it can be way more than that. So let's change that to 100x - as the point is that it highlights the very high standard-deviation in time taken to complete a task based on how that task is done.

Basically, work smarter to be more productive. I don't know where the term "work smarter, not harder" originally came from - but if there's one industry where this applies to more than any other - it's software development. As developers, we have so much opportunity and power to automate tasks, leverage IDEs and tooling, and complete tasks WAY faster.


Recent Posts

Featured Posts

.NET Oxford Links