Page 48 - The Art of Designing Embedded Systems
P. 48
CHAPTER 3
Stop Writing
Programs
The most important rule of software engineering is also the least
known: Complexity does not scale linearly with size.
For “complexity” substitute any difficult parameter, such as time re-
quired to implement the project, bugs, or how well the final product meets
design specifications (unhappily, meeting design specs is all too often un-
correlated with meeting customer requirements . . .).
So a 2000-line program requires more than twice as much develop-
ment time as one that’s half the size.
A bit of thought confirms this. Surely, any competent programmer
can write an utterly perfect five-line program in 10 minutes. Multiply the
five lines and the 10 minutes by a hundred; those of us with an honest
assessment of our own skills will have to admit the chances of writing a
perfect 500 line program in 16 hours are slim at best.
Data collected on hundreds of IBM projects confirm this. As systems
become more complex they take longer to produce, both because of the
extra size and because productivity falls dramatically:
(man-yrs) Lines of code produced per month
1 439
10 220
100 110
1000 55
Look closely at this data. Notice that there’s an order of magnitude
increase in delivery time simply due to the reduced productivity as the
project’s magnitude swells.
35

