Page 168 -
P. 168
CHAPTER 5 SOFTWARE PROJECT PLANNING 139
scope of this book and is best left to others (e.g., [MIN95]). However, a brief review
of the pros and cons of the decision is worthwhile.
On the positive side, cost savings can usually be achieved by reducing the num-
WebRef ber of software people and the facilities (e.g., computers, infrastructure) that support
Useful information them. On the negative side, a company loses some control over the software that it
(papers, pointers) on
outsourcing can be found needs. Since software is a technology that differentiates its systems, services, and
at products, a company runs the risk of putting the fate of its competitiveness into the
www.outsourcing. hands of a third party.
com
The trend toward outsourcing will undoubtedly continue. The only way to blunt
the trend is to recognize that software work is extremely competitive at all levels.
The only way to survive is to become as competitive as the outsourcing vendors them-
selves.
5.9 AUTOMATED ESTIMATION TOOLS
The decomposition techniques and empirical estimation models described in the pre-
ceding sections are available as part of a wide variety of software tools. These auto-
mated estimation tools allow the planner to estimate cost and effort and to perform
"what-if" analyses for important project variables such as delivery date or staffing.
Although many automated estimation tools exist, all exhibit the same general char-
acteristics and all perform the following six generic functions [JON96]:
1. Sizing of project deliverables. The “size” of one or more software work
products is estimated. Work products include the external representation of
software (e.g., screen, reports), the software itself (e.g., KLOC), functionality
delivered (e.g., function points), descriptive information (e.g. documents).
Estimation tools 2. Selecting project activities. The appropriate process framework (Chapter
2) is selected and the software engineering task set is specified.
3. Predicting staffing levels. The number of people who will be available to
do the work is specified. Because the relationship between people available
and work (predicted effort) is highly nonlinear, this is an important input.
4. Predicting software effort. Estimation tools use one or more models (e.g.,
Section 5.7) that relate the size of the project deliverables to the effort
required to produce them.
5. Predicting software cost. Given the results of step 4, costs can be com-
puted by allocating labor rates to the project activities noted in step 2.
6. Predicting software schedules. When effort, staffing level, and project
activities are known, a draft schedule can be produced by allocating labor
across software engineering activities based on recommended models for
effort distribution (Chapter 7).

