loading...
Cover image for What makes a 10x Developer?

What makes a 10x Developer?

dvddpl profile image Davide de Paolis ・6 min read

10x developers are the mythical creatures of our times.

What are they? What do they do to be so special?
What does 10x even mean? A 10x developer is someone who is (thought to be) as productive as 10 others. He/She would, therefore, be able to produce 10 times the outcome of their colleagues.

What are we really talking about?
Of course a Senior Engineer might be 10 times more productive than an intern but would it really be possible among colleagues with the same years of experience and at least on paper the same level of skills?

Often when reading about Performance and Productivity in Teams you will find stuff like the Pareto Law and the Gaussian Curve. (also referenced as Power Law and Bell Curve).
Pareto law is the famous 80-20 rule, valid for almost everything: from wealth distribution and global inequity to time management and productivity.
When talking about Team Performance it results in :
80% of the developers do only 20% of the job. This means that the remaining 20%, the Top Performers, are able to complete 80% of all the tasks.
The Bell curve is often used to describe the distribution of employees ability to perform, stating that around 80% of the employees are positioned around the average while the rest are either top performers or bad performers.

pareto

However we might look at those graphs and numbers, the difference between the best performer and the worst performer in a team can be huge. Maybe we are just referring to that when we talk about a 10x dev? Or we should just consider the difference against the average of the other dev. Whether such a thing would be statistically possible or not we can´t deny some developer are in fact way more performant than others.
So where is this awesomeness coming from?

Is it because of years of experience? Not really.

10 years of experience could simply mean a 1-year experience repeated 10 times.

If you are stuck in the same job doing the same task every day, every year and if you don´t feel the urge of stepping up and learn new things, you may be surprised when a regular dev with only 3 years on his resume is blazing fast and knows more than you ( not only on the latest coolest tech stack).

Is it because they work till late and don´t have a life? Not really.

A 10x dev is not grinding long hours. It does not mean work longer. It definitely means work harder but mostly in a smarter way.

I am far from being a 10x dev, but in my career, I had the luck of meeting and working with at least a couple of such amazing individuals, and i can tell these are some of the traits/qualities they had in common:

Work on the right things in the right way

Effectiveness and efficiency:

Being effective is about doing the right things while being efficient is about doing things right.

Well, 10x devs normally do both. They don´t waste time doing unnecessary things in the most perfect way. They get the right things done, in the (enough) right way.
This can be achieved by:

Ask Questions

why

Sometimes bad requirements, unclear specifications, and wrong assumptions can make you waste hours of developing time. Not only you will have to readjust your estimates or squeeze in the rework, but it can also be very frustrating having to throw away all the amazing code you just created.

how

If you are stuck, if you need help, ask for help. don´t ask for a solution, ask for a hint, for guidance, for a tip that can lead you to find out the solution on your own. don´t be afraid. you are not supposed to know everything and it´s good that you show you are eager to learn.

Be focused, avoid distractions

How much time do we really spend watching youtube, checking our phone, replying to friends on WhatsApp or Snapchat, or simply scrolling Facebook wall?
what if I tell you, you spend 1 to 2 hours a day on them? check the usage of those apps on your phone. you will be scared. (you can use apps like this to prove it).
We don't necessarily have to quit on all that. Just recognizing how much time is wasted on these things, when we are supposed to be productive is the first step and then we can use tools like Pomodoro technique to help us stay away from social networks and smartphone and keep the FLOW for at least the entire duration of a Pomodoro timer.

Social Network distractions

I am not even saying we should not take a break, it´s more being really aware of where our precious time is being drained. (even though definitely it´s better to stand up, have a walk, a chat with a colleague, go and play kicker or table-tennis for 10 minutes, rather than checking Facebook. Give your eyes and brain some rest off any screen!).

Having a break, slack off for a little while can actually increase your productivity

Use tools that speed you up, learn shortcuts

What we do mostly is typing and clicking, it seems crazy but you can really become superfast if you start using shortcuts in your IDE and if you use the Terminal / CommandLine extensively. Running grep version package.json is much faster than going to the Finder, click on package.json open and then read the version parameter.
Typing

git stash 
git pull 
git checkout -b my_new_feature 
git stash pop


is waaaay faster than doing the same thing with any visual tool.

You may think that´s just shaving off seconds, but to become a 10X dev every second matters (and anyway staying away from the mouse is good to prevent Carpal Tunnel Syndrome)
Here you can read about some tools and tips that help me writing and debugging code better and faster.

fast typing

Be eager to learn

The amount of information out there is huge. Sometimes you have to pay for it, most of the time is free. There are no excuses to not spend some time in personal development. Read articles, listen to podcasts, watch tutorials and follow online courses. It does not even have to be always about coding - otherwise one could argue that indeed a 10x dev spends his entire day "working" - ( for example I find Getting Smarter Every Day and You are not so smart very mind tickling).
It is more an attitude, a state of mind. The curiosity, the thirst of knowledge sets the difference from the average.

Surround yourself of Top Performers / Find a Mentor

Being the fastest, smartest, most skilled developer in your team might be good for your ego, but it is not for your growth. As comfortable and fulfilling it might be, try to never be the smartest person in the room, and always look out for people that are very good at what they do, that are better than you and stick to them.

Give back. Share your knowledge

As soon as you learn something, try to help someone else, teach other colleagues, share your learnings.
It can be giving some advice after your daily standup, making a short presentation to your team, writing a blog post or becoming a mentor on an online coding platform.
Never be arrogant or irritated to someone that knows less than you.


If we consider all this, of course a very good developer has solid strong programming skills, but what can really make the difference are passion, attitude and some soft skills.
The colleague to whom I looked in awe and inspired me the most in improving myself were highly motivated and skilled, and of course super fast in their tasks: nothing seemed to stop or scare them, if they didn´t know something, they researched it for a couple of hours and then felt confident enough to take ownership of the bug fix or feature. And on top of that, they wrote documentation, organized workshops or mini presentations as soon as they found or learned something that could be beneficial to any other team members. They loved to share.

And in the end, I believe that this could be the real multiplying factor. Sharing knowledge, fostering growth, being an example of passion and hard work, is what really can have an incredibly positive impact on other people and raise the bar in the performance of a team ( even if made of just "average" developers).

keep raising the bar

Posted on May 11 by:

dvddpl profile

Davide de Paolis

@dvddpl

Sport addicted, productivity obsessed, avid learner, travel enthusiast, expat, 2 kids. 🏂✈🚞🌍📷🖥🤘👨‍👩‍👦‍👦🚀 (Opinions are my own)

Discussion

markdown guide
 
git stash 
git pull 
git checkout -b my_new_feature 
git stash pop

Combine the last two into git stash branch my_new_feature (documentation) and you're well on your way to becoming a 11x developer ;-)

BTW, I understand those two are not 100% equivalent in this case, but speaking of small improvements this is one that surprisingly few people seem to be aware of.

 
 

10x developers are a total myth. If you want something done really fast, find someone who's done that thing before and bring them on. If you really look at "10x" developers, this is all that's really going on. Put that same developer on something new and they'll slow down to the same place as someone else with comparable experience. We really need to stop perpetuating this myth.

 

I started the article with that exact statement. :-)
as I wrote further on, I don't know or care if the devs I met and admired were really statistically
10 times faster. they were definitely faster than me and other devs in my team, they were faster doing stuff they new and they were faster learning new things.

because they were focused, they had a positive attitude, they had a learning method. of course while learning they were slower than someone who already had experience on the topic- but that is not the point. knowledge gets outdated pretty fast in our field, being able to quickly switch/unlearn/ learn new thing is as important as being already fast at something.

 

Personally, I feel that a lot of being a "10x developer" comes down to motivation. Happy, motivated (and well-paid!) developers are much more likely to eagerly contribute to projects and get ridiculous amounts of work done.

When I feel respected by a company, I find that I achieve flow state much easier and I don't even want to leave the office at 5. When I don't feel respected, the entire day is a drag.

 

absolutely. same for me. one important aspect though is that often motivation come from ourselves not really from the company, and even money and acknowledgment can come after some time. I saw many times people complain about the company, the tasks the money and do nothing to change - and instead, take it as an excuse to slack off.
but indeed a company - or some tasks - can definitely demotivate.

 

Interesting what I'm really interested is do you encounter them in high performing teams while encountering these 10x developers?

Cause it just gives me a perception that they might not be great at working as a team.

 

probably i was very lucky. but they were very good at working in the team, as a team. as I said I believe that above all, the real multiplying factor is actually be a skilled and fast developer with soft skills / attitude which allow motivation knowledge and personal growth to be boosted in others.

 

Awesome it's a great to know about it :)

 

I did a bit of research on where the notion of the "10x developer" came from.

They did compare (not many) devs of similar experience levels and figured out that some devs AVERAGED over 10x more productive than others across a variety of metrics. (Some individual metrics were much h higher)

However, measuring productivity and true value is hard and the metrics, sample size, and test methodology are all highly controversial.

I tried to sum up those controversies a while back on dev.to: dev.to/thejoezack/4-reasons-why-th...

 

very interesting article you wrote. :-) lots of links for further reading.
and I agree with you measuring is hard. often controversial. still, like you, I am interested in my personal growth and don't care much if 10x devs exist or not - or are just 3x the average. I just want to become better and faster - without giving up quality.

 

Same here, I want to be better at the stuff that's easy to measure AND the stuff that isn't!

 

I don't consider that someone can be 10x better/faster/more efficient at being a developer but I do agree that better developers generally share most of the traits you're referring to.

The only one I am a little more contentious on is the one about shortcuts. Sure, I wouldn't be anywhere without the cut/copy/paste/undo/redo etc type shortcuts but being an efficient and effective developer is less about how fast you type something. I'm thinking about what I am going to write more than I am spending the time writing it. If I was able to type or do some action even faster with less clicks, the improvement would be negligible in the grand scheme of things. If I could improve my speed in working out what I want to write next, then I'd probably have a larger efficiency improvement.

If just looking at it on an automation aspect where someone can turn a 30 minute task into a 30 second task, that totally is a trait of a good developer.

 

sure. that part is absolutely minimal. i just wanted to point out the speed at typing, debugging, using shortcuts, navigating through screens is also important and can be the trigger of self improvement, since it´s the easiest, quickest to learn and with more immediate impact) and because at the beginning it was one of the first thing i noticed of these magical devs. i was pair programming and ... bam almost i did not even have the time of seeing what they were doing :-)

 

I'm more interested in who than in what, so I was thinking about how to spot those mythical 10x creatures in a team. Here's an easy enough to try idea to gradually find them within a company.

Give a developer 3 or 4 weeks vacation and assess the progress of their team right before they're back. In a couple of months all 10x devs should be located. ;-)

 

yes. this is absolutely true :-)

 

What if you are a 1X developer but you do such a good work that you make your other 5 team mate 2X so now you have become a 10X developer only the metrics show you are only 0.5X developer and have half the performance of your team mates :))

 

ah ah! true :-)
but i never meant that the 10x performance is really measured or measurable. is more the overall impact you have on the team. imho you could be a 10x dev as well if you are working at normal speed on your task but really helping out others in the code design phase , or when they are stuck.

 

I have no love for many of the labels thrown around our community. This desire to label people as if they where unit tests furthers the imposter syndrome we all feel, it exadurates the issue for juniors and raises abnormal expectations for everyone, how fast can I type, do I fit in here, everyone is much smarter than me, look at that girl she's a 10x developer, how can I best that. I know many outstanding developers but I can ring around them in JavaScript land and they can run rings around me in Java land, but when it comes to problem solving we can be equally stumped.

I never felt ashamed when working with such developers, instead, i was really motivated to learn and improve. exactly thanx to their attitude.
how we might feel when comparing to others, if we put too much pressure on ourselves and if we have imposter syndrome does not depend on the labels around.
( but i agree, those labels, expecially if used by recruiters are quite annoying)

 

Now only if we were paid 10x average rather than 10% more.

 

Rockstar wizard 10x mega ultra zord.

 

One of the best articles I've written. Well reported!