
Why are there so few good developers? - ryanwaggoner
http://ryanwaggoner.com/2010/09/why-are-there-so-few-good-developers/
======
patio11
I like the Spolsky thesis: there are plenty of good developers. For cultural
and practical reasons, they will spend very little if any time on the public
hiring market. Accordingly, almost all hiring processes identify bad
developers, or good developers in very extraordinary and rare circumstances.

I am not a 95% developer, but I get some stuff done. I think I was available
for hire four days of my adult life. That number will never increase.

~~~
kscaldef
Right, in fact being in a recession probably makes this more stark as
companies cut back and lay off underperformers. Meanwhile, high performers are
more hesitant to change jobs, particularly to go work for a new company which
might not survive in this economy.

------
sebg
"The reason is that almost everywhere I turn, I hear clients and employers
complaining about how they can’t find enough good developers."

There are good developers for every kind of job. A good developer for a small
bakery around the corner is very different from a good developer for the core
search team at google.

The issue then is not why aren't there more good developers, but why can't
employers find developers that fit their needs.

This is something that's been covered widely, most notably for hn by pg. If
people that are starting tech companies have trouble hiring good programmers,
imagine how difficult it would be if you aren't a tech start up company
looking to hire programmers.

A small step toward the solution is to write on your blog a distilled
checklist of how all of the companies you've worked for were able to describe
what their needs were.

Once you are able to describe a problem, it is much easier to find a solution.

~~~
loewenskind
The other issue is that a lot of companies have extremely low estimates on
what good developers cost. I've been to several smaller places where I knew my
knowledge+skill could really help them out. The jobs sounded interesting so I
bid the lowest number I could afford to. My number blew them out of the water.
So I continue to do less interesting stuff in finance.

~~~
BigZaphod
This is very true, but I'd like to add that old cliche: money isn't
everything.

I'm making about 65% of what I was making 2 years ago, but the experience is
far better. I have awesomely talented coworkers, get to work on fun stuff,
have freedom to explore interesting alternative side projects/ideas, work from
home and coffee shops every day, and have no strictly defined schedule. As far
as some people are concerned, I don't have a job at all - but that's what you
get when you love what you do and the company treats you like a responsible
adult (an all-too-rare thing).

While I do sometimes feel that the money is not enough month-to-month, I have
enough to invest some in retirement each month, pay a little extra on my
mortgage each month, and occasionally buy a new Apple gadget. Not having any
other debt (besides mortgage) makes this easier, too. If there's a bigger
lesson here, it's to eliminate your debt while you're making the big bucks at
the boring job - because that'll free you up to take the more interesting but
lower-paying job when it comes along. Don't be a slave to your lifestyle.

~~~
illumin8
People who say "money isn't everything" are often selling themselves short.
You can have all of those things you mentioned, and still get paid a good
salary, you just need to find the right company.

Too often, I've found that the companies that don't pay well are also filled
with terrible employees, simply because the only people left are those that
couldn't get a job anywhere else.

Also, any manager that says "we're not going to pay you as much as the
industry standard for someone with your experience, but hey, you get free soda
in the break room and you can work from home a few days a week" is ripping you
off. Plain and simple - he figured out that spending a few cents on sugar
water lets him save $thousands on salary.

You can make six digits plus, and still work from home, and chances are you'll
be working with smarter and more talented people because they just won't let
any schmuck that can't get a better job stick around.

~~~
BigZaphod
I'm not sure why you'd assume that being okay with being paid average (or even
slightly below) is such a crime. How does this translate to the company being
filled with "terrible employees" and the like? I think you're assuming that
everyone's goal in life is to just make as much money as possible and damn the
risk. It's not.

The company I work for has been around for more than 10 years but is very
small and fiscally conservative. I've worked for plenty of high paying
startups (often from home and coffee shops and doing interesting things) who
die in less than half the time this one has been around. In some cases, they
died _because_ they were paying above average wages in a misguided attempt to
compete for the best of the best. That didn't work out so well. Of the 5 or so
startups I've been with in the last few years, only Tapulous remains in
business. Sure, they all paid great and I got rid of my debt during those
years, but it didn't work out so well for them, did it?

~~~
loewenskind
>In some cases, they died because they were paying above average wages in a
misguided attempt to compete for the best of the best.

It's not misguided. I've worked in every size of company, from a <5-man
startup to fortune 5 and the best developers I've ever worked with were at a
mid-sized hedge fund. The work was relatively boring and the management was
shockingly bad but the much higher pay brought in some really talented
developers. The only reason the place didn't fold was because of the effort of
these developers.

------
TamDenholm
My one main weakness is what i find stands in my way of being great and that
is i make a sucky employee.

I detest routines, my life doesnt fit a 9-5 schedule, i often stay awake for
over 30 hours and then sleep for 12-14 hours, i get extremely bored of work
that is the same every single day and i will quit and i also dont fit into the
"professional" sector at all as i detest small talk and stroking other peoples
egos for the sake of it. I also dont understand "company loyalty", thats
something my Grandparents valued, to me it seems really quite silly. Sure, i'm
not going to disclose the companies secrets, but i'm not to stop myself
looking for other, better, higher paying jobs just out of loyalty.

This is why i freelance, it suits me well, i can work whatever hours i like,
i'm perfectly comfortable with meetings with my clients because its always on
topic and isnt about shmoozing, and i'm paid way more, also, i know if its
boring work, its always temporary so i can get through it.

The other thing is, what companies call "benefits" arent beneficial at all in
my book. Pensions, stock options, gym memberships, free lunch, corporate
retreats, private healthcare (i never get sick and i'm in the UK so the NHS is
good enough for me), dental, etc. I dont consider any of those a benefit to
me, i'd rather have the money.

So yeah, i'm a technically competent developer, but im a sucky employee, so i
found a groove that works for me, it also suits my life very well, i dont have
a wife/kids so its also very easy for me to travel around etc.

~~~
kranner
"Be regular and orderly in your life, so that you may be violent and original
in your work." - Gustave Flaubert

~~~
againanewacount
Thats why we are seeing so many regular and orderly and mediocre programming
(languages) around. Because if you are regular and orderly in your life, then
that's just who you are.

------
zephyrfalcon
The article claims that there is a lot of demand still for developers, in
spite of the recession. This may be so, but I get the impression that the
supply is still many times higher. I was looking for work last year, and sure
enough there were plenty of places looking for developers. I contacted those
that appeared to be a good match for my skills and experience. Often they did
not reply at all, and many of those that did reply mentioned that the response
to their job posting had been overwhelming... suggesting that while the jobs
are out there, you have to compete with hundreds of others, just to be
considered.

~~~
njharman
It all depends on skills and experience. It also helps to be currently
employed. I had recruiters bugging me monthly this past nov-jun. Current
employer and another local company struggling find enough devs to hire.

[Edit: I also get inquiries for jobs and contracts weekly through Linked-in.
It's a great job tool.]

~~~
tocomment
Any tips on getting inquiries on linked-in?

~~~
Lukeas14
Completely fill out your profile as you would your resume. Join relevant
groups.

~~~
tocomment
I filled out my profile completely. How does joining groups help?

~~~
Lukeas14
Internal and external recruiters often reach out to prospects through the
groups they belong to. Problem is they're not very location specific.

------
ecuzzillo
It's true it's hard to find good programmers. Two reasons, I think:

1\. Norvig's learn to program in ten years. Even if there's lots of demand
now, people can't just say oh, there's lots of demand, let's go program now.
They have to spend ten years becoming a good programmer first.

2\. You can only tell if someone's a good programmer if you've worked with
them (and sometimes not even then), and so you pretty much have to get a
referral from someone you trust who has worked with them, which limits your
pool of definitely good candidates to a very small number.

------
shin_lao
When you say "it's hard to find good developers" what you really want to say
is "it's hard to find good developers I can afford".

~~~
arohner
No, because good developers aren't strictly segmented by price. Bad developers
are just as willing to take a high salary, and there are much fewer good
developers.

At my last corporate job, we had a hard time finding good developers, even
before the topic of compensation came up. That can be attributed to the
unsexiness of the industry (fiber channel / SAN).

We went through a round of resume screening and applicants. We filtered > 100
resumes, and interviewed maybe 3. Our intern, an undergrad, was a better
programmer than any applicant we saw.

One guy, with maybe 10 years experience, was coding on the whiteboard. We
asked him to write something. He said "It can't be done!". I was seriously
tempted to grab the intern and have code it up.

~~~
silverlake
The parent comment is saying that to attract a good dev, e.g. from Google or
IBM, you have to pay much more to compensate for doing less interesting work.
Personally, I'd accept a living wage to work as a post-doc, but I'd need a
truck full of gold to work for an insurance company.

------
twymer
People define "good developers" as those who are extremely passionate about
their work. They come home code more or read/blog about code. It's not
entirely surprising that the people of this mold are a minority in the field.

------
nhebb
I've always noticed that companies advertise for Sr. Programmers. Everyone
wants trained programmers but few are willing to train them. Since those are
the only jobs advertised, job seeking junior programmers are forced to apply
for jobs they know they aren't qualified for, virtually guaranteeing that
hiring managers will receive a bevy of applicants that, on paper at least,
don't match the hiring criteria.

~~~
the_dude
Yes, I've run into this many times as well. Personally I'd love to get into
some type of programming job (esp. at a startup), but I didn't major in CS or
Computer Engineering nor have I had any professional experience in the field
(read: haven't had a job programming professionally, therefore not qualified
for a senior position). Maybe it's just the current economic climate but I've
found this true of many startups as well (looking on job boards like
Startuply, for instance).

~~~
nhebb
_Maybe it's just the current economic climate_

For advertised jobs, the "Sr." requirement has been true for years. Everyone
has their own way of judging economic growth and decline. Me, I like to look
at job ads - esp. engineers and programmers. Both of those areas have
senioritis.

------
ronnier
Some anecdotal evidence: Doing my graduate degree in computer science, it was
hard not to notice the lack of Americans in my classes. Sure, there were
plenty of Americans on the business side of school, but not engineering. I
receive emails and calls from employers and recruiters weekly, and a large
number of the positions require you to be a US citizen. Maybe that, combined
with the fact that a lot of the good developers are already working creates a
shortage of good developers available to be hired?

------
larsberg
I think the biggest problem is that many developers never make the leap to
professionalism after they graduate college. They bounce between firms without
ever going through a mentorship that increases their ability to effectively
develop software at scope, learning tool after tool and shipping little
application after application and never growing.

But, those UI controls aren't going to align themselves...

------
mstevens
There's no career path to get good at development.

As soon as you get good at development, you start getting promoted into roles
where you increasingly do things that aren't development.

Is it any surprise that developers aren't good when companies systematically
remove good developers from development?

------
Tangurena
The problem lies in how badly companies hire developers.

Sadly, the example used by the author - web development - is quite fitting. We
have all met the sort of client who was never satisfied and for whom the
saying "I don't know what I want, but I'll know it when I see it" was written.
The same applies to companies. The hiring folks are not sure what they want,
so they put out a bingo card full of specs and hope that something might work
out OK.

TL;DR - companies and clients don't know what they want, then complain then
they get it.

------
edw519

                            How Stuff Gets Done
                           
        |                           ..
     d q|   where                 .    .                 where
     e u|  negative             .        .               real 
     v a|    work              .          .              work
     e n|    gets             .            .             gets 
     l t|    done           .    everyone    .           done  
     o i|     |           .        else        .           |
     p t|     |       .                            .       |
     e y|     v .                                        . v
     r  |________________________________________________________
         5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
                             developer quality

~~~
prosa
OOC, did you draw this by hand, or is there an ASCII art chart maker out
there?

~~~
edw519
By hand. Space Bar, BackSpace, Delete, and patience are my friends.

~~~
mynameishere
Too bad you didn't have enough space to fit in "Where useless work gets done."

------
neilk
It just occurred to me that there's another reason: in programming, it is
relatively easy to detect a bad programmer.

Consider another complicated profession, like securities analysis. As long as
they know the jargon and have some reasonable-sounding opinions, you cannot
determine who is skilled and who isn't with a five-minute interview.[1] It
might take _years_ to separate skilled people from the lucky, or even the
unlucky!

So it may be that in other professions they have similar difficulties hiring
good quality workers. It's just that it's impossible to know with a five-
minute "fizzbuzz" type test.

[1] I'm just guessing here; maybe a Wall Streeter can set me straight?

------
njharman
What is "good"?

> Too hard for most people

I wonder if (I consider it a possibility without searching for evidence or
thinking too much about it) good developers are not common for same reason
good singers or artists or athletes are not common. Talent. Development is an
art honed by science and experience. But without talent no amount of training
or experience will ever get you out of the minor leagues.

------
PhrosTT
Since this guy is addressing 'web developers'... I got out of that game what
every client was another person who was harass me indefinitely about minor
site changes.

I realized the initial design money was not worth the phone calls and b.s. for
the lifetime of the site.

And I'm not even a good developer. Frankly I think "good developers" don't
need or want to deal with that crap.

~~~
ryanwaggoner
"That guy" here. I know what you mean, and my solution has been three-fold:

1\. Batch maintenance tasks together a few times a week, and manage client
expectations accordingly.

2\. Charge. A lot. In 1-hr increments, even if it takes me 5 mins.

3\. Find a junior dev to sub that stuff out to. I taught my brother to program
and he's paying his way through private school now doing maintenance work for
my clients. Win, win.

------
natgordon
The pros on this list really resonate with me. Whenever the "women in
computing" discussion comes up my biggest input is that women are missing out
on a job that can pay exceptionally well right out of college, offer
flexibility down the road and that it's FUN to create stuff.

------
jakevoytko
The question should be, "Why don't you know where to find good developers?"

If you want good developers to join the market, you're asking them to be good
at two things: development and noticing economic opportunities. They don't
always go hand-in-hand. You could wait for some "this is the last straw!"
event, which may never come and even if it did, the developer still has no
idea who you are. Or you need to recruit good developers and tell them they
have a better opportunity at your company. Google seems to find candidates
this way, just by sending people to universities, using recommendation
systems, and trawling the web for people who post good work.

------
slantyyz
Maybe those companies that have trouble finding good developers are using HR-
bots and headhunters who are looking in the wrong places, focusing too heavily
on checklists, and asking the wrong questions?

The funniest trend I notice these days is that headhunters do the reference
checks for hiring companies. It's in a headhunter's best interests to make
sure a short lister gets hired. Yes, headhunters have minimum-term guarantees
to keep their fee, but I do notice that many companies are also slow to fire
someone who isn't blatantly incompetent, so there's a good chance that a
headhunter will still win by placing a dud.

------
jdavid
sometimes truth can be found in movie quotes ( sometimes, not )

    
    
      THE MATRIX 
      Agent Brown: Perhaps we are asking the wrong questions.
    
    

Ever since I started starting companies I have been looking for co-founders,
engineers, hackers and developers.

It seems to me that the best co-founders are not the greatest coders, but they
are relentless and extremely open-minded. In fact they probably will write
crappy code that needs to be fixed later, but it got done and the company
moved on. They don't care about code quality, they care about relationships,
about milestones. They read books, and they like a variety of tasks, each
requiring focus and effort. They are happy doing stuff alone, and getting
people to come along.

As for developers they can make a good thing, and make it better, even great.
They take a vision and make it possible. They are usually shy.

Engineers seem to be about the truth in process or systems, and they are one
step away from idealistic scientists.

Hackers are more like artists. Code, and computers are just like a paintbrush
for them. They need to be inspired, and they bend the perception of what is
possible. Impossible is not in their vocabulary. They are OCD and love
focusing intently on one beautiful problem at a time. Maybe hackers should
never be employees. Hire them as consultants. Give them their freedom.

The best employees have always been developers, but they are risk adverse.
Engineers should only be hired for a 20+ sized company.

Hackers and cofounders are the best people to start companies with as they
seek risk reward scenarios.

------
ahi
<http://en.wikipedia.org/wiki/The_Market_for_Lemons>

Long story short, the bad drives out the good.

------
arethuza
In my experience it's a lot easier to find a good developer than a good
plumber or lawyer - and bad plumbers or lawyers can do an awful lot more harm.

~~~
ryanwaggoner
Maybe that's just because you're a developer and can more easily attract and
evaluate good developers, as opposed to the fields of law and plumbing, which
you presumably know less about.

------
terra_t
In my neck of the woods I think the problem is a lack of software managers,
not a lack of talented developers -- maybe things are different in Silicon
Valley.

Somebody who could do very well in an organization that manages tasks,
deadlines, architectures and conflicts well could be an NNPP or a ZNPP in an
organization that doesn't.

------
petervandijck
There are plenty of great developers.

~~~
swombat
Perhaps you could substantiate your statement a little more. The OP has
written 750 words arguing the opposite. You write 6 words making no argument
and somehow think that's a valuable contribution to the discussion?

~~~
weego
I don't really see the OP as having argued anything as he states that he might
well be incorrect. In such a case a 6 word response can be as equally valid as
750 words of unqualified blog filler.

~~~
ryanwaggoner
Ouch. I'm not sure how admitting that my knowledge of the subject in question
might be less than perfect constitutes "not having argued anything".

