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 Engineering, 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.