You'll never be a 10x Developer
You've seen the job listings, you've heard the recruiters.
"Innovative tech company looking for 10x developer to take the lead on a greenfield project."
But what is a 10x Developer? How is it possible for one person to do the work of 10? Are they just that good? Are the other 10 people just lazy?
Although some people would certainly argue otherwise, there is no such thing as a 10x Developer. It's just another buzzword used by recruiters and companies to hype people up. Suggesting that one person can perform the work of 10 others is a strange thing to get excited about.
It certainly isn't something that should be desired.
Doing 10x the work of the "average developer" would have a few problems with it if it were even possible.
- The burnout would be extraordinary. If you are pushing that hard, you won't be able to sustain it for very long.
- The single point of failure becomes much more dramatic. If your 10x Dev is sick and takes the day off, there goes most of your team's productivity.
- You wouldn't be fairly compensated. Sure, if you really were delivering that much extra value, you might be compensated above average, but the chances of being remunerated 10x are almost non-existent.
What can we do instead?
As they say, don't put all your eggs in one basket. The real force multiplier in this industry is not single heroes who carry teams to victory. It is the teams themselves, and the potential they unleash through effective communication, collaboration, and prioritisation.
There is no real way to measurably determine how many "developer multiples" a given software engineer embodies, so don't even bother. Productivity will ebb and flow as the various factors and situations surrounding the team changes.
What is known, however, is that effective teams raise each other up, and deliver value greater than the sum of their parts.
An actual force multiplier that you can count on.
Let's take a look at each of these key factors:
Effective teams have stellar communication. This is especially vital during the extended work from home stint a lot of us have had around the world. Being in the office helps with communication, but the connectivity we enjoy in this modern world makes it entirely possible over the internet as well.
Communication matters because without it, things get lost in the details. Poor communication leads to mismanaged expectations, poorly understood requirements, and general frustration.
As we've established, you can't do it all by yourself, or you shouldn't, anyway. As part of a team, you must work together to deliver the best outcomes possible for your company and your customers. This means you need to deliver high-quality solutions, do doing that requires collaboration.
One person cannot know the best way to do everything, and no matter how good you are, you will make mistakes. Collaboration involves spending time doing pair programming, code reviews, demos, showcases, planning, and meetings.
These might seem like a waste of time.
You might think your time would be better spent writing code and fixing bugs.
This isn't the case. Although writing code and delivering results is important, you'll find it very difficult, almost impossible to do at scale without proper collaboration.
The key to strong productivity in the eyes of your company is proper prioritisation. Most companies are in business to serve specific customers, and customers generally want certain things more than others.
Product Management and dealing with customer requirements is a whole art of its own, but at the intersection with Engineering, work is divided into tickets and sent over to be developed.
When it comes to software, the golden rule is that there is always more work to do than there is time to do it. The work is never "done", software projects end when their continuation is no longer in the interest of the company, not because all the work was finished. There's always more to do.
This means we need to be careful when selecting what we work on because with the effectively infinite workload, and finite capacity, it becomes a balancing act.
Focus on the most urgent work that is required to delight the target customer. If it isn't required as part of your "Minimum Lovable Product" for any given release, re-assess if it needs to be done.
There is no secret sauce to being a lone wolf heroic developer. The real magic happens when teams unite. It takes some time for new teams to gel, once they have become properly integrated, they are a force to be reckoned with. Whether you have a new or existing team, keep these points in mind and do what you can to improve cohesion.
There is no challenge a cohesive team cannot tackle.
I think this meme is appropriate:
Employers these days expect way too much of developers. They have impossibly high standards and want you to work yourself to death in a tedious job. That's why I don't bother trying to find work as a developer. I just do my own thing, hosting software on GitHub, and who knows, maybe someone will find a use for it.