Software Is Hard: you bet!

In Software Is Hard, Kyle Wilson proposes a law of software development:

It is impossible, by examining any significant piece of completed code, to determine within a factor of two how many man-hours it took to produce that code.

(Oh! I think that he is being generous. I doubt you can estimate reliably within a factor of 10 how long it took to complete a non trivial piece of software. Even if you know who did it and in what conditions.)

And a corollary:

If you can’t tell how long a piece of code would take when you have the finished product available, what chance do you think you have before the first line of code is written?

This is a very convincing case for why writing and maintaining software are not engineering activities.

Published by

Daniel Lemire

A computer science professor at the Université du Québec (TELUQ).

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see