Hacker News new | ask | show | jobs
by GFischer 4261 days ago
Are you sure you rewrote a "system"? Or a program?

Fred Brooks makes a distinction between a program, a product, a system, and a "programming system product" (what I believe Joel was thinking about when he was talking about Netscape)

"A product (more useful than a program):

can be run, tested, repaired by anyone

- usable in many environments on many sets of data.

- must be tested

- documentation

Brooks estimates a 3x cost increase for this.

To be a component in a programming system (collection of interacting programs like an OS):

- input and output must conform in syntax, semantics to defined interfaces

- must operate within resource budget

- must be tested with other components to check integration (very expensive since interactions grows exponentially in n).

Brooks estimates that this too costs 3x.

A combined programming system product is 9x more costly than a program.

http://www.cs.usfca.edu/~parrt/course/601/lectures/man.month...

http://books.cat-v.org/computer-science/mythical-man-month/t...