Last year, startup-investor Shekhar Kirani made a controversial series of tweets. In them was a list of characteristics he thinks are found in the best software developers -- so-called “10x engineers”. Some of the qualities he mentioned were things like hating meetings, not mentoring other team members, and always using dark colour schemes (as someone who sets a white background in my editors, that last one affected me personally).
Putting aside its bizarre shallowness, the tweet encourages tolerance of anti-social behaviour in these hypothetical candidates because of their technical output. He suggests that it’s a sacrifice worth making because they are great at writing code.
But is this the real image of a valuable developer? Is trading general warmness for raw technical talent worth it? Or is Kirani’s depiction of the ideal coder just, as one reply to the tweet stated, a list of “the worst tendencies of inexperienced engineers”.
The term ‘10x Engineer’ just refers to an engineer that can add 10 times more value to the company than the worst engineer. But beyond this, there’s a certain broader stereotype that many people think describes an amazing engineer that will get things done. The abrasive, brilliant, lone-wolf type. It’s the Insufferable Genius trope that’s assigned to software developers throughout pop culture (think Gilfoyle from HBO’s Silicon Valley or Jesse Eisenberg as Zuckerberg). But like many stereotypes, studies show that it does not reflect real life.
A Mckinsey study investigated which of the 5-factor personality traits benefit teams the most when working in an agile environment, as many developers are. To the report’s surprise, agreeableness was revealed to be the most valuable trait, which is manifested in ways such as kindness and cooperation.
These traits obviously can make life easier for team members in general, but this isn’t the whole story. The study explained that, when combined with straightforwardness, agreeableness leads to a better flow of ideas. Agreeable people can challenge an idea in a way that’s empathetic and supportive. Without this ability, feedback can come across hostile, leading team members to refrain from making valuable suggestions in the future. Such a team will be much more effective at reconciling differences and solving problems.
Cooperation in a team benefits its productivity. Individuals that produce code in isolation cause huge knowledge gaps for the rest of the team. And when these lone rangers resign, it takes time for others to understand what they left behind - not to mention the skill gap left to fill in the team. It’s much more sustainable to hire someone who actively explains their code and mentors other team members.
Of course, having programming knowledge and experience in a team is still critical. But having good technical ability in the absence of softer skills that build good teams is not going to achieve results companies are looking for. More than anything else, a real 10x Engineer is not merely a highly effective individual, but one who can work with others to create a highly effective team - a 10x Team.