You may be thinking “Not another 10X Developer post… haven’t we had enough about this idea?”. This concept is pretty old and you are either on the side of “There are 10x Developers” or on the side of “The 10X developer is a myth”.
There are so many arguments against the idea of a 10X developer. Yet… I believe there is such a thing as a 10X developer that can produce much more than the average developer.
First let me tell a story. In 6th grade we had certain activities that we were to complete on a regular basis. One of the assignments was related to completing word definitions. The details of the exact assignment escape me, but I remember that it consisted of taking something like a list of 20 words, write out their definitions and use them in a sentence. The lists were pull as needed. Once you completed one list of words you could pull the next list.
In the class there was this kid let’s call him Bert. Bert would complete 5x as many words as I did and also many times as many words as the average student completed. I think completion only affected our grade minimally.
What we received instead was recognition and probably a star next to our name card on the wall. I always admired Bert and could never figure out how he got so many words completed each week.
Perhaps Bert had a talent for vocabulary. Perhaps he really enjoyed learning new words. Once we got into high school one day Bert just dropped out. I don’t know why that was but I have a feeling that school probably bored him because Bert was extremely smart. Maybe he got burned out who knows. The point of the matter is that Bert could produce 5 to 10x the results of other students.
In this profession I’ve had the opportunity with many different programmers. I’ve had programmers that produce better results than others. Some programmers are better at their craft than others. Some developers produce more than others.
And I know, I know… code lines are not a way to determine productivity. That is because at times a great developer will actually get a negative count by deleting lines of code rather than adding lines of code.
By that same criteria we can’t really consider commit history or number of commits are higher productivity.
One way you can observe productivity and get an educated measure is by counting story points. But… you can’t simply count story points from one member in one team and compare them against another member in another team.
You also can’t use it on a team that isn’t mature in their practices. How do you know when you have a mature team? I’m not certain of the entire set of criteria but I think that a good start is working on a team that passes the Joel Test
What you can do, is compare the number of story points completed by one member compared to the story points of another member in the same team. So if you have a developer in one team consistently producing 2 or 3 or possibly 10 times as many story points, does that make them a 10x developer. Hmm… well… no not exactly.
Another thing to consider is that you must also have solid coding practices and architecture in your team. If you are in a legacy product that is full of spaghetti code, you may have someone producing really bad code really fast. That does not qualify them as a 10x developer.
So how then do you determine a 10x developer? I think that in order to do that first we must define the criteria for a 10x developer.
A great developer, must produce 5x to 10x the number of results as the average developer. Wait… what? “I thought we were talking about 10X developers… why the 5X”. What if your team is already filled with a bunch of 2X developers? I ask.
A 10x developer must also have demonstrated a practical solid understanding of OOP and Design Patterns and algorithms. They must be able to grasp domain knowledge easily and have a lot of experience with architecture. They must understand patterns and also anti-patterns.
They must be craftsman that can identify logic and design fallacies. Let’s face it, a 10X developer likely has a higher than normal IQ. They are likely someone with extremely good memory and problem solving skills.
A 10X developer is a rare anomaly but I believe they exist. Anything above a 2X developer is something to really celebrate in your team. I’ve seen many 4 and 5X developers. Let’s call them nX.
But let’s all keep one thing in mind… an nX developer is only as good as his ability to lift up his team.
We must also not confuse a nX developer with someone that just works a lot of overtime. That could also be bad and he could end up burning out like Bert.