This column starts a series on estimating.
This is a big subject, however, so the series
will take a number of months. Since there is
a lot of interest in estimating, however, I
have decided that this time is warranted.
Objects can be very helpful in estimating.
They can be helpful, that is, if engineers
know how to use them. The proper use of
objects for estimating, however, requires
some work on your part. But then, few things
in life are free.
My purpose with this series is to tell you
how to make good estimates with objects. For
those who are impatient to get to the punch
line, the method I will describe is called
PROBE. PROBE stands for PROxy Based
Estimating. I developed PROBE as part of my
research on the Personal Software Process
(PSP). During this work, I developed 62
module-sized programs in Object Pascal and
C++ and gathered a lot of data. Among other
things, I found that it is possible to make
rather good plans for even small programming
jobs. I also found that the concepts of
object oriented design can be a big help in
planning. I have described PROBE and the PSP
in some detail in my book,
A Discipline for Software
</A>, Addison Wesley, 1995. Also, some
of the material in this and subsequent
columns is taken from my forthcoming book
Introduction to the Personal Software
Process. It will be published by Addison
Wesley around the end of this year.
The PROBE method is taught as part of the PSP course, both by the SEI
and a growing number of universities. Engineers who have taken the
course report that they find the method very helpful. We don't yet have
much data on industrial use of PROBE but early indications are that the
course benefits carry over into industrial practice. I will show some
data on both class and industrial estimating experience at the end of
this series of columns.
In this first column, I talk about why you should make estimates and
then I briefly discuss the elements of estimating. Finally, this column
closes with a brief outline of the estimating problem and the role of
objects in addressing this problem.