No, I am not a 10x Software Engineer
But I can get things done
I recently decided to go for a freelancing gig in iOS development. My first client asked me this question “I want to work only with the best people. Are you a 10x software engineer?”. I was taken aback by this question. I did not know how to reply to him. After a few moments, I replied “I don’t know whether I am 1x, 2x or 10x. But I can get your work done.”
I got the work and after 15 days the client was so happy with my output that he labelled me as a 10x engineer. This made me think what is this fuss about 10x engineers. Do they really exist?
The Myth of the 10x developer
Can a rockstar engineer do work which is equivalent to 10 mediocre engineers? I think so that this is a myth as this article points out in the correct way.
People love to say that a rockstar can do the work of 10 regular engineers. That’s just nonsense. 9 women can’t have one baby in a month, and 10 “rockstar” developers can’t replace 100 regular ones.
How do we measure programming productivity?
It is quite difficult to measure the productivity of a developer. Can it be measured by the time taken by the developer to pick up a new language or time taken by him to debug or refactor a piece of code? Can we predict it by the decisions that an engineer takes regarding the choice of frameworks or the data storage methods? I don’t think so.
I think the productivity of a developer must be measured by the value he can bring to his team. A rockstar developer who is hated by everyone in the team will prove worthless to a company. A mediocre engineer who can fit very well in the team and the culture of the company will prove to be much more valuable.
Not all companies can hire 10x engineers?
Even if we believe that 10x developers exist it is very difficult for every company to attract the top talent. As Zach Holman rightly points out in this article
Not everybody can hire exclusively top-tier people. And you know what? That’s fine. Quality of individuals is only one part of what makes an organization great. Sports is rife with examples of the nimble, well-connected team triumphing over the team of individual superstars.
Getting things done is better than achieving perfection
The Software Engineer in us always strives to craft a masterpiece of code. I never got a Computer Science degree, but I am still obsessed with writing the most optimized and well-structured code. But sometimes due to constraints of time or money that may not be required.
We must have the flexibility to adjust and deliver solutions that can be quickly implemented even though they may not be the best. Sometimes it is just better to use a third party library then to write a highly optimized version of the same yourself. Sometimes quick is better than the best.
I am not sure whether I will ever become a 10x engineer. It is not even in my agenda. I strive to improve myself every day and add tools to my bucket that can increase my productivity. I measure myself not by the quality or the amount of code I have shipped in a particular time, but the value I have brought to my team and my clients.