

Steve Jobs claimed the best coders are 100x better than avg. Still true today? - wmilesn

Steve Jobs said in his 1995 'Lost' interviews that in general, "the range between average and the best is at most 2-1. In software, the difference between average and the best is 50-1 maybe 100-1."<p>Does this ratio still hold true today given the proliferation of equalizing tools such as jQuery (or even Javascript for that matter), Rails, Mongo, Chrome, Sublime, Codecademy, Stack Overflow, Coursera, [EC2, Heroku], etc.
======
orangethirty
I'm currently working in a system that seems to have been written by
neanderthals. Global variables everywhere, non-descriptive variable names,
functions 500 LOC long, no main program loop, etc. It is written in Python,
but my god, at this point its fucking Latin to me. Have spend two days trying
to decipher it in order to bring an offline system back online (the system is
what makes the company money). Realized its just easier to re-write this pile
of shit into a program that's less than 500 LOC. Yes, from 5000+ LOC, to
around 500. It will now be maintainable, and modular (and fucking readable).
Tell me now, how much more is that worth?

PS. It was written by bad PHP code monkeys who lied about knowing Python (much
less how to program).

~~~
lifeisstillgood
Any chance of a looksie at the code? Off the record?

~~~
orangethirty
Doing so would mean that I value your curiosity more than I value my client,
their business, their employees, my family, and the well being of everyone who
depends on that system. So, no. And it's not cool to ask, either.

~~~
j2bax
Seemed like a harmless enough request with an easy yes or no answer. I find
him asking a lot cooler than your response. If the situation is so sensitive
to everyones well being, you shouldn't even be discussing it on a public
forum. Get over it.

~~~
lifeisstillgood
It was an unfair request and one I made off the cuff.

With more time I would have either rephrased or not asked. I withdraw the
request and apologise to both the above posters.

I don't particularly care about the sensitive portions of the poor 5000LOC but
I am interested in how these things get so out of control.

I was some time ago trying to start a MSc in software engineering - focused on
just these differences in productivity - and the biggest stumbling block is
finding examples of bad code and coders to study. People who want to be part
of a study tend to be in the upper quadrant and from my point of view boring.

Anyway, long story short, I posted before thinking

Take care

~~~
gngeal
Why unfair? I have a friend who is an extremely competent programmer (and a
very prolific writer) and he sends me - of his own initiative - snippets of
code written by his cow-orkers (or at least he did, until he switched jobs and
went into a company with _much_ more respectable peers, so there's no fun to
be had in that). You wouldn't believe what some people are capable of
attempting to write. (Except, of course, you would, if you visit
thedailywtf.com with any frequency.) Let's just say that, for example, an
awful lot of people believe these days that they are competent enough to
rewrite date-handling libraries in the Java ecosystem. Of course, the
correctness of the result fails horribly.

~~~
lifeisstillgood
But je is your friend and you don't ask him to drop the code on HN.

I really want to use the codebases of the bottom three quarter to help drag up
the quality bar - but like I said it's a hard thing to arrange.

Added to this is that the lack of code literacy means these proprietary places
can swim for years in the same circles never actually getting out from under.

If companies want competitive advantage from their technology they need to
invest in software and code bases - reducing the pressure on delivery (CI or
just cut back on the expectations) and focusing on getting better code. I mean
no-one argues that a novel written by two hundred teenagers will be less
intelligible and workable than something by Salinger. Why the hell would we
expect different from code.

Not sure where I am going with this - other than writing good code is a big
deal, and stuff that prevents it needs to get out of the way

------
zerohp
In my opinion, it's even more true than it was 18 years ago.

The "equalizing" tools help the average programmer when everything works well,
but they make it significantly more difficult for them when problems arise.
Today's tools have given us many leaky abstractions.

------
iends
There's a lot of peer reviewed software engineering research to suggest what
Steve Jobs said is true, long before he said it.

[http://skeptics.stackexchange.com/questions/7559/are-
there-s...](http://skeptics.stackexchange.com/questions/7559/are-there-
studies-clearly-illustrating-the-great-discrepancies-in-programmer-pro)

------
ibudiallo
I am sure Steve jobs wasn't referring to the quality of code produced. I would
say he was talking about the results that where produced. So the tool you use
might make it easier to work with. But if you are creating a highly optimized
useless product it is a waste of time.

------
itsybaev
It depends in what) Some "coders" are just the best at pretending that they
are the best LOL Proof: <https://news.ycombinator.com/item?id=5066813>

------
bschiett
Things have changed a lot - more tools that allow bozos to get into
engineering these days. There are just more wannabe engineers now so the %
that is good is just smaller.

------
coldtea
jQuery, Node, Sublime and Stack Overflow as equalisers?

They don't even narrow the gap by 1/10 of an inch.

------
lifeisstillgood
My view is value as opposed to ability

Like a soccer player, some are x% better than others yet get paid 100x because
that extra x% is able to win more games

Similarly a top developer may only be a bit better than you but that
difference, when applied within a solid engineering company, can lead to
business results 100x greater.

Measuring that is hard, getting it in a raise negotiation even harder.

------
segmondy
Absolutely.

------
VikingCoder
See Fact 2 from Facts and Fallacies of Software Engineering by Robert Glass.

There's a PDF online, but I suspect it's not legit.

------
Tangaroa
100-1 might be an exaggeration, but the knowledge of different tools, methods,
and patterns and how to apply them gives the experienced programmer the
ability to produce code that does more, more quickly, and with fewer side
effects than the inexperienced programmer. There is also a matter of natural
talent: The best software engineers can design software that the average
programmer would not be able to develop to the same quality if given years to
work on it.

To give an anecdote, the place where I most recently worked had two developers
who had been there since the beginning, a software engineer and another coder.
The engineer on a bad day could quadruple the output of myself and the other
guy in terms of both the number of changes and their value to the project.

