Page 197 -
P. 197
168 PART TWO MANAGING SOFTWARE PROJECTS
rates for past projects and an estimate that we've done a number of different
ways. You'll note that I've assumed a 20 percent improvement in past pro-
duction rates, but we still get a delivery date that's 14 calendar months rather
than 9 months away."
4. Offer the incremental development strategy as an alternative:
“We have a few options, and I'd like you to make a decision based on them.
First, we can increase the budget and bring on additional resources so that
XRef
we'll have a shot at getting this job done in nine months. But understand that
Incremental process 3
models are described in this will increase risk of poor quality due to the tight timeline. Second, we
Chapter 2. can remove a number of the software functions and capabilities that you're
requesting. This will make the preliminary version of the product somewhat
less functional, but we can announce all functionality and then deliver over
the 14 month period. Third, we can dispense with reality and wish the project
complete in nine months. We'll wind up with nothing that can be delivered to
a customer. The third option, I hope you'll agree, is unacceptable. Past his-
tory and our best estimates say that it is unrealistic and a recipe for disaster."
There will be some grumbling, but if solid estimates based on good historical data
are presented, it's likely that negotiated versions of option 1 or 2 will be chosen. The
unrealistic deadline evaporates.
7.1.2 Basic Principles
Fred Brooks, the well-known author of The Mythical Man-Month [BRO95], was once
asked how software projects fall behind schedule. His response was as simple as it
was profound: "One day at a time."
The reality of a technical project (whether it involves building a hydroelectric plant
or developing an operating system) is that hundreds of small tasks must occur to
accomplish a larger goal. Some of these tasks lie outside the mainstream and may
be completed without worry about impact on project completion date. Other tasks
4
lie on the "critical” path. If these "critical" tasks fall behind schedule, the completion
date of the entire project is put into jeopardy.
The tasks required to The project manager’s objective is to define all project tasks, build a network that
achieve the project depicts their interdependencies, identify the tasks that are critical within the network,
manager’s objective and then track their progress to ensure that delay is recognized "one day at a time."
should not be
performed manually. To accomplish this, the manager must have a schedule that has been defined at a
There are many degree of resolution that enables the manager to monitor progress and control the
excellent project project.
scheduling tools. Use Software project scheduling is an activity that distributes estimated effort across the
them.
planned project duration by allocating the effort to specific software engineering tasks.
3 You might also add that adding more people does not reduce calendar time proportionally.
4 The critical path will be discussed in greater detail later in this chapter.