SW Cost Estimating

The Software Development Cost Estimating Handbook was developed by the Software Technology Support Center and sponsored by the Naval Center for Cost Analysis and the Air Force Cost Analysis Agency. The purpose of the Handbook is to provide cost analysts and program managers with a resource manual to use in developing credible software development cost estimates.

A realistic estimate is based upon a solid understanding of the software development process and the historical data that forms a framework for the expected values. An estimating methodology that follows a proven process and is consistent with best practices, as well as, Department of Defense (DoD) policies, further contributes to estimate validity.

The Handbook information is presented at two levels. The first level will help the experienced analyst immediately focus on the material necessary to develop an estimate. The second level is for the novice, or infrequent user, to use as educational information regarding the software development and estimating processes.

You can download the free Handbook from this STSC webpage.

The estimating process starts with a determination of the purpose of the estimate. Next, the cost (or effort) and schedule for the software development project are determined using three factors: effective size, development environment, and product complexity.

The key, and most important, element in the software estimate is the effective size of the software product. Determining size can be approached from several directions depending upon the software size measure (lines of code, function points, use cases, etc.) used by the development organization. A system developed by writing lines of code requires a different estimating approach than a previously developed or off-the-shelf application. The acquisition phase also influences the analyst’s approach because of the amount and type of software development data available from the program or developers.

The development environment is the next most important effort and schedule driver. The environment can be factored into five categories:

(1) developer capability or efficiency,
(2) personnel experience,
(3) development system characteristics,
(4) management characteristics, and
(5) product characteristics.

The last four categories are largely driven by the product requirements. These factors take into consideration the development environment itself, the capabilities and experience of the developers, the developing organization’s management style, security requirements, etc.

These factors, along with software size and complexity, combine to determine the productivity or efficiency with which a developer can build and test the software. Ultimately, these environmental characteristics drive the cost and schedule of the software development and implementation of the system.

It is uncertain who first coined the phrase, “A fool with a tool is still a fool.” Plugging numbers into a parametric model without knowing if the results are realistic fits this adage. This handbook addresses estimate realism using historical data, industry best practices, and authoritative insight. The insight comes from experts in the fields of software development and cost estimating. This information helps the analyst conduct a “sanity check” of their estimate results.

A well-understood and validated estimate offers a defensible position for program office analysts, component cost agency analysts, and independent evaluators. A reasonable estimate is useful in budgeting, milestone decision reviews, and determining the life cycle or other costs of the program.

The contents of the Handbook, ten sections and nine appendices, are grouped into four major parts. An introduction and the basics of the software development process lead off the tutorial. The next two major parts cover the estimating process and related details. Finally, concepts and examples presented in the sections are expanded in a set of appendices. The idea behind this structure is to present principles for instruction and reference in the core sections and, then, examine details and related examples.

Note: The information in this article was based on the Executive Summary section of the Handbook.