LoC is a measure of cost, not productivity

Yet people talk about programming as if it were a production process and measure “programmer productivity” in terms of “number of lines of code produced”. In so doing they book that number on the wrong side of the ledger: we should always refer to “the number of lines of code spent”.

Dijkstra, The Fruits of Misunderstanding, and also a similar sentiment (earlier) in “Why is Software so Expensive?” An Explanation to the Hardware Designer — quote spotted on reddit.

… and from the second (first, chronologically) of those essays, Dijkstra hitting the nail on the head with regard to aspects of some recent rumblings about higher education:

To the economic question “Why is software so expensive?” the equally economic answer could be “Because it is tried with cheap labour.” Why is it tried that way? Because its intrinsic difficulties are widely and grossly underestimated.

To any of my students reading this: don’t underestimate the difficulty of the tasks we’ve been educating you to tackle; thus, don’t underestimate your worth if you get good at attacking those tasks; thus, hopefully you’ll appreciate (if not now then one day) the value of a degree in (actual, not pretend) Computer Science.

4 Responses to “LoC is a measure of cost, not productivity”

  1. Rich
    June 24th, 2008 | 4:48 pm

    So what’s pretend CS? :)

  2. June 24th, 2008 | 9:40 pm

    “don’t underestimate the difficulty of the tasks we’ve been educating you to tackle”

    Amen. I’ve seen some difficult problems over the last year, mainly while paying attention to kernel code and its development. Now my course is finished I want to get a job solving difficult problems because it’s more fulfilling than adding buttons and text boxes to forms.

    Whether employers have already been conditioned to not trust fresh graduates to solve difficult problems is another question… most graduate jobs I’ve seen don’t seem to involve difficult (in the scientific sense) tasks.

  3. June 25th, 2008 | 9:07 am

    Rich: it contains nothing on computability, nondeterministic finite automata, big-O style analysis, parser theory or any languages which aren’t imperative. :-)

    Insert prejudices *here*. ;-)

  4. Kat
    June 29th, 2008 | 9:34 pm

    gimbo: so IT then? :D