- 60% of projects were behind schedule
- 50% were over cost
- 45% of delivered projects were unusable.
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).
When size, complexity, and risk factors are factored together, they result in an accurate estimate.