Page 201 -
P. 201

172           PART TWO  MANAGING SOFTWARE PROJECTS


                       This implies that, by extending the end-date six months, we can reduce the number
                       of people from eight to four!  The validity of such results is open to debate, but the
                       implication is clear: Benefit can be gained by using fewer people over a somewhat
                       longer time span to accomplish the same objective.

                       7.2.3  Effort Distribution
                       Each of the software project estimation techniques discussed in Chapter 5 leads to
                       estimates of work units (e.g., person-months) required to complete software devel-
         ?  How much   opment. A recommended distribution of effort across the definition and development
            effort should
                                                              7
         be expended on  phases is often referred to as the 40–20–40 rule. Forty percent of all effort is allocated
         each of the major  to front-end analysis and design. A similar percentage is applied to back-end testing.
         software      You can correctly infer that coding (20 percent of effort) is de-emphasized.
         engineering      This effort distribution should be used as a guideline only. The characteristics of
         tasks?        each project must dictate the distribution of effort. Work expended on project plan-
                       ning rarely accounts for more than 2–3 percent of effort, unless the plan commits an
                       organization to large expenditures with high risk. Requirements analysis may com-
                       prise 10–25 percent of project effort. Effort expended on analysis or prototyping should
                       increase in direct proportion with project size and complexity. A range of 20 to 25
                       percent of effort is normally applied to software design. Time expended for design
                       review and subsequent iteration must also be considered.
                          Because of the effort applied to software design, code should follow with relatively
                       little difficulty. A range of 15–20 percent of overall effort can be achieved. Testing and
                       subsequent debugging can account for 30–40 percent of software development effort.
                       The criticality of the software often dictates the amount of testing that is required. If
                       software is human rated (i.e., software failure can result in loss of life), even higher
                       percentages are typical.


                 7.3   DEFINING A TASK SET FOR THE SOFTWARE PROJECT

                       A number of different process models were described in Chapter 2. These models
                       offer different paradigms for software development. Regardless of whether a soft-
                       ware team chooses a linear sequential paradigm, an iterative paradigm, an evolu-
                       tionary paradigm, a concurrent paradigm or some permutation, the process model
                       is populated by a set of tasks that enable a software team to define, develop, and ulti-
                       mately support computer software.
                          No single set of tasks is appropriate for all projects. The set of tasks that would be
                       appropriate for a large, complex system would likely be perceived as overkill for a
                       small, relatively simple software product. Therefore, an effective software process

                       7  Today, more than 40 percent of all project effort is often recommended for analysis and design
                          tasks for large software development projects. Hence, the name 40–20–40 no longer applies in a
                          strict sense.
   196   197   198   199   200   201   202   203   204   205   206