Page 200 -
P. 200

CHAPTER 7  PROJECT SCHEDULING AND TRACKING                         171

                                The one-year project on which the team is working falls behind schedule, and with
                              two months remaining, two additional people are added to the team. The number of
                              communication paths escalates to 14. The productivity input of the new staff is the
                The relationship  equivalent of 840 x 2 = 1680 LOC for the two months remaining before delivery. Team
                between the number  productivity now is 20,000 + 1680   (250 x 14) = 18,180 LOC/year.
                of people working on a
                software project and  Although the example is a gross oversimplification of real-world circumstances,
                overall productivity is  it does illustrate another key point: The relationship between the number of people
                not linear.   working on a software project and overall productivity is not linear.
                                Based on the people/work relationship, are teams counterproductive?  The answer
                              is an emphatic "no," if communication improves software quality.  In fact, formal
                              technical reviews (see Chapter 8) conducted by software teams can lead to better
                              analysis and design, and more important, can reduce the number of errors that go
                              undetected until testing (thereby reducing testing effort). Hence, productivity and
                              quality, when measured by time to project completion and customer satisfaction, can
                              actually improve.

                              7.2.2. An Empirical Relationship
                              Recalling the software equation [PUT92] that was introduced in Chapter 5, we can
                              demonstrate the highly nonlinear relationship between chronological time to com-
                              plete a project and human effort applied to the project. The number of delivered
                              lines of code (source statements), L, is related to effort and development time by
                              the equation:

                                   L = P x E 1/3 4/3
                                             t
                              where E is development effort in person-months, P is a productivity parameter that
                              reflects a variety of factors that lead to high-quality software engineering work (typ-
                              ical values for P range between 2,000 and 12,000), and t is the project duration in cal-
                              endar months.
                                Rearranging this software equation, we can arrive at an expression for develop-
                              ment effort E:

                                       3
                                           3 4
                                   E = L /( P t )                                              (7-1)
                As the deadline
                becomes tighter and  where E is the effort expended (in person-years) over the entire life cycle for software
                tighter, you reach a
                point at which the  development and maintenance and t is the development time in years. The equation
                work cannot be  for development effort can be related to development cost by the inclusion of a bur-
                completed on  dened labor rate factor ($/person-year).
                schedule, regardless of  This leads to some interesting results. Consider a complex, real-time software proj-
                the number of people  ect estimated at 33,000 LOC, 12 person-years of effort. If eight people are assigned
                doing the work. Face
                reality and define a  to the project team, the project can be completed in approximately 1.3 years. If, how-
                new delivery date.  ever, we extend the end-date to 1.75 years, the highly nonlinear nature of the model
                              described in Equation (7-1) yields:
                                           3 4
                                       3
                                   E = L /( P t ) ~ 3.8 person-years.
   195   196   197   198   199   200   201   202   203   204   205