| Stop Promising Miracles --
by Karl Wiegers |
|||
|
http://www.sdmagazine.com/articles/2000/0002/0002e/0002e.htm?topic=ppm Are
the words "I need this yesterday" a frequent reminder of
your poor project estimates? The Wideband Delphi team estimation method
can help.
When
planning a Wideband Delphi session, the problem is defined and the
participants selected. The kickoff meeting gets all estimators focused
on the problem. Each participant then individually prepares
initial task lists and estimates.
During the estimation meeting, several cycles lead to a more
comprehensive task list and a revised set of estimates.
The information is then consolidated offline, and the team
reviews the estimation results. When
the exit criteria are satisfied, the session is completed.
·
Appropriate
team members have been selected. ·
The
kickoff meeting has been held. ·
The
participants have agreed on the estimation goal and units. ·
The
project manager can participate in the session. ·
The
estimators have the information they need to participate effectively.
Each
participant then estimates the effort each task will consume.
Break each activity down into tasks that are small enough to
estimate accurately. I don’t
feel comfortable estimating individual tasks larger than about 20
labor hours. State the tasks clearly, because someone will
have to merge all of the participant task lists into a single composite
list. Total the estimates you
produce for each project task, in the agreed-upon units, to generate
your initial overall estimate. Figure 2. Sample Delphi information
form
The
estimation process begins with each participant independently using
this form to develop an initial list of the tasks that will have to
be completed to reach the stated project goal. Your
estimate should have no relationship to the answer you think the project
manager or other stakeholders want to hear.
There’s a good chance the estimate will fall outside the acceptable
project bounds of schedule, effort or cost, a situation that demands
negotiation and might lead to scope reduction, schedule extension
or resource adjustments. But don’t let outside pressure sway your best
projection of how the project will play out. In
addition to identifying the project tasks, separately record any tasks
for related or supporting activities.
In my first Wideband Delphi session, every participant forgot
to list tasks dealing with quality control and assurance, configuration
management and process-related activities on the first cycle.
We caught this quickly and added them in for the next iteration.
Be
sure to include rework tasks following testing or inspection activities. Reworking to correct defects is a fact of life,
so you should plan for it. If
you’re estimating a schedule, also think of any overhead activities
that aren’t specific to the project that you might have to build into
your planning. These include meetings, vacation, training,
other project assignments and myriad other things that suck time out
of your day. Since
radically different assumptions can lead to wide estimate variations,
record any assumptions you made while preparing your estimates.
For example, if you assumed that you will purchase a specific
component library or reuse one from a previous project, write that
down. Another estimator might assume that the project will develop
that library, which will lead to a mismatch between your two overall
estimates. Keep the following estimation guidelines in mind: ·
Assume
one person (you) will perform all tasks. ·
Assume
all tasks will be performed sequentially; don’t worry about sequencing
and predecessor tasks at this time. ·
Assume
that you can devote uninterrupted effort to each task (this may seem
absurdly optimistic, but it simplifies the estimation process). ·
In
units of calendar time, list any known waiting times you expect to
encounter between tasks. This will help you translate effort estimates
into schedule estimates later on. The
moderator begins the estimation meeting by collecting the participants’
individual estimates and creating a chart. Each participant’s total
project estimate is shown as an X on the "Round 1" line.
Each estimator can see where his or her initial value fits
along the spectrum. The initial estimates probably will cover a frighteningly
large range. Just imagine the different conclusions you might have
collected had you asked just one of the participants for his or her
estimate and used that to plan the project. ·
the
estimates have converged to an acceptably narrow range (defined in
advance); ·
the
allotted estimation meeting time (typically two hours) is over; or
·
you
have completed four rounds; ·
all
participants are unwilling to alter their latest estimates. The
moderator keeps the group on track, time-boxing discussions to 15
or 20 minutes to avoid endless rambling.
The moderator should follow effective meeting facilitation
practices, such as starting and ending on time, encouraging all participants
to contribute and maintaining an impartial and non-judgmental environment.
While
preserving the anonymity of individual estimates is important for
the first couple of rounds, the team members might agree at some point
to put all their cards on the table and reach closure through an open
discussion. This gives them
a chance to discuss tasks for which their estimates vary substantially.
Otherwise, though, the moderator should not identify the individual
who produced each final estimate until the session is completed. The
work isn’t done when the estimation meeting concludes.
Either the moderator or the project manager assembles the project
tasks and their individual estimates into a single master task list.
This person also merges the individual lists of assumptions, quality-
and process-related activities, overhead tasks and wait times. The
merging process involves removing duplicate tasks and reaching some
reasonable resolution of different estimates for individual tasks.
"Reasonable" doesn’t mean replacing the team’s estimates
with values the project manager prefers.
Large
estimate differences for apparently similar tasks might indicate that
estimators interpreted that task in different ways.
For example, two people might both have a task called "implement
a class." However, one estimator might have included unit
testing and code review in the task, while the other meant just the
coding effort. All
estimators should define their tasks clearly to minimize confusion
during this merging step. The merging step should retain the estimate
range for each task, but if one estimator’s task estimate was wildly
different from that of the other estimators, understand it and then
perhaps discard or modify it. In
the final step, the estimation team reviews the summarized results
and reaches agreement on the final outcome.
The project manager provides the other estimators with the
overall task list, individual estimates, cumulative estimates, assumption
list and any other information. Bring the team back together for a 30- to 60-minute
review meeting to bring closure to the estimation activity. This meeting also provides an opportunity for
the team to contemplate this execution of the Wideband Delphi process
and suggest ways it can be improved for future applications. The
participants should make sure the final task list is as complete as
possible. They might have thought of additional tasks
since the estimation meeting, which could be added to the task list
now. Check to see whether tasks that had wildly different
individual estimates have been merged in a sensible way. The ultimate objective is to produce an estimate
range that allows the project manager and other key stakeholders to
proceed with project planning and execution at an acceptable confidence
level.
·
You
have a summarized list of estimating assumptions. ·
The
overall task list has been assembled. ·
The
estimators have reached consensus on how their individual estimates
were synthesized into a single set with an acceptable range. Estimates
are predictions of the future, and the range reflects the inherent
uncertainty of gazing into the crystal ball.
You might present three numbers: the average of the estimates
as the planned case, the minimum value as the best case and the maximum
as the worst case. Or you could present the average value as the
nominal expected outcome, plus the maximum-minus-the-average value,
and minus the average-minus-the-minimum value. Each
estimate has a certain probability of coming true, so a set of estimates
forms a probability distribution.
In Chapter 6 of A Discipline for Software Engineering (Addison-Wesley,
1995), Watts Humphrey describes a mathematically precise way to combine
multiple estimates and their uncertainties to generate an overall
estimate with upper and lower prediction intervals.
Another sophisticated approach is to perform a Monte Carlo
simulation to generate a probability distribution of possible estimate
outcomes based on the final estimate values. While
the results of a Delphi session might not be what the movers and shakers
want to hear, they can decide whether they want to plan their project
at a 10 percent confidence level, a 90 percent confidence level or
somewhere in-between. Be sure to compare the actual project results
to your estimates to improve your future estimating accuracy. No
estimation method is perfect; if it were, it would be called prediction,
not estimation. However, the Wideband Delphi technique incorporates
some solid estimating principles.
The team approach acknowledges the value of combining multiple
expert perspectives. The range
of estimates produced reflects the variability intrinsic to the estimation
process. Although it takes time and requires a panel of experienced estimators, Wideband Delphi removes some of the politics from estimation and filters out extreme initial values. This approach illustrates my philosophy of the correct answer to any request for an estimate: "Let me get back to you on that." |