Some hard numbers on programmer productivity

http://www.joelonsoftware.com/articles/HighNotes.html contains some hard numbers (halfway down) on the standard deviation in productivity among computer programmers.  The study is among a population of fairly bright folks (Yale undergrads) and even when only the best students are considered the standard dev. is still quite high.


[Note:  The article does not say whether or not the students were all using the same languages and tools but as the data seem to be from a course with a heavy emphasis on Unix code-monkeying it seems reasonable to assume that all of the students were using C.] 

10 thoughts on “Some hard numbers on programmer productivity

  1. Eisenstadt does, indeed, teach that course in C (although I think some Perl snuck in at one point).

  2. The biggest problem I have with the self-reported numbers is one that Spolsky didn’t even mention. Is it possible that a Type A programmer in a top CS program might underreport their time spent on a project? These are the kinds of people that, in my experience, derive pleasure from something like being done before everyone else during a test.

  3. I found it interesting that when actually talking about what made software great – WinAmp and the iPod, there wasn’t actually mention of anything to do with software. It was marketing. To quote:

    Style

    Happiness

    Emotional Appeal

    None of which have anything to do with programmer productivity.

  4. “… there wasn’t actually mention of anything to do with software. It was marketing.”

    I think you’re underestimating the sheer technical coolness of products like WinAmp and the iPod.

    Regarding the astounding variations in programmer productivity: Gerald Weinberg reported similar findings in “The Psychology of Computer Programming,” first published 25 years ago. Weinberg noted that team productivity doesn’t vary as much as individual productivity, but you can still see factor-of-five differences in team productivity.

  5. People who think that “good design”, “good marketing”, “style”, “happiness”, and “emotional appeal” have nothing to do with programmer productivity don’t seem to understand that design — especially UI design — is about trial-and-error. You have to build a working prototype, test it with actual users, then refine it… over, and over, and over.

    Your artist can draw 50 different iPod case designs in a few days, but which one is best? You won’t really know until after the prototype electronics are inside and the prototype software is written, when you will quickly realize that the one with the big wheel is much better than the ones that use lots of buttons, but the wheel is too small, and the software isn’t intuitive, and the serial port is too slow and must be replaced with Firewire. Then you’ll have to rebuild the case, AND the hardware, AND the software, so that you can hand it to the users AGAIN, and immediately realize that the Firewire port collects dust, and that it’s just too heavy, and that the batteries die too quickly, and that you’ll need to test at least 10 more variations of the desktop interface before you’ll find the one that doesn’t suck.

    Apple is a secretive company so we may never know how many iterations it took to design the iPod. But we can be sure that they did as many as they could possibly afford, before running out of money, time, or (god help us) Steve Jobs’ patience.

    One way to add more design iterations is to hire programmers and hardware hackers who can knock out a prototype 5 times faster than average. While the competition spends five months building their prototype, your engineers can build three prototypes in three months and have two months left over to refine the packaging, the subway posters, and the color of the case.

  6. Oops, so much for my carefully placed paragraph breaks. Let’s try some HTML:
    Is that better?
    Sorry I can’t go back and edit that last post…

  7. Software engineering is now really looked down upon. Please spread the word to young people to avoid this career path. Better to become a teacher, cop, firefighter (best job out there, good luck getting in though), M.D., Dentist, or attorney. All of these jobs are union protected in one way or another and are safe from the flood of H1-B’s or outsourcing.

    But the writer of this article is correct about the difference in productivity between individuals. Problem is that managers would rather pay less and hire more.

  8. This kind of a test setup could be influenced very much by the students’ previous exposure to and knowledge of Unix. I’ve seen some scientific papers on programmer productivity and they left me with the feeling that the truth is out there…

  9. I think I do understand that cool software comes from software engineering. But the attributes of Winamp (the flippant tone of their website) and the attributes of the iPod (can’t change the battery, use of a speaker with the thumbwheel) that were emphasized had absolutely nothing to do with software and everything to do with marketing.

  10. I worked at a software company for several years. I now work at a large bank as a software developer. I’m still learning how unproductive development at the bank is, and this bank is supposedly the top ranked tech bank in the world. I think it’s almost a purely a cultural issue. Banks are not really interested in innovation. (they say they are, but who doesn’t) Software companies exist purely for innovation. It has little to do with the raw materials or the developers themselves. At the software company, I saw mediorcre programmers become good and good programmers become great, because everyone was trying to raise the bar. And if you could run with the ball, people would pass it to you. It was really exciting. At the bank I see people kinda jockeying bugs and camping out at work. They generally just don’t seem as curious. And their managers don’t really own anything. At the software company the managers owned products. If you were delivering, you got more and more ownership. And your word became law. If you weren’t, you got pushed aside. Quickly. At the bank, managers work for the company sometimes for dozens of years, not tipping the applecart. Doing things “right” instead of doing the right thing. It’s a totally different culture. I think Spolsky’s illustrations of the iPod and Winamp are important in this case. Apple really seems to own what they make: they are deadly serious about what they are doing. Ditto for the winamp people.

Comments are closed.