Abstract: In 2019, the concept of “ten times engineers” proposed by Shekhar Kirani, an investor in Indian startups, aroused heated discussions in the circle. He proposed that some programmers can compete with ten, and with such people in the business, the success rate will be greatly improved. Most people are opposed to this statement, but until now, the discussion about “ten times engineers” has not stopped.
Original link: https://ift.tt/TegIpfJ
Disclaimer: This article is translated by CSDN, and reprinting is prohibited without authorization.
Author | Adam Gordon Bell
Translator | Meniscus
Produced | CSDN (ID: CSDNnews)
The phrase “10x developer” comes from a tweet:
10x engineers rarely look at the help documentation for a class or method. After getting a product feature, they just need a cup of caffeinated drink, without anyone interrupting, they can sit down and work continuously for 4-6 hours to program the entire feature.
10x engineers hate meetings, think it’s a waste of their lives, and the things discussed in the meeting are obvious.
Most 10x engineers are full stack engineers. However, I rarely see them doing UI work.
The above point was made by Shekhar Kirani, an Indian startup investor, who advised startups to stick to 10x engineers – although I disagree, the topic of “10x engineers” is not going away.
In this article, let’s take a deep dive into the concept to see what “10x engineer” actually means, and maybe we can find a better way to describe talented engineers.
definition
The concept of “10x developers” originated from research by Tom Demarco. He studied the results of programming exercises by more than 600 developers and found that some were 10 times more efficient than others (under the same research conditions).
10x developers means that some developers are 10x more productive than other developers with the same level of expertise in the field. That is, a 10x developer can do 10x as much work, and they can write 10x the quality of code as the rest of the team under the same conditions. Who exactly is a 10x developer, and how does one become a 10x developer?
A question often discussed online is: Does 10x developer really exist? After all, it’s not 1984, and the whole field of programming has improved. So, let’s solve this problem first.
95x developers
It is impossible to have two 10x engineers in the same place at the same time, otherwise it will trigger a productivity singularity.
—Xanda Schofield
There is no dispute that development techniques are ever-changing and can be continuously improved. But are people who can do 10x the work really 10x better than their incompetent colleagues? In fact, I think “10x” is too small a number.
Below, we look at an example that, while extreme, is instructive.
The questions on the Leetcode website show that the technical prowess of developers varies by orders of magnitude. On LeetCode, a contestant’s rating can be translated into the probability that they will be able to solve a problem. Specifically, in practice, if you come across a problem with the same rating as your personal rating, that means there is a 50% chance that you will be able to solve the problem. LeetCode uses the ELO ranking, which is directly equivalent to the success factor. While LeetCode doesn’t publish question ratings, one user calculated individual question ratings and shared them on GitHub (https://ift.tt/UkIu6gY).
With this information, plus the probability table, I can tell you that for the question “Count Ways to Make Array With Product” on LeetCode (https://ift.tt/gNAz6X0 -with-product/), 95% of users at rank 3000 can solve this problem, but only about 1% of users at rank 1700 can.
Imagine that the Jira panel consists of 2500 difficult questions, if LeetCode’s rules are very close to our actual work, then a user ranked 3000 is as efficient as 95 users ranked 1700, then they are the so-called “95 times development” By”. So, it is certain that if there are 95x developers in LeetCode, then as long as the difficulty cap is high enough, there may be 10x developers in any field.
However, does the difficulty of day-to-day work give technical experts room to flex their muscles?
Doctor House, Doctor 10
Differences in technical capabilities are not unique to the field of software development. If there are really 10x developers, then there are 10x doctors and 10x mechanics. However, a technology that can have a significant impact on a team or organization is bound to be a limiting factor.
If the protagonist in “House” works in a small clinic where his daily job is to get flu shots and antibiotics, he won’t necessarily be more efficient than a mediocre doctor. Likewise, even a LeetCode champion won’t stand out if your team doesn’t encounter difficult programming problems. If 10x the developer should do 10x the work, it’s only if you can ask some challenging questions.
(Personal opinion: what many teams need is a developer with 10 times the ability to communicate.)
So, some developers are indeed more productive, but that doesn’t necessarily mean more work is done, unless the high-tech skills improve the team’s productivity, or solve the team’s bottlenecks. Time and technical power are not interchangeable in quantity. But there’s an even bigger problem with 10x developer thinking: Tech power doesn’t exist in isolation.
You can’t measure a developer’s technical prowess by a single “scale” (such as LeetCode’s rating), and developers are not high jumpers, and you can’t judge their technical prowess by being able to jump over a railing of a certain height. Software development is a diverse field, and working on firmware development requires a completely different skill set than building a game engine, and the type of skills they master is different from that of a front-end JavaScript developer. Software development, like most fields, is not a single track and field competition. These roles require different techniques such as system design, testing, debugging, and more. So, developers are more like the modern pentathlon in sports.
Extreme claims about software development
The 10x developer claim is too extreme. For example, my daily work is a very simple task, even if Fabrice Bellard (a famous computer programmer, famous in the industry for FFmpeg, QEMU and other projects, won three times in the international C language chaos code competition) came, Nor can it be said that 10 times the same amount of work can be done. Conversely, given enough time, I might be able to build FFmpeg and QEMU like Fabrice Bellard.
In addition, the concept of 10x developers implies that all kinds of technical capabilities are interchangeable – should a good database in-house expert be able to build a good microservice architecture? This is obviously unreasonable.
So, how should we describe 10x developers? Like experts, “So-and-so is a video coding expert”; or professionals, “I’ve worked with postgres professionals”; or geniuses, “I need some great compiler backend genius to help me design incrementals compile”.
I think we shouldn’t use words like “10x” to describe a developer’s technical prowess in general, we should be more specific. Technology is ever-changing, and people’s technical capabilities are constantly improving. We should not deify talents.
The text and pictures in this article are from CSDN
This article is reprinted from https://www.techug.com/post/stop-talking-about-10-times-developer7e22051a988f0f3bc29f/
This site is for inclusion only, and the copyright belongs to the original author.