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
   43   44   45   46   47   48   49   50   51   52   53