> It is interesting, the two best developers I know
Over time I've come to appreciate the difference between people who are described as the best programmers and people who are best at delivering results.
Some times they're one in the same. It's wonderful when you work with someone who is both an excellent programmer and excellent and delivering results in a team.
Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Looking back, some of the most stereotypically brilliant developers I've worked with have also been among the more difficult to work with. Not all of them, but quite a few. The two that come to mind have been bouncing from company to company for a long time. They'll always have job offers and be able to pass interviews, but actually working with them and getting good results is a different story.
One of them even founded a startup with a co-founder, but unsurprisingly they broke up less than a year into it. On paper he should be the perfect fit to get launch a startup product, but working with him is a different matter.
The brilliant devs I know who are great at delivering results usually find their way into good positions and good companies early in their career and then stay there for a long time.
> Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Very smart programmers often have a very different way of thinking about programming problems. If the project structure does not accommodate for this way of thinking, brillant programmers can barely use their "superpower".
Also, great programmers often have a deep love for their craft, and thus be very opinionated about the best possible way of solving the programming problem at hand.
So my bet is:
- you don't have software problems that "need" superpowers (otherwise the average developer on the team would be of little use)
- you don't have a project structure that enables exceptional programmers to actually use their superpowers
- you already admitted that you are rather looking for people "who diligently get their work done"
Exaggeratedly: you hired a Fields medalist to fix your clogged toilet, and you are now complaining that the average plumber is much better at fixing it.
100% this. Nothing turns a 10x into a 0.5x faster than telling them they can't fix the horrible issues putting your api performance in the shitter under load, and instead they have to go help automate the QA build process.
Of course people have to work on what is most urgent at that time, that's just business. You can't just work on what you love to work on, unless you have practically unlimited funds.
Most projects of any size have a number of people working on them at the same time. At least to me it seems best if you have someone that is really good at something to keep them focused on that task with momentum and split other portions of the team on the urgent task.
There is also an element of office politics involved sometimes. There are very petty people who will throw road blocks in the way of a brilliant programmer, because he outshines them. There are program managers who will hobble a brilliant programmer, because they don't want to build dependence on a superstar fearing that star will ask for too high salary at some point. And the brilliant programmer? He's good at programming, not schmoozing.
Over time I've come to appreciate the difference between people who are described as the best programmers and people who are best at delivering results.
Some times they're one in the same. It's wonderful when you work with someone who is both an excellent programmer and excellent and delivering results in a team.
Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Looking back, some of the most stereotypically brilliant developers I've worked with have also been among the more difficult to work with. Not all of them, but quite a few. The two that come to mind have been bouncing from company to company for a long time. They'll always have job offers and be able to pass interviews, but actually working with them and getting good results is a different story.
One of them even founded a startup with a co-founder, but unsurprisingly they broke up less than a year into it. On paper he should be the perfect fit to get launch a startup product, but working with him is a different matter.
The brilliant devs I know who are great at delivering results usually find their way into good positions and good companies early in their career and then stay there for a long time.