Software practitioners are frequently challenged to provide early and accurate software project estimates. It speaks poorly of the software community that the issue of accurate estimating early in the life cycle has not been adequately addressed and standardized. A U.S. government study on software development projects revealed the following:

60% of projects were behind schedule

50% were over cost

45% of delivered projects were unusable.

This article explores the use of a basic estimating model utilizing functional sizing as one of the key components. The value to be gained from utilizing a functional sizing technique, such as function points, is primarily in the capability to accurately estimate a project early in the development process.

From the author of

The Estimating Principle

At the heart of the estimating challenge are two issues: the need to understand
and express (as early as possible) the software problem domain, and the need
to understand our capability to deliver the required software solution within
a specified environment. Then—and only then—will we be able to accurately
predict the effort required to deliver the product.

The software problem domain can be defined simply as the scope of the required
software. The problem domain must be accurately assessed for its size and complexity.
To complicate the situation, experience tells us that at the point in time that
we need an initial estimate (early in the system's life cycle), we cannot presume
to have all the necessary information at our disposal. Therefore, we must have
a rigorous process that permits a further clarification of the problem domain.

Our capability to deliver is derived from the assessment of risk factors that
impact our rate of delivery.

An effective estimating model considers three elements: size, complexity, and
risk factors. When factored together, they result in an accurate estimate (see
Figure 1).