David Heinemeier Hansson

August 4, 2023

Not everyone can be the best

Many software developers seem to have a uniquely hard time accepting that not everyone who just tries real hard will become so good as to be among the best in this field. That there really is a discrepancy of talent that leads to a discrepancy of competence. That not everyone can or will become equally good at this job.

In contrast, nobody seems to have trouble with the fact that not every soccer player who loves the game and trains their best will become eligible for the Premier League. Or that becoming a brain surgeon might indeed really be harder than making it as a general practitioner, which in itself is hard enough too!

But becoming a developer can happen without ever really having to face an adversarial examination of your skills. There's no 90-minute clock that ends with a look at the score of goals to determine the winner. No grueling medical licensing examination to bar entry to the profession.

And in most ways, this is good! Just like there's no bar exam to become a writer or an artist. If you can make it commercially, convincing others to pay you for your services or products, you get to do this full time. That's wonderful! The world is a better place because the art and science of instructing computers to do our bidding isn't gated by guardians of a guild.

The mistake comes from inferring that because there's no barrier to entry, it's within the capacity of anyone who keeps at it to ascent to the highest levels of competence possible. Or, even worse, poo-poo the idea that there is a difference in competence at all, and that it's different from the measure of years of experience. Hogwash.

In our eagerness to appear as welcoming and encouraging to the next generation of developers, we've often accidentally or intentionally debase the achievements of merit, and in the process help nobody. Celebrating those who do this job well, nay, better, than most is not in opposition to attracting new talent. On the contrary. More kids start playing soccer because we cherish the unique talents of Messi or Ronaldo, not fewer.

Part of the problem here is that in their eagerness to polish their humbleness, the best software developers seem overly keen to downplay their own talent, competence, or achievements. You don't see Messi or Ronaldo attribute their wins to "just getting lucky" as a matter of course. Or the star surgeon point primarily to coincidence to explain their mastery. All commonly embrace their talent, their competence, their success.

This is very different from being a braggart and a bore. And, again, perhaps part of the explanation is simply the presence of objective standards. The discerning nature of soccer ensures that anyone who joins the field at the World Cup really is an exceptional player, and we all just have to accept that. But I think it's more than that. It reveals an unappealing insecurity about whether software development is domain where being better is even important. We must reject such nonsense. Of course being better is important!

What the easy entry to software development affords is a chance at the pursuit of competence, not it's inevitability. Like soccer, you really can become very, very good exclusively on the basis of your own talent and time investment. It doesn't take years of formal and expensive schooling to get there. It doesn't require fancy, unobtainable equipment. But none of that means you'll be assured success.

That's both liberating and intimidating. Good. Little worth having is not hard to get. So get at it, stick to it, and may your talents take you as far as they can.

About David Heinemeier Hansson

Made Basecamp and HEY for the underdogs as co-owner and CTO of 37signals. Created Ruby on Rails. Wrote REWORK, It Doesn't Have to Be Crazy at Work, and REMOTE. Won at Le Mans as a racing driver. Fought the big tech monopolies as an antitrust advocate. Invested in Danish startups.