This article is juxtaposing our fear of hiring an incompetent developer, vs. our indifference to the skills of developers once they join our organization. That's what he's saying when he says that everyone's afraid of secretly terrible engineers.
If each company spent a (comparatively miniscule) amount of resources on consistently training their current developers, then the team would be constantly improving.
We think that miraculously, good developers become good, sometimes by heroically hacking on their own, sometimes by going to a prestigious school, never by practice within a big company. Then, one we hire them, their skill level freezes. This is why it's important to hire good people.
This is the same illusion that keeps the US public school system focused on hiring good teachers and even more focused on firing bad ones, without focusing on improving current teachers' skills. We, as an industry, need to focus on practice within the organizations we control, we need to focus on making everyone better, and we need to kill with fire the idea that hiring good people is all you have to do to have a good team.
This is also the same problem with the entire H1B situation and why Google, Apple et al. have made some pretty poor justifications of the price-fixing collusion: because they've avoided investing in on-going education to such an an extent that the only thing they've been able to imagine for getting talent is poaching it from other companies (leading to the on-going upwards price war).
They could easily solve their problems if they actually wanted to train people, and promoted those who would/could mentor more aggressively.
We're not talking about only hiring the top 0.1% programming talent at the expense of the top 1%. We're talking about the people that either can't program, or are very, very bad at programming.
Dealing with those isn't a "comparatively miniscule" task, it's an extraordinary drain on productivity and morale.
> We think that miraculously, good developers become good [...] never by practice within a big company. Then, one we hire them, their skill level freezes.
This is patently false. Are you familiar with the concepts of "experience", "promotion", "pay raise" or "bonus"?
If each company spent a (comparatively miniscule) amount of resources on consistently training their current developers, then the team would be constantly improving.
We think that miraculously, good developers become good, sometimes by heroically hacking on their own, sometimes by going to a prestigious school, never by practice within a big company. Then, one we hire them, their skill level freezes. This is why it's important to hire good people.
This is the same illusion that keeps the US public school system focused on hiring good teachers and even more focused on firing bad ones, without focusing on improving current teachers' skills. We, as an industry, need to focus on practice within the organizations we control, we need to focus on making everyone better, and we need to kill with fire the idea that hiring good people is all you have to do to have a good team.