

No Silver Programmers - maurycy
http://www.knowing.net/PermaLink,guid,fde0f610-3773-47b8-9be6-d6e5a8a76858.aspx

======
reitzensteinm
20x is ridiculous - it's far too _low_.

Look at the graph referenced - it describes, on a scale of hundreds of
minutes, how long it took programmers to implement something to spec.

My biggest problem with this is the time scale. More advanced programmers
build generalized solutions to problems and build on previous abstractions.
There's no clear limit to how clever someone can be while building
abstractions, so the gap between programmers will become greater over larger
time periods.

Taking a sample of developers creating small, custom websites, better
developers will have factored out a lot of functionality into a general
purpose web development kit with metaprogramming by site #3 (i.e. created a
Django, Rails).

Is it unreasonable to accept that:

1) Creating a site with a decent web tool kit is 20x faster than rolling your
own with mod_python, and

2) Metaprogramming for creating an (elegant) web tool kit is beyond the
abilities of a section of programmers?

Now, the barrier to picking up Django or Rails is much lower than writing one,
so perhaps this advantage is somewhat less important in a world with open
source and extensive libraries?

Well, I would argue that in a way, the efforts of the creators of Rails and
Django have been multiplied so many times by all the users that they, in
effect, have increased global productivity by a factor so large it dwarfs the
productivity of a single programmer - so their 'productivity', as measured by
the impact they have on the world, is a hell of a lot more than 20x the impact
of Mr Blub programmer in the cubicle next door.

Why stop at frameworks? What about languages? What is Guido van Rossum's
impact on global value delivered by programmers? What about the developers of
the microchip? I'm pretty sure my personal productivity would be lower without
that. The invention of the internet, which allowed for free sharing of
knowledge? What would the productivity of a programmer who invents general
purpose AI be? It really depends on how philosophical you want to get.

So, sure, the difference between developers creating an application to spec on
the time scale of hundreds of minutes is unlikely to be 20x. But that's a
garbage metric, and as always, GIGO.

~~~
Tichy
What about PHP, though? The crappiest, least abstracting language seems to be
the most productive one. Perhaps abstractions really are just bullshit? I like
abstractions, but while I am busy thinking about my abstractions, the PHP
coder has already churned out another three no-brainer pages.

~~~
icky
There's the rub: measuring production time needs to take into account
maintenance time!

~~~
Tichy
Nevertheless, PHP seems to be by far the most successful programming language
for web applications. I also don't think that maintenance time was ever
measured for typical production time studies.

~~~
lazyant
successful != popular ?

~~~
Tichy
Most of the recently hyped web applications are written in PHP, for example
Facebook. Wasn't there a list recently with the 10 most successful startups
(by whatever criterion), and 7 out of 10 were based on PHP?

~~~
mechanical_fish
That's not because PHP is especially great, today, but because there weren't
any decent alternatives in 2004.

Rails is _three-and-a-half_ years old, as a public project. The alternative
frameworks are about the same age. There are programmers with ten years of PHP
experience; there is nobody on Earth with so much as three years of Django
experience. Give the newbs some time to settle in before you declare PHP's
long-term victory. PHP has had a long headstart.

To have a successful startup that makes a 2007 list, you have to start
learning programming before 2007. Back in 2003, PHP was pretty much the name
of the game, unless you enjoyed being married to Microsoft or wanted to
construct vast mountains of overdesigned, stateful, undeployable Java
middleware. Or unless you were writing your own framework from scratch in an
alternative language, like DHH, or the Django folks, or the Redditers.

------
pg
Would he deny that there are good programmers who can do things that bad ones
couldn't no matter how much time they were given? This is true in other
fields; why should programming be any different? And if one programmer can be
infinitely more productive than another, he can also be 20x more productive.

~~~
acgourley
They would only be 20 times better or infinitely better at those particular
tasks though.

That seems right to me, it seems like only really Hard problems allow people
to show what they are made of, and the easier problems keep the pack more
bunched together.

It's an important distinction, because a lot of programming is not of the
demanding sort described above. It might even be that for some jobs, in some
job markets, you don't want to try to hire the best. The cost in salary,
recruitment, lost time and turn over might trump the 2-3x gain a top level
programmer would offer in a non-challenging environment.

~~~
pg
Part of performing a task is redefining it.

~~~
shawndrost
There are tasks that are strictly defined from the outset: there is an
existing code base and tech stack, and you must conform to certain company
conventions, and the requirements are strict. I would guess this work
constitutes 90% of paid development (and ~2% of useful code). I don't think
your argument really applies to those tasks.

------
pius
Certainly food for thought. I think the author underestimates just how bad
some programmers are, though. To me, his assertion that there is some
arbitrary limit on the productivity differential between any two given
programmers is much harder to prove than the assertion that there exist some
programmers who are 20x better than others.

~~~
eVizitei
There are definately some programmers who are 20X better than others, but I
think the authors point was that the 20X difference is between programmers who
are 3X above average and programmers who are multi-X BELOW average. The myth
is that there are some super-coders who are 20x better than your average
decent programmer, and I think that would be difficult to substantiate.

------
imsteve
> find me a peer-reviewed study of individual programmer productivity among
> professionals not students

Often, five man development teams create products that are very successful
while thousand man development teams create a product thats useless and
basically has no value. Thus the five man teams were way more productive. This
happens all the time.

Also, the same principal can be seen on an individual level within projects.

There ya go pal. It would be a waste to do a peer reviewed study just to
confirm something so obvious. You could even say that they reviewers would be
"less productive" if they spent their time doing so;)

------
rapind
Making any kind of assumptions like this is retarded. The coder umbrella
covers too much. Assembly line coders in a large corp are completely different
than a freelancer etc. Different skills, different motivators, just plain
different. Comparing the two is like comparing two completely different
fields... because they really are different fields.

Like comparing automotive designers and mechanics.

Coder is just too big of a blanket. Articles like this are irrelevant.

------
gruseom
He's right that almost all the discourse on this topic is anecdotal and that
the literature basically sucks. It's surprisingly difficult to find hard
evidence for the claims people make about software development. The only good,
readable source I know is Robert Glass' _Facts and Fallacies of Software
Engineering_ , which systematically cites research, most of which is
surprisingly weak.

------
ojbyrne
Nice article as far as it goes. I've always felt that the productivity of all
developers is affected greatly by all the other mundane tasks that surround
the programming - communications, deployment, answering the phone, logging in,
futzing in general - and that they are much better targets for productivity
improvement. That's why I find the recent rails vs. php deployment discussion
very interesting. I've been working on a django app for a while, and while I
enjoy the language and framework, I suspect any (slim) productivity increase I
have gained will be negated by the deployment.

------
cyanobyte
I am addicted to programming for startups. I have learned from 1st hand
experience and from CVS logs that on most projects 99% of the check-ins and
real coding is done by at most 2 guys (usually 1) on a 8-10 man project. I
would say, even though I haven't done a study, I see the hard facts every time
I check-in code. There really are programmers out there 20x-30x more
productive than the rest.

------
marcus
He lists C++ and C# as his favorite languages, and I tend to agree that with
these languages you can't really be x100 more productive than the average
competent programmer.

That kind difference is only possible in languages that are more expressive &
condensed, where you spend most of your time thinking not typing.

~~~
imsteve
I'd program in raw machine code if it meant that I could live in HI.

~~~
eru
Sorry. What does 'HI' mean?

~~~
icky
Postal code for Hawaii.

------
davidw
Silverback programmers:

<http://www.newtechusa.com/ppi/talent.asp>

