Page 167 -
P. 167
138 PART TWO MANAGING SOFTWARE PROJECTS
If the system is to be built from scratch, there is a 70 percent probability that the
job will be difficult. Using the estimation techniques discussed earlier in this chapter,
the project planner projects that a difficult development effort will cost $450,000. A
"simple" development effort is estimated to cost $380,000. The expected value for
cost, computed along any branch of the decision tree, is
expected cost = (path probability) x (estimated path cost) i
i
where i is the decision tree path. For the build path,
WebRef expected cost build = 0.30 ($380K) + 0.70 ($450K) = $429K
An excellent tutorial on
decision tree analysis can Following other paths of the decision tree, the projected costs for reuse, purchase
be found at and contract, under a variety of circumstances, are also shown. The expected costs
www.demon.co.uk/ for these paths are
mindtool/dectree.
html expected cost reuse = 0.40 ($275K) + 0.60 [0.20($310K) + 0.80($490K)] = $382K
expected cost buy = 0.70($210K) + 0.30($400K)] = $267K
expected cost contract = 0.60($350K) + 0.40($500K)] = $410K
Based on the probability and projected costs that have been noted in Figure 5.6, the
lowest expected cost is the "buy" option.
It is important to note, however, that many criteria—not just cost— must be con-
sidered during the decision-making process. Availability, experience of the devel-
oper/vendor/contractor, conformance to requirements, local "politics," and the
likelihood of change are but a few of the criteria that may affect the ultimate deci-
sion to build, reuse, buy, or contract.
5.8.2 Outsourcing
Sooner or later, every company that develops computer software asks a fundamen-
tal question: “Is there a way that we can get the software and systems we need at a
“As a rule, lower price?” The answer to this question is not a simple one, and the emotional dis-
outsourcing requires
even more skillful cussions that occur in response to the question always lead to a single word: out-
management than sourcing.
in-house In concept, outsourcing is extremely simple. Software engineering activities are
development.” contracted to a third party who does the work at lower cost and, hopefully, higher
Steve McConnell
quality. Software work conducted within a company is reduced to a contract man-
agement activity.
The decision to outsource can be either strategic or tactical. At the strategic level,
business managers consider whether a significant portion of all software work can
be contracted to others. At the tactical level, a project manager determines whether
part or all of a project can be best accomplished by subcontracting the software work.
Regardless of the breadth of focus, the outsourcing decision is often a financial
one. A detailed discussion of the financial analysis for outsourcing is beyond the