Fog Creek Software
Discussion Board




Why are 80% of programmers no good?

Why are 80% of programmers considered to be no good?  Someone said this in a recent thread, but why?  Why are these people no good at programming and why are they still in the programming field if they are no good at it?

Donald Duck
Thursday, December 04, 2003

People don't quite because it's a job. I wasn't a
great janitor but i didn't quit because of that.
80% aren't good because it's a job. To be good
requires more passion, more interest, more drive.

son of parnas
Thursday, December 04, 2003

I don't know if I agree with 80%, but there are many sub-species of programmers, some clearly better than others.

I think a lot of junk programmers are characterized by youth I meet who say "I want to be a programmer.  I love to play my computer games."  They don't really have a passion for development, they just want to make the games they spend 23/7 playing (one hour a day sleeping).  Or perhaps they just think computers are cool and want to be in the action.  Or maybe they hope that they can become good enough to work at MS, which they think is the road to riches.

At college I was amazed by how many programmers learned some languages, how to build some apps, and just left without having a hold of the underlying theories of programming, design and management.

Some have degrees, others are self taught; some like teams, other work rogue.

I question what empirical evidence supports the 80%.

Walt
Thursday, December 04, 2003

What about, why are 1% of programmers 10x more effective than the remaining 80 (empirical evidence notwithstanding).

Dustin Alexander
Thursday, December 04, 2003

Sorry, switched math. That should read 99.

Dustin Alexander
Thursday, December 04, 2003

"I question what empirical evidence supports the 80%."


Hear, hear!  A figure like 80% is quite simply preposterous, and no one with any experience in this industry would believe it for a minute.

The actual figure is much closer to ninety per cent.

Grumpy Old-Timer
Thursday, December 04, 2003

This DOES seem true from experience, though. Without study, everyone raise their hand: Does this seem true to you?

It definitely does for me.

Dustin Alexander
Thursday, December 04, 2003

you can be a no good programmer and make $80,000 a year. that's why I do it.

_
Thursday, December 04, 2003

in fact there is a point of diminishing returns. it isn't as if on average, a programmer who is 10 times better than the next makes 10 times as much money as a bad programmer.  most people would rather take the minimal amount of time to become a bad programmer and make $80K than take the endless hours necessary to becoming a top programmer and make $85K.

_
Thursday, December 04, 2003

Most of those 'endless hours' necessary were, for me, spent tinkering in my basement. It wasn't a painful process, it was an entertaining one.

Dustin Alexander
Thursday, December 04, 2003

sure. but the point is, now that you are 10 times better than the $85K bad programmer, are you making $850K?

_
Thursday, December 04, 2003

Of course you don't make that much. If management actually knew who the 10 times better programmers were, and that they were so much better, the wage scale would probably be 100k for the good ones and 20k for the rest. ;)

Sum Dum Gai
Thursday, December 04, 2003


Read some Ayn Rand people.  80% of everyone is no good.

A few capable people carry the world on their shoulders.

Whenever I start a job for an insane government department there is always some old guy who I am refered to for some technical detail. 

"You will need to talk to Klaus about that", and I am often warned "he can be a little abrupt/bitter".  And it always turns out that the old white haired frustrated control freak Klaus is the one person in the swamp of commitees and beurohacks who actually understands what is actually happening with information in the organisation.

<carlin> Lets be honest, isn't it amazing how many truely stupid people you meet during the course of the day ?? Carry around a pad and pencil, you'll have twenty or thirty names by the end of the day</carlin>

braid_ged
Thursday, December 04, 2003

At that point you're supposed to start your own company and start bilking your former corporate overlords.

This worked better in the 90's:

Get Good => Start Company => Get VC => Buy ludicrously gauche yacht => ETC.

Now you actually have to (*gasp*) work for it. Too bad. I liked my scepter and crown until the bank took them away.

Dustin Alexander
Thursday, December 04, 2003

brain_ged:

Uh, Oh. You mentioned that Rand girl. Your screwed now.

;)

That's strange. I had an experience similar to this. I went to a client's and ran into a guy working on the far side of the project I was running. We talked for three hours about the dawn of microprocessing, Apple, IBM, chip design. Then I meet with HIS boss (my client), and she asks me to evaluate his performance because she is thinking of moving him off the project. Meanwhile the other programmers are all asking him for advice and management is painting a target on his back.

I wonder how common this experience is...

Dustin Alexander
Thursday, December 04, 2003

This reminds me of Joels article Strategy Letter IV: Bloatware and the 80/20 Myth

"A lot of software developers are seduced by the old "80/20" rule. It seems to make a lot of sense: 80% of the people use 20% of the features."

"Unfortunately, it's never the same 20%."

It is almost the same here. Everybody is seduced by this rule. If you were at university, you of course belong to the 20 % good people because you were at university, paid alot of monney. You must have learnd something. If you are selftaught you are of course also in the 20 % because what do you really learn at university. There are millions of combinations, belive me. Ph D in Physics is better than BS Computer Science. or vice versa..

The widht of Computer Science is also a problem. You can be a master of Windows API but when it comes to writing a scientific program you ara a beginner. People in that field will laugh at you the same way you laugh at them when they try to build a GUI. And then by default you place them in the 80% part of the spectrum.

Fredrik Svensson
Thursday, December 04, 2003

Sturgeon's Law applies to people.  Also, the fact is that the tightening economy has already weeded out a lot of bozos that jumped on board when VCs were waving fistfuls of cash in front of anyone who could act like a programmer.

I actually don't think the problem is all that bad; it just seems worse when you've working with an enclave of incompetent people. 

I also find that the people who complain about the 80% the loudest are usually part of the 80%.  It's those elitist bastards that you have to look out for. =-)

Alyosha`
Thursday, December 04, 2003

Eighty percent are no good because programming is a discipline controlled by non-programmers, unlike other equivalent disciplines.

Managers are most comfortable with those who DON'T tell them how to do their job. That's why you see Team Work feature everywhere. That's why most programmers are mediocre.

The best ones have left to work at Google, Microsoft or EA.

analyst
Thursday, December 04, 2003

Programming, and our view of our peers, is like driving a car. 

We all take unsafe shortcuts from time to time because of a myriad of factors, but when we see someone else doing the same thing we think 'gee, what an asshole; most drivers suck!'.

So it is with programming.  Due to bad planning, bad requirements, or whatever else, we sometimes do things the Wrong Way no matter how much we wish we could do everything the Right Way.  But when we inherit someone else's code to maintain, we don't really stop to consider this and the fact that we're often no less guilty -- we just think 'man, the guy (or girl) who wrote this sure is an asshole'.

Of course, not everyone who is a programmer should be one, but a LOT of the gripes we have aren't really because of pure incompetence.

Mr. Fancypants
Thursday, December 04, 2003

"The best ones have left to work at Google, Microsoft or EA. "

Well, Google and Microsoft anyway.

Mr. Fancypants
Thursday, December 04, 2003

1. Sturgeon's Law - 90% of everything is crud.

2. Statistics. 64% of programmers are average. An additional 18% are below average. That's 82%.

www.MarkTAW.com
Thursday, December 04, 2003

If only John Galt were a programmer... He could shoulder the weight for us all...

Cletus
Thursday, December 04, 2003

"Why are 80% of programmers considered to be no good?"

Depends on the meaning of good?  I'm sure there are some bad programmers, but 80% of them?  And I would also guess that the majority of folks who come here consider themselves to be in the 'Good' category.  So someone is not telling the truth, fess up now...

Do you think that the maybe what is contributing to the 80% bad programming stems from bad requirements?
http://www.cio.com/archive/101503/work.html

Cletus
Thursday, December 04, 2003

"most people would rather take the minimal amount of time to become a bad programmer and make $80K than take the endless hours necessary to becoming a top programmer and make $85K"

Assuming that is true, which programmer is wiser. Which happier?

Obvious
Thursday, December 04, 2003

Here is a better question, if 80% of programmers are useless, why doesn't the industry get rid of them! Weed em out and toss them, cut their costs by lets say 75 percent while only losing 5% of the productivity? And then they wouldn't need to outsource everything but the receptionist overseas, and the reason is because they can't tell which ones are good which one's arent (the only profession where we learned to do that is sales), in fact there are some companies where politics, bueracracy and inertia make 100% of the developers useless. and so we replace an army of useless programmers in the US with one in India (Take schwab for example) the thing corporate management teams need to own up to is that a cost without a benefit is still an unneccessary cost, even if its lower, and that managers MUST start to figure out how to measure productivity.


Because the truth

the artist formerly known as prince
Thursday, December 04, 2003

Oh crap!  The corporate overlords got him before he could tell us The Truth.

Mr. Fancypants
Thursday, December 04, 2003

"he can be a little abrupt/bitter"

This is an interesting principle in general. I have a saying I made up: "Look for the guy who everyone warns you to stay away from -- that man is the one who knows what is really going on." I made this up not from IT work, but political activism in a foreign country. Everyone tried to keep by away from a man I will call Topaz who was said to be a dangerous criminal and a lunatic. Ones I spoke to Topaz, he told me the history of what was really going on, what the hidden agendas of the various players was and how to get around them.

Back to the topic on hand, the problem with pay is that there is no metric for identifying programmers who are 10x as productive. In baseball, I can give you statistics that will tell you who the best players are. In music, I can look at the charts to tell you, if not who is the best, who most people think is the best. In programming there is no metric. There is not even a consensus as to who is good.

If there was a metric like there is for music and baseball,  the best programmers would be making ten million dollars a year. The worst would not be working on commercial projects but would simply have to work for free on various pony league projects.

Dennis Atkins
Thursday, December 04, 2003

ALso, the key thing about the baseball and music metrics is that they can not be easily gamed -- you either hit the ball or you didn't. your album is either on the charts or it is not. Current ideas of productivity metrics for developers all can be trivially gamed if these metrics were to be correlated with pay.

Dennis Atkins
Thursday, December 04, 2003

And when a truly stellar programmer is recognized in an organization, guess what ... he/she gets promoted to management.

T. Norman
Thursday, December 04, 2003

AFNAP,

I like the points you make. The US is noncompetitive in IT because most developers are bad. Whereas in india, most developers are good (comparatively). How did this come about? Are Indians smarter? Do they have better schools? No and no. The difference is that in India, companies hire the smartest and most competant people in India to be programmers. How can they do this? Well, the average per capita income in india is $800/year. The average income of a developer in India has now skyrocketed  up to $20,000, which is 25 times the average income.

Here in the US, the average per capita income is $32,000. The average developer makes $64,000, which is twice the average income. (these numbers are from memory, so what if they are 30% off, the point still stands) To have the same incentive to be a programmer in the US, a programmer would need to make $800,000. Yes, the Indian programmers are basically making the equivalent of $800,000/yr on average, in relation to how much the people around them are making.

So here in the US, a programmer making $64,000 can rent a room near Manhattan where he works. He works too many hours and so can not cook at home so most of the rest of his income is spent on take out food.

In India, a programmer can hire a servant for $800/yr. For $3000/yr, he can hire a master chef. For $15,000/yr he can hire a houseful of servants, including a chaffeur to drive him to work, a tailor to make his custom fit clothes from scratch, a full time masseuse to prepare a sauna and a rubdown when he gets home from work, and three gardeners to run his personal organic vegetable and herbal garden. He will live in an enormous estate and be able to afford a heated swimming pool with a waterfall with the extra money that's left over.

So look at the incentives. No matter who you are in India, being a programmer is the way to go. You can make a lot more doing that than being a lawyer, a doctor, a politician, a sports star, or a musician. Thus the very very talented people in india are fighting it out to get programming jobs and mediocre and incompetant programmers have absolutely no chance.

Here in the US, if you are a smart talented person, you might be a programmer if you have a natural love for it and are willing to put up with the long hours and poor working conditions and enjoy being yelled at all the time. Or you could become a doctor or lawyer or sports star or musician and have a chance of really striking it big, and also being respected for what you do.

That's why we are in the situation we are in.

Dennis Atkins
Thursday, December 04, 2003

<quote>
In India, a programmer can .... live in an enormous estate and be able to afford a heated swimming pool with a waterfall with the extra money that's left over.
</quote>

Hell,  I'm moving to India!

Matthew J Sullivan
Thursday, December 04, 2003

Matthew, are you of indian race, have relatives in india or have an indian spouse? Failing that, are you starting a company division in india that will hire indian employees at high wages? If you can not answer yes to either of these, india wants you to stay the hell out.

Extremely few countries have immigration policies as liberal as the US. India is not one of them. Your chance of finding employment in india is low and your chance of getting a permit is zero.

The good jobs in india are for people of the indian race. Not of the white race. It's as simple as that.

Dennis Atkins
Thursday, December 04, 2003

<quote>
In India, a programmer can .... live in an enormous estate and be able to afford a heated swimming pool with a waterfall with the extra money that's left over.
</quote>
Talking about stereotypes... You missed that programmers in India are not nerds and that they have more sex appeal than a Bollywood star.

Many (X%) of programmers are no good because, as in most disciplines, you have many people that are not really interested nor are smart enough to be competent on what they are doing. In the same way, we have crappy lawyers, doctors, plumbers, sales people, managers, etc. Is the proportion as high as 80%? I have no idea, but there seems to be a lot of not very competent people in most (if not all) disciplines.

uncronopio
Thursday, December 04, 2003

I really wish that were true. Honestly!

Indian Programmer in India
Friday, December 05, 2003

I meant the stuff abt swimming pools and chauffers and what not.

Indian Programmer in India
Friday, December 05, 2003

artist ...

> Here is a better question, if 80% of programmers are useless, why doesn't the industry get rid of them!

Because they're Team Players.

analyst
Friday, December 05, 2003

Dennis,

> The good jobs in india are for people of the indian race. Not of the white race. It's as simple as that.

They're also reserved for Hindus, not Dalit or other members of the scheduled groups.

analyst
Friday, December 05, 2003

Also, Dennis, that's a good point about the high comparative, but it's offset by two things.

First, the class consciousness that sees management as the desirable role, and engenders a readiness to kow tow to management that's very dangerous in software development.

Second, there's a dearth of the infrastructure that leads to talented people spending lots of time learning on their own. This is a very important mechanism for selecting talented people, especially in software development. Just going to lectures never created a good programmer. Where there is good infrastructure, it's oriented to the upper castes.

analyst
Friday, December 05, 2003

I don't by the 80% premise. I've been in this industry for almost 25 years and my personal experience is more like 20% are no good. So either I've been very lucky or somethings wrong with the 80% number. Is there ANY objective evidence for it?

I've never bought the 10x productivity differential either because I've never run into anyone like that. 2x-3x maybe

Just my $0.02

sgf
Friday, December 05, 2003

"And when a truly stellar programmer is recognized in an organization, guess what ... he/she gets promoted to management."

So that's where all the 'good' programmers went... 

Bad Programmer
Friday, December 05, 2003

analyst,

Interesting. Please elaborate.

Re management: Are you saying that in India, the best programmers will try to get management positions because managers have greater social status than programmers?

Your point on self-learning is interesting. I do not know much about the state of learning in India. You can learn programming on a free 10 yr old computer, but you need electricity. I suppose you're saying that india will not make use of the full potential of its population as long as its infrastructure is poor in most of the country.

Perhaps... but don't forget that the television was invented by a guy who rode his horse 20 miles to school and had access to no electricity or books when he invented it -- he was plowing a field with a mule!

Dennis Atkins
Friday, December 05, 2003

I would definitely say the number is closer to 90%.  The problem is most people just accept that software will always be crap.  Their standards have been lowered and they believe that constant bugs are to be expected.

It's also not difficult to be 10x more productive when there are so many incompetent people in the field.  For instance, one of my coworkers has a CS degree from a decent university.  She decided to get a CS degree because of the money she thought she would make (this seems to be common among the incompetent people).  I have watched her spend all day trying to figure something out.  I then offer to help and write some sample code that does 95% of what she needs in about 10 minutes.  She spends several hours working out the other 5%.  Unfortunately this is not an exaggeration and is not uncommon.

Anonymous
Friday, December 05, 2003

Why are 80% of programmers no good?

Because words are cheap, and the more you criticise others the better you feel about yourself.

Realist
Friday, December 05, 2003

So much FUD  about  India and Indian Programmers..

Indian Programmers are like Programmers everywhere. Motivations for Indian Programmers are the same as any other Programmer of any other nationality. Hell, motivations for *any* technical proffessional is the same everywhere. India has a very LARGE population. Therefore %-ages do not work when making comparisons. Use actual numbers. 150,000 Programmers are 150,000 Programmers, even if they may form only 0.015 % of the population in India. India's electricity is up and running. Even if it does not, shops *always* use power generators for misson critical work.....

...and so on and so forth.

<note to self>
Write that BIG article .
</note>

Indian Programmer in India
Friday, December 05, 2003

I have to agree with sgf here, while I have been consulting I have seen some terrible work but in nearly every instance the fault can be traced back to poor processes within the organisation rather than an individuals lack of competence.

Of course there are the few at the bottom who just can't do it but I'd say 10% is more realistic, probably the same at the opposite end as well.

Tony Edgecombe
Friday, December 05, 2003

Indian,

I believe that the comment about resources refered not to shops (we accept the shops have electricity), but we are wondering if the majority of indian familes have computers for their kids to practice programming on, electricity and internet access, or if it is more common to not have those things until one arrives at college or high school. The idea is that the really good programmers entering college at age 18 or 20 are the ones that have 6-10 years of programming experience creating programs and learning languages behind them already.

Wondering
Friday, December 05, 2003

Wondering,

True, but exposure is increasing. Schools have PC access from 1st Std. (Grade I or 5 to 6 year olds).  Of course, I am speaking of private schools and not the public ones. Even they are improving a lot. Even so, that is a *large* number boys and girls

The point I am making is the point that has been made since Indpendence (1947). India is poor. Indians are filthy rich.  That statement goes right from economic wealth to opportunities available to academic prowess.

While I admit that insofar as technological involvement is concerned there needs to be a helluva lot of improvement, the penetration made into businesses and households is still large, number wise, thoug abysmally poor, percentage wise.

When it comes to meeting demand, especially external (foreign) , Indians can match or better the local (to the foreign nation) suppliers,  since the resoures are aplenty since the volume required is easily serviced by the exisiting competence base though that base may be totally insufficent to internal (Indian) demand.

Indian Programmer in India
Friday, December 05, 2003

A huge number of people tinker with programming, just like I can change a plug. I don't call myself an electrician, but anyone can say that they are a programmer. Programming is the using-a-screwdriver part of being an electrician. I would say that 99.99% of programmers do not meet a minimium professional standard, but 50% of those are schoolkids who have just ripped off their first javascript from the web.

The question should be something like 'what proportion of software engineers are no good'. If you want a professional job, you want people with some academic underpinning of the subject, an understanding of issues around the subject - customer needs for example - and skills in other aspects of software engineering like (duhhh) testing, design, writing documentation, etc. That requires good recruiting and continual training to follow it up. Which leads to another good question, 'why do 80% of managers de-skill their staff'.

If you think that 80% of your peers are no good, perhaps you should move on up the food chain.

Ian Sanders
Friday, December 05, 2003

As Jesus said in Luke 18:19, "...No one is good–except God alone. "

Zaphod Bebblebrox
Friday, December 05, 2003

"...No one is good–except God alone."

And, according to this, Michael Kolesnik:

http://www.xent.com/FoRK-archive/spring96/0158.html

Dignified
Friday, December 05, 2003

> If you want a professional job, you want people with some academic underpinning of the subject

Heh, this could start a thread that would take us back to the 'how much formal eduction do you need' conversation ...

Is anyone keeping track of how quickly JOS cycles? I must admit that many of the recent threads make me feel like we must have just had a "JOS Reloaded" moment ...

Len Holgate (www.lenholgate.com)
Friday, December 05, 2003

I've definitely been in shops where 75% of the programmers were excellent.  At least in comparison to the lower 25% (me).  Programming has a lot of youth in in, with proportionally less experience.  A lot of the necessary skills are only acquired through experience, and a new programmer can't have that experience.  That was definitely my case: 5-10 years less experience than anybody else in the department.

Clay Dowling
Friday, December 05, 2003

Dennis, yes, your interpretation of my point is correct. Indian companies are more hierarchical and so staff respect position more than in comparable Western companies. This can lead to programmers being more oriented to "being promoted" than to excelling at their work.

Regarding infrastructure, my point is that a teenager, student or even young adult in India is less likely to have a modern computer at home or in his dorm, and thus less likely to engage in the hours of practice that make a talented developer.

analyst
Friday, December 05, 2003

80% of programmers are no good because we live in the opposite of Lake Woebegone.

MD
Friday, December 05, 2003

>Where there is good infrastructure, it's oriented to the upper castes.

You weren't talking about India here right?
People need a resonable amount of time and a 486, they don't need much more than that. Sure you can rant about java or whatever, but if you are taking concepts, not allot is needed. Time is needed, doing something interesting and sometimes doing things you aren't so interested in, just so you get the concept right in your head. People always assume they need $x to learn $y, when they get $x they get bored, or think they need more. Work with what you have, get going today, when you hit a limit, you'll really know if you need $x.

fw
Friday, December 05, 2003

" I would say that 99.99% of programmers do not meet a minimium professional standard"

That's the whole point.  What professional standards?  SEI, ACM, IEEE etc... 
Since the barrier to entry in programming is so low, anyone who could turn on a pc and type with any amount of proficiency is considered a 'programmer'.  The profession of software development is seen as little more than a glorified data entry.   

Cletus
Friday, December 05, 2003

Statistics can be quoted to prove any point.

43% of all people know this.  :)

Kentasy
Friday, December 05, 2003

You don't need hours of practice at home to become an excellent programmer. Doctors don't practice surgery at home, lawyers don't sue their wives . . . ok . . .  lawyers don't sue their kids. Usually. Architects don't perpetually build themselves new houses.

Years ago, one of the best programmers I ever met was apalled when I asked what kind of PC she had at home. The very idea of it was abhorent. Work is work. Home is where you have your life. If you think you get the Big Picture from a screen at 2.00am, you need a shrink.

Ian Sanders
Friday, December 05, 2003

7 years experience in the "web world" as web application developer. I don't buy the 10x productivity thing (as someone else said, maybe, maybe 2x3x or even slower but their CODE is so much better). I don't buy the 80% thing ... honestly.  The only pattern I've seen is that MS oriented people seem to be much duller than unix people.

Me
Friday, December 05, 2003

fw, it's not just a matter of having a 486. Modern computers make development more convenient by allowing work with modern compilers and other tools.

Also, they will be associated with the other paraphernalia associated with learning and exploration, such as printers, books, private space and free time.

Ian Sanders, in the mainframe days it was certainly true that a programmer would just learn on the job. These days, if there are any such people, their expertise is shallow( i.e. if they don't do any exploring on their own.)

Re your comparisons with other occupations, you will actually find that many lawyers spend or spent a lot of time pulling arguments apart, often in debating. This is roughly equivalent to developers exploring at home.

Medicine is different. It's more of a knowledge capture than learning a talent.

Architects often do a lot of drawing at home, or did while at school. That contributes to their creative talent.

analyst
Friday, December 05, 2003

"Thus the very very talented people in india are fighting it out to get programming jobs and mediocre and incompetant programmers have absolutely no chance."

Thehow come there are so many bad indian programmers?

the artist formerly known as prince
Friday, December 05, 2003

What's the big deal on this thread about indian programmers?  The way some of the people on this thread are going on about how smart indian programmers are above the rest of the population, kind of makes you think their is something special in the water in calcutta.
I mean no offense to people of indian heritage, but just like any other group of people there are smart-talented people and not so smart talented people, irrespective of race/culture.  This collectivist banter about how a group of people are somehow 'smarter' then another group because of their nationality is just plain ludicrous.    A good programmer is a good programmer, regardless of the people who belong to the same race.  Likewise a bad programmer is bad programmer, regardless of the geniuses who belong to the same ethnic group.  Secondly, the reason there is such a hard-on in the industry over indian programmers is because they cost cheaper then their american counterparts.  If indian programmers charged american wages for their labor, the corporate america would drop them like a bad habit.

Cletus
Friday, December 05, 2003

Cletus, it just shows what a few million dollars spent with top American PR firms can achieve.

analyst
Friday, December 05, 2003

"I've never bought the 10x productivity differential either because I've never run into anyone like that. 2x-3x maybe"

You have to think of the functionality accomplished and not just the lines of code churned out.  In fact, the 10X programmers don't write much more lines of code as the rest; they just find more creative ways of doing things and ways of reducing redundancy.

The 10X programmer has a greater ability and/or willingness to find commonality across a design and wrap them into classes and libraries, and those libraries enable them to write subsequent code 10X faster.  The 10X programmer also does other things like write code that generates code, or write code that does things dynamically based on a few bits of metadata instead of writing a class for every variation of functionality.  The 10X programmer neatly uses techniques like recursion to solve a problem in a few lines where the average programmer would not have noticed the recursive possibility and would have gone on to write hundreds of lines of convoluted logic to perform the same task.

After they have written such a library or dynamic tool or elegant algorithm, it is easy to take what they have done for granted.  Unless you think about what the average programmer would have done, or have seen what prior programmers actually did before the code was refactored, you don't realize how much time was saved.

I don't consider myself a 10X programmer (yet), but this is an example of a 10X-like thing I was involved in.  There was an application with over 100 screens, which would need several more added.  A large percentage of the screens needed a variation of the same set of widgets displayed in the same position across the board, something kind of like a toolbar.  The previous programmer(s) who worked on it write up a 10-page procedure that required you to do a bunch of cut-and-paste and tweaking of code to include the thing in your screen.  I and one other person studied it for a little and came up with a way to put the functionality into a library so that the objects could be included in your screen simply by making one of about six library calls (depending on which variation you needed).  So now it takes two minutes to include it instead of a day.

T. Norman
Saturday, December 06, 2003

By "10-page procedure" above, I didn't mean a procedure in a program, I meant a 10-page document explaining the steps.

If your organization already hires mostly above-average programmers, then the average programmer where you work is probably already at 2x-3x of the average for the industry.  So it would be harder to notice 10x with them.

Remember the studies that found the 10:1 variation were based on giving a large set of programmers the same thing to write.

T. Norman
Saturday, December 06, 2003

The 80% question (a number I too would put at 95% or higher) is mired by a number of problems.  The interesting population, elsewhere called Grand Master Programmer with a nod to the chess world, is very hard to find, and therefore hard to study.  For the same reason, most in the field (and in this forum) have only poseur examples to rely upon, so we have a boatload of mythology in the way.  Incidentally, I have observed (several times, different Grand Masters) that the multiplier can be upwards of 50x, but whether we consider the 10x Masters or 50x Masters, the problems are still the same.

Dennis Atkins is right that management has no reliable objective tool to identify Grand Masters.

T. Norman is wrong that Grand Masters always get promoted to management.  While Grand Masters tend to be people that would excel at any activity (contrasting them with the ordinary social-misfit hacker-savant who is usually not particularly talented anyway) GMs, being creatives, tend to like to be make things.  Shuffling papers, holding meetings, and manipulating social relationships would tend to be more irritating than challenging for a GM.  Some might be lured by the currently lucrative (and absurd in a creative field) manager pay, but the best are compelled by nature to live a creative life, no matter the sacrifice.  But I suspect T. Norman was just funnin'.

Uncronopio correctly hints that software is not alone in enduring mass incompetence.

Clay Dowling might find as he develops the experience he feels he lacks, that experience and skill are sine qua nons for all complex activities, but they both differ from talent, which alas is innate.  FW hints at two things that make great programmers great, practice and insatiable curiosity.  Ian Sanders' observation about doctors, lawyers, and architects is silly in that the great practitioners in those fields do not stop what they do at 5pm, even when they can't exactly perform surgery at home.  I'd lay odds that the "best programmer" he ever met is assuredly not a Grand Master.  If Ian has goals loftier (to him) than being great at what he does, than huzzah for him, but please Clay, don't let his attitude restrain you.  Talent must be developed, and mastery requires feverish determination.

Prince asks "why doesn't the industry get rid of them!"  Hear, hear.  But don't get your hopes up for this happening soon, for three reasons that I can see.

One.  Evolution works on a glacial time scale, in biology and in realistic economics.  Companies don't fail completely when they are inept.  Among other things, perception, weak competition, and legal injustices all contribute to their survival.

Two.  The software creation field is stuck in a quagmire of trying to manage to success, wrongly thinking process is a workable substitute for talent.  Until everyone involved knows that time-in-service is not talent, that programmers aren't pluggable resources, that software is written not manufactured, this silliness will endure.  One interesting development on this front can be seen at  http://www.agilemanifesto.org/ 

Three.  Most Grand Masters are busy helping organizations that deserve to fail hold on by their fingernails.  Most latent Masters are stuck in environments that cannot help them develop their talent, or even just do well.  Few GMs are actively thawing the ice of that glacier in point one.

HadEnough
Saturday, December 06, 2003

Thansk for making the point that it was the same specification and programmers were measured how long it took.

Compared to the average programmer, the best did it:

10 times faster
with 10 times fewer errors
with 10 times greater preformance

Now there are also BAD performers, who are way less than average. Not sufficient to say they are 100 times worse, they are infinitely worse since they generate negative productivity by wasting other people's time while making no useful contributions. There's a few of these folks out there and they can be very troublesome.

As far as folks who don't believe in this goes, the study als showed that companies tended to have everyone at the same level. Companies with average programmers had all average programmers and companies with top programmers had all top programmers. This is because top programmers don't want to work with people who are poor. Also because certain companies know what top programmers are and can hire them and provide them with a nice work environment, like Fog Creek, or Microsoft, or SAS. So if you are in one group or the other, you may not believe both groups exist. Those of us who do consulting at lots of different ploces have definitely seen both sides and the differences are real.

Dennis Atkins
Saturday, December 06, 2003

HadEnough - my point was that you don't need to take your work home to be a great performer in your job. I didn't say that you shouldn't do that and I certainly didn't imply that it's bad if you do.

Ian Sanders
Monday, December 08, 2003

I seldom take my work home.

But the majority of my learning is done at home.  I have a database, web server, and compiler with which I have complete freedom to experiment, and nobody can accuse me of wasting hours on trying something new and unknown.  That is in addition to browsing the web and reading books.

Then I can take that knowledge to work and get things done more efficiently, so I will have less of a need to take actual work home.

T. Norman
Tuesday, December 09, 2003

An enlightened employer would give you space to do that at work, but how many of those are there around.

Ian Sanders
Tuesday, December 09, 2003

Any of these 10x programmers have anything on the net worth seeing? Back when I started I put lots of code on the net for people to test, read, download, criticize etc.  It's gone now as most of it was not what I'd write today (and I've switched language of choice for the web since then). But then I'm just a slob. I bet a 10x programmer would have some really neat stuff as they would be so much more productive than me. Any so-called 10x programmers on this board who can show us what a 10x programmer can do? Also, I wonder what Sports teams do who can't all hire a Michael Jordan, how in the world do they get by with less?

Me
Thursday, December 11, 2003

*  Recent Topics

*  Fog Creek Home