Twitter is on fire because of some thread on 10x engineer. People started to post sites (1x.engineer, 10x.engineer), blog posts (1, 2).
What 10x means?
I guess 10x means somebody who provides 10x throughput (10x more effective). Right? For example, average coal miner mines 50kg per shift, then 10x miner would produce 500kg per shift.
How would you measure the effectiveness of an engineer?
Is it lines of code (LoC)? I guess we all know the answer (it is not).
Is it a number of features? But features have different complexity like one thing is to be able to edit the document (simple CRUD) and absolutely different thing is to be able to collaboratively edit the document, like Google docs (for this you will need to read about CRDTs or similar approach). How do you compare the complexity of features quantitively?
Code is not the only one activity developers do. What about code reviews? Should we count number or quality? How you define the quality of code review?
What about bug reports? What is a better big number of small bug reports or reports about complex hard to catch bugs?
Developer activity goes beyond developing: you need to discuss the feature with product people (requirements analysis), see if it feasible if it contradicts previous features, plan it out, create tickets (for yourself or colleagues), sometimes the problem is so complex that you need to pause before writing code and write some kind of proposal (RFC) and then discuss with colleagues, then you write code, tests, test manually or write integration tests, write documentation, review colleague's PRs, communicate with open source authors, write bug reports, fix bugs, help you, colleagues, if they stack with something (even if you play role of rubber duck), and many more... Which of those do we count and how we measure it to quantify 10x factor?
What about specialization?
Let's assume we have a team of backend or full-stack "10x" developers, but they kind of suck in CSS, they are super smart about everything else database, distributed systems, algorithms, networks, DevOps, etc. They will struggle without at least one 1x CSS developer.
What about soft skills?
Should we compare only hard skills or soft skills? If we will compare soft skills, how would we measure that?
Good and bad days
We all have good and bad days. Sometimes you don't perform as good as regularly. If you would get measure performance, what would be a statistically significant sample?
PS
You for sure can compare developers: developer which started a career 3 months ago, would be slower than somebody who started 3 years ago. But can you quantify this comparison? Can you compare developers, beyond some point?
How you can tell somebody is 10 times better, not just better but exactly 10 times better? If it would be a hand-wavy comparison, how you make sure it is unbiased?
Photo by James Lee on Unsplash
Top comments (15)
10x engineer writes 80% of code while others are busy on meetings discussing the project.
After that 1x engineers rewrite his code to meet actual project goals instead of goals in 10x engineer's head. They also make the code documented and maintainable instead of spaghetti mess after 10x engineer.
10x engineer idea was based on bad science. It was purely subjective impression. The people surveyed claimed that some of their devs seemed to have 10x more output. There was no scientific definition of what that meant. It's rubbish we should forget about.
Yeah I found that paper later after I published the article
Please edit your article to reference the the basis for this discussion. That would be very helpful for people reading it. Otherwise, nice commentary article.
"10x" in Internet usually means "thanks".
I'm not sure if this intentional pun or not. Is this the case of "good satire indistinguishable from reality"?
The 10x engineer is actually a product of a healthy development environment which gives developers the latitude to explore and take ownership. The real successes do not result from developers having their story point counts micro managed. Real success is about breeding a development culture which cares about pleasing the customer, who has an empathy for what the problem is and the pragmatic skills to solve it. The idea that there is something magical about some developers is toxic; if you wrap developers in a environment which gives them responsibility and ownership, along with the support and environment to perform you can develop these star performers.
I would never use the term “10x engineer” in earnest, but I have a decent idea of what it is. It’s definitely not quantifiable, it just is what it is. When you’ve been around enough developers you know the ones that stand out, that are just exceptionally competent. They will quickly have a better grasp of the system under development than anybody else, including those who have been around a lot longer. If there is a bug that other developers are struggling with, you know who to call to figure it out and unblock them. They’re the ones that aren’t going to come up with cockamamie theories about why something is not working and make a fix with nothing to back it up and hope it works, they’re going to quickly zero in on how to reproduce it and isolate the source of the problem and surgically resolve it. They’re the ones that you always want in your architecture discussion even when they loathe the title of architect. Instead of wasting time on repetitive tasks, they build tools, even if it means doing it on their own time. They’re always looking for ways to improve the system and improve their own skills and know where to draw the line between bringing value and wasting time.
Don't we read 10 in Binary? That makes it 2x Engineer in Decimal.
Maybe it just means "a good engineer". The term is just an exaggeration and isn't necessarily meant to be taken literally. We all know good VS bad software developers, and it's more based on intuition rather than a metric.
🤔🤔🤔
No worries. I got you
About the origin of the term: jasoncrawford.org/10x-engineers
Some comments may only be visible to logged-in visitors. Sign in to view all comments.