The article is a bit hit-and-miss, but it's an interesting and difficult problem.
I personally believe that a lot of the really bad developers came onboard during the y2k+dot-com boom, and the population has been self-perpetuating and growing in enterprise environments ever since.
Perhaps the way to resolve this is to create some sort of exclusive society of good developers, which you can only join by personal invitation and after a thorough grilling by some developers who have already joined and who are aware that diluting the society with crap programmers is not in anyone's interest... Something like a Mensa for programmers?
Then good developer could be identified by belonging to this society - much like professionals in other professions are identified by memberships to such societies (doctors, lawyers, architects, hell, even engineers).
A Mensa for programmers sounds like a good idea. I'm in favor of mandatory licensing requirements for commercial developers, but in lieu of that, maybe a society of competent programmers would highlight the difference between those who can and those who can't program. But I foresee difficulties in keeping membership pure; for instance, how would we ensure it doesn't devolve into people paying to get in?
Well, many other professions have solved the "how to stop the profession from being diluted" dilemma. No need to reinvent the wheel - just have a formal, oral entrance interview administered by respected members of the community..
But not in the same proportion as software engineers :-) it's 10% vs 60% (imho). Also, a crap dentist might not be great, but he's not actually going to rip all your teeth out by mistake while taking an x-ray. The dentistry exams and associations do guarantee at least a baseline level of competence, which is what we're trying to establish here.
Feynman resigned from the National Academy of Sciences, "because that was another organization most of whose time was spent in choosing who was illustrious enough to join, to be allowed to join us in our organization [...] The whole thing was rotten because its purpose was mostly to decide who could have this honor [...]"
Well, he tried to resign but they wouldn't let him because they didn't want to lose someone of his stature!
From the sound of it the NAS was trying to legislate greatness rather than competence. I'd agree that you can't legislate greatness, but you can definitely legislate competence, so long as you set the bar at a reasonable level.
The author says it's a paradox that although management cannot tell the difference between a good developer and a bad one, the good developers are the ones ultimately held responsible for the product. It's no mystery: the difference between a good developer and a bad one is that a good developer already holds himself personally responsible for the quality of the product.
What if s/he holds hirself personally responsible and the product still sucks? I suppose these developers would weed themselves out eventually. But what if a developer holds hirself personally responsible for the quality of the product, thinks the product is good, but is wrong?
"And that, in turn, depends on end-users being good at their job."
Incompetence is Everywhere, not just Developers and Managers, EVERYWHERE. Big companies, small companies... maybe 95% of the population is generally incompetent. Every so often you get a glut of the 5%'ers and it's great.
Personally I think I’m one of the 95%'ers, but hopefully not too far away from being a 5%'er.
"As for me, I'm competent, and I know I am. (Yes, this is a "everyone says that" moment.) I know that because when I build things, the final version looks more-or-less exactly how I though it would when I started, and took about the estimated amount of time."
He jumped around a lot in that, but as for foreign workers, I strongly suspect (without any real data available) that another dynamic is at play:
That is, sometimes programmers quit their jobs. And then an inevitable process of bitter condemnation of his code begins. This is a function of distance. Once your code leaves your protection, it's likely to be declared garbage. Foreign workers suffer this automatically.
13 comments
[ 4.2 ms ] story [ 36.0 ms ] threadI personally believe that a lot of the really bad developers came onboard during the y2k+dot-com boom, and the population has been self-perpetuating and growing in enterprise environments ever since.
Perhaps the way to resolve this is to create some sort of exclusive society of good developers, which you can only join by personal invitation and after a thorough grilling by some developers who have already joined and who are aware that diluting the society with crap programmers is not in anyone's interest... Something like a Mensa for programmers?
Then good developer could be identified by belonging to this society - much like professionals in other professions are identified by memberships to such societies (doctors, lawyers, architects, hell, even engineers).
Daniel
Feynman resigned from the National Academy of Sciences, "because that was another organization most of whose time was spent in choosing who was illustrious enough to join, to be allowed to join us in our organization [...] The whole thing was rotten because its purpose was mostly to decide who could have this honor [...]"
Well, he tried to resign but they wouldn't let him because they didn't want to lose someone of his stature!
Incompetence is Everywhere, not just Developers and Managers, EVERYWHERE. Big companies, small companies... maybe 95% of the population is generally incompetent. Every so often you get a glut of the 5%'ers and it's great.
Personally I think I’m one of the 95%'ers, but hopefully not too far away from being a 5%'er.
He must not tackle very difficult problems...
That is, sometimes programmers quit their jobs. And then an inevitable process of bitter condemnation of his code begins. This is a function of distance. Once your code leaves your protection, it's likely to be declared garbage. Foreign workers suffer this automatically.