Fog Creek Software
Discussion Board




Where do all the crappy coders go?

My experience with interviewing is that the vast majority of coders get a "no hire".  Sure, we build up our team with the good ones (and unfortunately catch a bad one here and there), but on the flip side, that means maybe about 80% of the programming population (and i'm being a bit conservative here) is out there wreaking havoc on code at other companies.

Does it make anyone just a tad nervous that such a huge portion of programmers just aren't qualified to do the work?

Richard Kuo
Monday, October 06, 2003

not really. 80% of projects never see the light of day, whether or not the programmers are good.

contractor
Monday, October 06, 2003

Your dirt might be someone's gem.

Amour Tan
Monday, October 06, 2003

I'd guess that the thing is that far more than 80% of programmers are "crappy", and that no screening process will catch them all.

So say you're seeing 80%, that means that of your hires, a large percentage are still crappy. If it's the same everywhere, then crappy programmers get hired no matter what.

Heck, at this stage the suggestion that 100% of programmers are crappy wouldn't be something I'd disagree with. Maybe I'm setting the bar too high.

Sum Dum Gai
Monday, October 06, 2003

One of milestones on the Road to Enlightenment in the Zen of Software Development is that one is, to use your colourful adjective, crappy.

Having realised that one deals with all the results of being crappy and ameliorates them to the degree where competence is reached.

Simon Lucy
Monday, October 06, 2003

You may be familiar with "Sturgeon's Law", which was enunciated by science fiction author Theodor Sturgeon at a coctail party.

When he was asked what he did, he replied that he wrote science fiction.

The lubricated questioner shot back,  "Science fiction!  90% of that is crap!"

Sturgeon replied, "90% of everything is crap." [Sturgeon's Law]

Some have opined that Sturgeon was being conservative.  ;-)

Michael Mahon
Monday, October 06, 2003

"that means maybe about 80% of the programming population (and i'm being a bit conservative here) is out there wreaking havoc on code at other companies."

Ehm... Mabe the "80%" you don't hire are the same "80%" that everybody else isn't hiring - meaning that your percepted "80%" consists of the same 200 coders.

And maybe, since you're not hiring them, nobody else isn't hiring them, thus keeping them from wreaking havoc.

Well, luckily you were talking about bad programmers, and not about bad statisticians ;-)

Martin A. Boegelund
Monday, October 06, 2003

Sturgeon's Law is brilliant. You always learn interesting things in this forum.

Since the unemployment rate in our sector is not 80%, I can reject the theory that nobody's hiring those 80% bad programmers.

Some of the applications I use provide further ground for this rejection :)

Daniel
Monday, October 06, 2003

sometimes it's even 100%, eg: all of my defecation is crap

n/a
Monday, October 06, 2003

> Since the unemployment rate in our sector is not 80%, I can reject the theory that nobody's hiring those 80% bad programmers.

My point is: The 80% are not *measured*, they are *percepted*.

It's a little like the "How mani nazis are there in Denmark?" situation:
Nazis in DK claim that they are 10.000 (in a pop. of 5 million). In reality they are 200. The way they get to 10.000 is that they create 50 nazi organizations, which all 200 nazis join. Nazi math thus gives us: 200 nazis in 50 organizations equals 10.000 nazis.

All in all: You have to be sure that you *uniquely* count the crappy coders and *uniquely* count the noncrappy ones.
Crappy coders will probably show up at more job interviews than non-crappy ones (since crappy coders are less propable to get the job), thus counting crappy coders more times than the non-crappy ones.

Martin A. Boegelund
Monday, October 06, 2003

"If it isn't Scottish, it's crap!"

Scottish Guy
Monday, October 06, 2003

There are companies that don't have a "hire the best" policy. They just hire cheap. and yes, those developers wander about writing low quality code.

You'd be surprised what you can do with low quality code. I've seen financial exchanges written by teams like this. Their solution is that they just employ people to restart the exchanges when they crash...

See, some companies have NEVER seen properly working code. They have no idea that you can write software that's trustworthy. So they just have hordes of people to work around the glitches. And lots of managers to manage things...

The other place they go is to large consultancies. These companies (at least in the UK) land large government contracts and screw them up. Wessex health (50M), air traffic control (200M?), post office counters networking (~1Bn).

How they keep getting work is beyond me, but they do.

As a rule, I have found that the larger the organisation, the worse the developers.

Katie Lucas
Monday, October 06, 2003

You can get away with crappy coders by having good processes in place.

For example, how many of the workers who produced Fords first Model Ts could have gained employment in the automobile building industry before the production line?

Ged Byrne
Monday, October 06, 2003

Scottish Guy,
>"If it isn't Scottish, it's crap!"

Heh, it may be true for some things, but it is debateable wheter code and coders is among them :-)

I guess that would apply to scottish things named along the lines of Lagavulin, Laproaigh and Bowmore.

Patrik
Monday, October 06, 2003

> You can get away with crappy coders by having good processes in place.

Yes, I think this is an important part of large-scale architecture. You simply do not have the time to review everyone's work, so you *must* be able to deal with the sub-standard coders that crop up.

certifiable
Monday, October 06, 2003

> You simply do not have the time to review everyone's work, so you *must* be able to deal with the sub-standard coders that crop up.

Hmm.

How do you do that then?

Len Holgate (www.lenholgate.com)
Monday, October 06, 2003

Frankly I deal with the sub-standard coders by assigning them tasks that I've already done but are "tough" enough to keep them out of the way while they struggle with it.

Katie Lucas
Monday, October 06, 2003

Richard Kuo,

You need to define what you feel it means to be a "crappy coder".

The problem is that not all organizations that employ programmers are the same.  If I owned a small gaming company, I would be looking for a "different type" of programmer than if I managed a large IT department at an Insurance company.

Perhaps you are simply interviewing the wrong type of job applicants?  In other words, you might be interviewing people who simply aren't qualified for the type of work your employer needs them to do. 

A programmer who needs a job, will eventually start sending their resumes everywhere.  I did this early in my career when I couldn't find work in my niche (business programming).

One Programmer's Opinion
Monday, October 06, 2003

Just this week I was pondering this, probably as a result of thinking of Joel's 1% rule,  and thinking it was 85% of developers are below average.

If you are a corporation, it's hard to find them since the good ones end up working for themselves or find one of the good companies and stay there.

Let's not forget that less than 2% of companies provide acceptable working environments. Create one of those and you increase the odds that you have a few from among the 15% that is at least avearage and competant.

Dennis Atkins
Monday, October 06, 2003

>Scottish Guy,
>>"If it isn't Scottish, it's crap!"

You should probably exclude goalkeepers from that too... :)

qwe
Monday, October 06, 2003

>You can get away with crappy coders
>by having good processes in place

Ged, don't you read the other parts of JoS?

I'd rather hire the Naked Chef than a buncha people at McDonalds. :-)

Then again, I volenteered to lead a CMM implementation effort, so why the heck would anyone listen to me? :-)

Matt H.
Monday, October 06, 2003

>You simply do not have the time to review
>everyone's work, so you *must* be able to
>deal with the sub-standard coders that crop up.

That should probably read "I do not have time to review ..."

There are some Pair Programmers who do continual code review.  Sheesh.

regards,

Matt H.
Monday, October 06, 2003

Matt H,

Fair enough, but McDonalds will always employ far more people than Jamie Olivier's Fifteen.

Remember the original question.  Where do all the rest go? 

Ged Byrne
Monday, October 06, 2003

They have programming jobs at places that don't pay so well e.g. government departments.

Insider
Monday, October 06, 2003

> Richard Kuo

Basically you have written a troll bait.

I think there are a lot of factors requiring companies and potential employees to part ways. Crappiness may not be the one.

Li-fan Chen
Monday, October 06, 2003

I think Richard Kuo is a crappy coder.  Just my opinion of course.

Hahahahahahaha Sucker
Monday, October 06, 2003

Matt,

"Joel said so" makes for a very poor argument.


Monday, October 06, 2003

>> You simply do not have the time to review everyone's work, so you *must* be able to deal with the sub-standard coders that crop up.

> How do you do that then?

1. By limiting the damage that any sub-standard coder can do. This is basically the same as making the code modular.

2. By defining the functionality via unit tests. Then you can swap out or upgrade any component. I've done this (so far, only on a small scale) and it works very well.

certifiable
Monday, October 06, 2003

http://c2.com/cgi/wiki?LawsOfCrap

coder
Monday, October 06, 2003

Thanks for that "laws of crap" link.  First thing that's made me smile all morning.  As to the question, sometimes I think all the crappy coders *follow me around*.  But apparently you all have them too...guess that's not it.

Mikayla
Monday, October 06, 2003

Sturgeon's Law was originally "90% of everything is crud".

In an interview I once read, I can't remember whether Sturgeon was annoyed at getting misquoted ...

Since everyone seems to say "crap" instead or "crud", I think Sturgeons response was "See - I was right".

AJS
Monday, October 06, 2003

It's also the case that, of the 80% you reject, some percentage of them are just because they are a poor fit with their personality and/or knowlege base.

i.e. a C++ programmer with very little Java knowlege is going to look like a fool in a Java-oriented interview.

Some end up in situations where sub-par coding skills are OK for what needs to be done and/or end up in an interview where they can come off looking like they are brighter than they really are.

Flamebait Sr.
Monday, October 06, 2003

If you're going to quote the whole event that lead to the creation of Steurgon's Law, please at least do it correctly:

http://www.jargon.net/jargonfile/s/SturgeonsLaw.html

There's probably a law against it, but why don't you tag everyone who interviews at your company like they tag cows and track them in the wild. This way you'll know where all the crappy coders go.

Seriously though, you're saying you hire 1 in every 5 people who interview at your company?

Mark T A W .com
Monday, October 06, 2003

It seems the poster was referring to programmers who are crappy all-round, not just that they're good at something else but happen to be a bad fit.  Plus, if somebody walks into an interview claiming to be a Java expert when they only know C++, they don't just look like a fool -- they have demonstrated that they are a liar.

--
Monday, October 06, 2003

This is pretty easy to answer.

A's hire A's and B's hire B's but not A's, C's hire C's but not B's nor A's, etc.  It's a matter of being perceived as a more-intelligent or more competent threat by the hiring party.

And, quality of anything tends to follow a bell curve distribution. Most of the population is in the middle of the bulge and the tails at either end are the very good and the very bad.

So, given that most companies suck, the lousy programmers have a MUCH wider range of hiring possibilities than do the very sharp and competent programmers, who "price" themselves out of the market simply by being themselves.

W/o getting into a dissection of how unknowledgeable or incompetent programmers can operate in an enterprise or other programming environment, I think it's the case that personalities and rapport cements the deal. And part of rapport for most managers is not being seen as "too uppity".

Bored Bystander
Monday, October 06, 2003

> And part of rapport for most managers is not being seen as "too uppity".

Good point.

Some managers find programmers who try to understand the business threatening: they really want coders who just shut up, do what they're told, and natter on about their technical issues in some quiet, secluded place.

Portabella
Monday, October 06, 2003

Mark,

>> There's probably a law against it, but why don't you tag everyone who interviews at your company like they tag cows and track them in the wild. This way you'll know where all the crappy coders go. <<

Har, har har - this is a wonderful concept. Thanks!

Mark

Mark Pearce
Monday, October 06, 2003

"Just this week I was pondering this, probably as a result of thinking of Joel's 1% rule,  and thinking it was 85% of developers are below average."

Actually, 50 percent of developers are below average.

tester
Monday, October 06, 2003

> Actually, 50 percent of developers are below average.

You mean "median", not "average".

Portabella
Monday, October 06, 2003

> Actually, 50 percent of developers are below average.

You mean "median", not "average".

Yeah, there would be... 18% below 1 standard deviation. Average comprises a fairly large chunk of the population, I think 64% within 1 standard deviation, with 18% below and 18% above.

Someone correct me if I'm wrong.

Again I think we're using a single number to measure any number of skills.

Mark T A W .com
Monday, October 06, 2003

They work for the phone company.

pdq
Monday, October 06, 2003

I think "average" can refer to either mean, median, or mode. 

risk taker
Monday, October 06, 2003

In a true bell-curve (Normal) distribution, mean=median=mode.

--
Monday, October 06, 2003

Lately there's been a bunch of topics in this forum like "Why does everyone besides me suck?" or "Although you won't hire me I do not suck!". I'm wondering: Is this a new rise of the Small Penis Syndrome (SPS)?

Hitman
Monday, October 06, 2003

"Someone correct me if I'm wrong."

The numbers quoted apply for a Gaussian (normal, bell-curve) distribution of whatever you're measuring.  Income, for one thing, isn't distributed that way.  The median income is less than average, so more than 50% of the population is below average.

If some developers are 10 times as productive as average, it could be that 85% of programmers are below average.

Z
Monday, October 06, 2003

I think we go right here into this thread.

Thomas Eyde
Monday, October 06, 2003

Crappy coders will appear more numerous than they really are because they are overrepresented in job application pools, since they would require more applications to find another job than the good programmers who will either find a job more quickly or start their own company.

Most of the crappy coders don't go anywhere, because they will never find another programming job in their life.  They just got lucky in the dotcom boom when you could get hired if you knew what HTML stands for. A minority will get lucky again if they're interviewed only by a clueless HR person or PHB who can't tell the difference between a real programmer and a pretender.  But for the most part, unemployed crappy programmers have no future in this industry... unless they go offshore.

T. Norman
Monday, October 06, 2003

Another point to make in the whole discussion is the Peter Principal.  You keep rising until you no longer can perform the job - so a developer that is excellent at writing device drivers will eventually find themselves with no career path but to manage - a job that they probably won't like, and most probably won't be good at.  So the main question is not, why can't you find someone that's competent at what you're doing, but why can't you use the talent you have to it's fullest potential to accomplish your goals.

Unfocused Focused
Monday, October 06, 2003

I know some very crappy coders who have managed to get hired in the last year, so I think it's rubbish that crap coders will never be hired again.

Remember, if 90% of everything is crap/crud/whatever, then 90% of interviewers are crappy, and hence wouldn't know how to identify a good coder to save their lives.

Ability to write a good looking resume, bluff your way through interviews, and develop contacts are probably far more important than coding ability when it comes to finding employment.

Sum Dum Gai
Monday, October 06, 2003

I found some parts of this thread interesting, though 90% of it was... erm :)

By the way, one question I keep asking myself is: do crappy programmers take part in forums like this one at the same rate as good programmers? I don't think so, but they must take part in them at some rate. Then (90 - X) % of us are actually crappy programmers.

Daniel
Tuesday, October 07, 2003

They've also found that most people inflate their own skill level.  The link to the paper has been posted more than once here.

This effects the crappy coder argument in two directions.  First, we are much more likely to think that we're brighter than a coder we're actually equal to.  Second, people who truly suck as programmers don't realize it and give up.

Flamebait Sr.
Tuesday, October 07, 2003

They go to California of course. It seems you don't eed experience for ANY job there!

David Clayworth
Wednesday, October 08, 2003

It seems that the orientation in business is towards "monkey" programmers -- those who do not think.  This is because management, apparently (and justifiably), believes that at any given time it is easier to hire a hundred  monkeys than one good programmer. Whether that's a good thing, well...

DEBEDb
Thursday, October 09, 2003

Well, crappy kernel coders make fantastic app programmers.
Crappy app programmers make fantastic admin programmers.
Crappy admin programmers make fantastic web developers.
Crappy web developers make fantastic documenters.
Crappy documenters make fantastic tech journalists.
Crappy tech journalists make fantastic journalists.
Crappy journalists ...

Or_not
Thursday, October 23, 2003

"A's hire A's and B's hire B's but not A's, C's hire C's but not B's nor A's".

I would offer that A's hire A's, either directly or indirectly (by recommending them to the company or the company to them). A's like working with colleagues that are competent, and A's don't feel insecure.
B's hire C's. B's like working with colleagues that are unlikely to get promoted over them.
C's go straight for Z's. They're trying to hire D's but they're too stupid to correctly identify them. Of course this also means that C's sometimes hire A's, or more often natural A's who lack experience (since A's don't want to work for C's). They get annoyed eventually and leave.

Jon Hanna
Thursday, October 23, 2003

*  Recent Topics

*  Fog Creek Home