Professional Documents
Culture Documents
Linda M. Laird
The Limitations
of Estimation
I
n 1968, Alfred Pietrasanta of IBM System jects life cycle and understand where you
Research Institute wrote, Anyone who under- or overestimated so you can do better the
expects a quick and easy solution to the mul- next time?
tifaceted problem of resource estimation is The 1995 Standish Groups Chaos Report cites
going to be disappointed. Thirty years later, overruns on 89 percent of projects. Kjetil
Lionel Briand and his colleagues observed that Molokken and Magne Jrgensen, who studied
Despite the large number of cost factors col- software estimation results, describe other sur-
lected and the rigorous data collection, a lot of veys as most commonly reporting that 30 to 40
uncertainty in the estimates can be observed percent of programs overrun (K. Molokken and
(Briand et al., An Assessment and Comparison M. Jrgensen,A Review of Surveys on Software
of Common Software Cost Estimation Methods, Effort Estimation, Proc. 2003 Intl Symp.
Proc. Intl Conf. Software Eng., [ICSE], IEEE Empirical Software Eng., IEEE CS Press, 2003,
1999, pp. 313322). Its now 2006, and we still have p. 223). They conclude that the overruns root
problems with estimation. causes are complex, the data isnt always reliable,
In practical terms, your ability to estimate well and those responding to the surveys may have
comes down to how much you know about a proj- a tendency to over report causes that lie outside
ect when youre estimating it, and how much of their responsibility... for example, customer-
uncertainty is inherent. related causes. Rarely does just one factor on a
In software, we primarily want to estimate three project go awry. Rather, the interplay between
aspects of a project: effort, schedule, and cost. Most factors, such as schedules, changing require-
methods start by estimating sizeas thousands of ments, new technologies, resource unavailabil-
lines of code (KLOC), function pointsor some ity, unforeseen problems, and personnel
other proxy point and using that to estimate effort (management and staff) leads to overruns. And
(that is, staff months). From effort, you typically its often easiest to attribute the overrun to fac-
derive staffing, schedule, and cost. Estimating tors over which you have little controlthat is,
effort is the primary challenge; once you have an the customer.
effort estimate, wonderful tools are available to The literature lists several common causes for
help you work through your schedule, staff, costs, overruns:
and risk, and tie them into your project plan.
specifying incomplete or unclear requirements
EFFORT ESTIMATION: WHERE ARE WE? (not knowing what to do),
How well do you estimate? How do you know? failing to adjust schedules when scope changes
Do you track your estimates through the pro- (too much work),
40 IT Pro November December 2006 Published by the IEEE Computer Society 1520-9202/06/$20.00 2006 IEEE
setting overly aggressive development schedules (too get. At Stevens Institute of Technology, we have seen a
little time), and marked improvement in the success rate of the senior proj-
insufficient resources (not enough people or ects in the students who also take the estimation and met-
equipment). rics class. Instead of focusing primarily on functionality
and design, they now include difficulty and size, and define
These reasons are rather generic. In my view, the pri- their projects to be doable in the time available.
mary causes of software project overruns are: Even when you cant adjust your cost factors, estimating
well gives you the chance to manage the risk, rather than
Lack of education and training. Many people dont know ignore it or be surprised later.
how to estimate, have no training in estimation, and
receive no feedback on their estimates to help them SOFTWARE ESTIMATION
improve.A developer who knows how to write code well METHODOLOGIES AND MODELS
doesnt necessarily know how to estimate. Hundreds of documented software estimation method-
Confusion of the desired schedule/effort target with the ologies, tools, and models exist. Some of the earliest ones
estimate. Development teams are frequently pushed into estimated the software cost as a percentage of the hard-
dates because of business needs rather than a rational ware cost. For most, the output is an estimation of staff
plan to deliver on those dates. effort from a wide variety of inputs.
Hope-based planning. Develop- Estimates give you the Many of the methods use an ana-
ers know the right answer: that lytical formula based on cost driv-
the project is on time and on
opportunity to adjust ers, which typically are project
budget, based on the marketing- project parameters characteristics such as system size,
or management-assigned target. system domain, complexity, and
Software personnels inability to to meet budgets development methodology. (Com-
credibly communicate and sup- and deadlines. plexity in this context is project
port their estimates. The lack of complexity, such as the need for
good estimation processes and high security or reliability, rather
knowledge frequently leads to being pushed into the than design or code complexity.)
shortest schedule you cant prove you wont make The tools and methodologies are primarily based on data
instead of a rational schedule based on probable out- from past projects. Researchers and engineers studied proj-
comes. ect data and determined equations and formulas that best
Incomplete, changing, and creeping requirements. matched the existing data points. Some of the formulas are
Nothing harms a fixed-price and fixed-schedule project extremely simple, others are complex. None are totally
more than changing and growing requirements. accurate with all of the past projects, nor should you expect
Quality surprises. Projects can easily spend half of their them to be with their predictions for future projects.
time in the test-and-fix phase, especially when the need Instead, they predict, based on their formulas (which are
for speed causes the development team to take addi- primarily based upon their data set), the most likely effort
tional risks and turn over inadequately tested code. required for the project as described. At Stevens, I teach
over 10 methods for estimating projects. Some are simple
DO WE CARE HOW WELL WE ESTIMATE? and quick, others take considerable time and effort. My
The answer is a resounding yes. First, Im sure your students estimate the same project using the different esti-
organization cares. Even if youre doing exploratory devel- mation methodologies and models. Their results vary
opment or prototyping, youll usually need some estimates. widely, depending on their definition of the project, their
Second, if youre in the software business, estimating well assumptions, and the models used.
is the only way youll be able to have a personal life instead Which methodology should you use? Most projects use
of working too many nights and weekends. expert opinion. Excellent results have been achieved with
In most projects, estimates are crucial. If alternative use case points (Bente Anda,Comparing Effort Estimates
approaches exist, accurate estimates improve the decisions Based on Use Case Points with Expert Estimate, Proc.
you must make in a project. When bidding for jobs, if you Empirical Assessment in Software Eng. 2002, http://www.
underestimate, you can lose money and damage your com- simula.no/departments/engineering/publications/SE.5.And
pany. If you overestimate, you might unnecessarily lose a a.2002.a. Function points have strong advocates as well.
job to a competitor. Estimating well helps you win the jobs Whatever methodologies you select, you should test and
you should win and lose those you should lose. calibrate them to your organization using your own past
Estimates give you the opportunity to adjust project projects and determining the methodologies accuracy level.
parameters to meet budgets and deadlines. If you under- The current recommendation is that you use more than
stand your cost factors, you can adjust them to hit the tar- one methodologyin fact, the standard recommendation
is to use at least three methods (F. Heemstra, Software Or, as Bollinger notes, The creation of genuinely new
Cost Estimation, Information and Software Technology, software has far more in common with developing a new
vol. 34, no. 10, Oct. 1992, pp. 627639; T. Bollinger, The theory of physics than it does with producing cars or
Interplay of Art and Science in Software, Computer, vol. watches on an assembly line (Bollinger 1997).
30, no. 10, Oct. 1997, pp. 125128). Each method will add Which camp are you in? Problem solving or process exe-
insight and understanding, and using three allows you to cution? Or does it vary depending on the circumstances?
triangulate on an answer. (Three methods might seem like In other words, are you developing a new system which
overkill, especially when many organizations dont even requires creativity and invention, or are you developing a
use one. Obviously, the amount of effort spent on estima- system that you already know how to build?
tion depends on the importance of the estimations accu- Consider the analogy of building six new apartment
racy and the ease of creating the estimate.) buildings, one after the other, all of which have the same
You should choose complementary methods with dif- design and all of which are being built on the same type of
ferent biases (M. Jrgensen, Realism in Assessment of vacant land.The estimate for the first building might have
Effort Estimation Uncertainty: It been +/25 percent of the final cost.
Matters How You Ask, IEEE Estimates are typically By the third, the estimate is proba-
Trans. Software Eng., vol. 30, no. 4, bly +/5 percent. But consider the
Apr. 2004, pp. 209217). Examples
the 50-percent view, impact of changing the original
of complementary methods are meaning the probability plan. Instead of using brick and
mortar, you use precast concrete
expert opinion with analogy, for being under or over because of the expected cost sav-
expert opinion with function budget is the same. ings. Or, imagine you need to build
points, on a rocky hillside instead of flat
algorithmic models and use case vacant lots. And you decide to add
points, a penthouse. What will happen to your estimate? Plus or
expert opinions by experts with different project expe- minus 25 percent will be an achievement.
riences and responsibilities and The same is true of software projects. If youre building
use case points and analogy systems that are similar to those youve previously built
using similar teams and technologies, and you can manage
Algorithmic models based on the same underlying algo- the requirements processes, your estimates will be quite
rithms (such as all of the COCOMO derivatives) have the accurate. If youre building fundamentally new systems,
same biases as do experts who have had similar responsi- however, where invention is required, +/25 percent will
bilities on similar projects. (M. Jrgensen, Practical be an achievement.
Guidelines for Better Software Estimation, www.simula.
no/departments/engineering/.artifacts/ieee_jorgensen_ ESTIMATE UNCERTAINTIES
guidelines5.pdf). You must remember that estimates are probabilistic and
communicate them appropriately. All projects have some
SOFTWARE ESTIMATION AS ENGINEERING uncertainties. Estimates are typically the 50-percent view,
With all the available methodologies and methods, why meaning the probability for being under or over budget is
are the estimation results so ragged? In some respects, the the same. (Unfortunately, Parkinsons Law, which states that
question comes down to whether software estimation is work expands to meet the time available, holds for software
an engineering process or not. projects. So, this 50-percent view says well be on budget 50
Consider Terry Bollingers statement, if software esti- percent of the time and over budget the other 50 percent.)
mation is believed to be a codifiable engineering process To estimate more accurately, you must
analogous to house building then litigation is a reasonable
and expected consequence of inaccurate estimations understand, accept, and manage estimations inherent
(Bollinger 1997). uncertainties; and
The software engineering community is split into change the estimation terminology to include the uncer-
two camps: tainties.
the process camp espouses that quality software can be The size of the estimates uncertainty differs based on
developed on time if a particular software process or how close you are to the projects end, as Barry Boehm
programming technology is used, while classic chartthe cone of uncertaintyillustrated in 1981.
the problem-solving camp believes that programming is (Boehm, Software Eng. Economics, Prentice-Hall, 1981).
fundamentally a process of solving problems and as such This chart represents the estimate accuracy at different
intrinsically resists codification. phases in the software life cycle. During the projects ini-
this behavior and uncertainty range is nearly identical ESTIMATING EARLY AND OFTEN
at all stages in the project lifecycle, in conflict with theWhen should you estimate? And how much effort should
cone of uncertainty. you spend on it?
It depends on the project and the methodology. Effort
So, to deal with estimates uncertainties: estimation is usually overheadyou arent producing
a deliverable product. So, you need to ensure that the
change your terminology from one number to a pX benefit exceeds the cost. If development costs or sched-
number; ule dont matter, you dont need to estimate. Or if
use probability intervals to specify the range of esti- youre dealing with frequently changing requirements
mates; and specifications, you need to
use methods other than gut be able to give ballpark esti-
feelings for determining the When asked to provide mates quickly and efficiently,
range, because overconfidence an estimate, you must and expect to update them
is typical; (quickly and efficiently) when
if youre using agile methods, determine whether the situation changes.
especially if youre following youre being asked In some projects, estimates
the responding to change greatly impact the quality of the
over following a plan princi- for your view or being decision making. Im sure you
ple, expect a low probability of have horror stories like mine
meeting your initial estimates
told what the answer about approaches or projects
(perhaps 10 percent) and a must be. selected based on estimates that
large estimate uncertainty were later found to being totally
throughout your projects. inaccurate (and low).
For traditional developments, you should estimate the
MANAGING THE EFFORT BUDGET job at least three times:
A primary reason for projects coming in over budget is
the confusion between the project targetthat is, what the macroestimation during the feasibility phase,
senior management or marketing wants the cost to be detailed estimation during the requirements phase, and
and the actual estimate. refined estimation during the design phase.
When asked to provide an estimate, you must deter-
mine whether youre being asked for your view or being The need for an estimates accuracy is related to its pur-
told what the answer must be. Frequently, because of pose at a particular point in time.A cost estimate at a pro-
business realities, youre told the answerthat is, youre jects feasibility stage needs only be accurate enough to
given the jobs effort budget. In this case, the same support a decision to prepare a more detailed project def-
tools and methodologies still apply. But instead of using inition. Detailed product and project definitions arent
them to create an estimate, use them interactively to cre- available at this phase, so the estimate will be high level.
ate a rational plan to reduce the effort to meet the The estimate at the requirements specification stage, how-
budget. For example, you could reduce the number of ever, is a critical project decision point and must be rea-
adjusted use case points by reducing actors and scenar- sonably accurate.Youre potentially committing significant
ios, decreasing the technical factors, improving the envi- resources based on the business case, which is based on the
ronmental factors, or even reusing large chunks of code cost estimate.The required accuracy depends on the busi-
and classes. Infinite potential solutions exist, some fea- ness model. An in-house project or consulting service
sible, some not. might be pay as you go, so the estimate is really about
Some people, when faced with an inadequate budget, try establishing credibility. For external product sales, or for
adjusting the estimation models parameters without fixed-cost projects, the required accuracy depends on when
changing the work involved. Unless you made mistakes in a final price will be set. Once the detailed design has been
the initial estimate, this will only create more overtime. completed, and hopefully most of the unknowns have
Others plan on overtime, which is best reserved for con- become known, you can create a reasonably accurate esti-
tingency and risk management. Have a plan you believe mate and plan.
you can meet without overtime. The third favorite tech- Because of the inherent uncertainties in all projects, you
nique is cutting features. This option should be the last might need to re-estimate as you learn more. Whenever
resort, unless you can prove that the feature is truly major unplanned events occur, youll need to understand
unneeded or optional. Instead, use your creativity and how they impact the schedule and effort. Dont ignore
problem-solving skills to simplify the project or increase them and just hope it will all work out. It rarely will. At
productivity. least roughly estimate the impacts to make sure your plan
I
mproving your estimation skills, processes, and how you
communicate your estimations will help you avoid the
difficulties inherent in estimation; however, your abil- For further information on this or any other computing
ity to estimate well will always be limited by the extent of topic, visit our Digital Library at http://www.computer.
your projects uncertainty. org/publications/dlib.