Overview
This activity covers estimating the cost to complete the software project. Two basic approaches to estimating the costs for performing a software project are: top-down and bottom-up. Top-down estimating draws an analogy between the current effort and previous similar projects, using historical data. These estimates should be adjusted to fit the particular requirements, characteristics, and environment of the individual software project. Bottom-up estimating determines and then sums up the cost of resources and labor for performing or acquiring each element of the work breakdown structure (WBS).
Roles and Responsibilities
The project software manager develops a cost estimate for the software project.
The software engineering process group (SEPG) members may be consulted to gather historical cost data.
Controls
The Project Plan providing an overview of the project and schedule information.
Inputs
Estimated source lines of code (SLOC) which is a primary input into most cost estimating tools (see activity 1.1.1.1.3 Estimate Lines of Code).
WBS listing the computer software configuration items (CSCI) and other elements to be costed (see activity 1.1.1.1.2 Develop Work Breakdown Structure).
Any available system-level requirements or design documents which may provide information on the systems functionality.
The following inputs may not be initially available, but the cost estimate should be updated as the project progresses and the inputs are obtained:
The Software Configuration Management Plan (SCMP) and Software Test Plan (STP) (see Appendix E for Data Item Descriptions (DID)) specifying the configuration management (CM) and test activities and tools (see activity 1.1.2 Plan Software Configuration Management).
The software project schedule (see activity 1.1.1.1.5 Develop Software Schedule).
The software project organization and resources (see activity 1.1.1.2 Identify Software Project Organization And Resources).
Procedures
1) In preparing the initial cost estimate(s), the project software manager may consult with SEPG members to determine if actual cost data from previous similar projects is available. If so, the project software manager may, with the aid of SEPG members, adjust the cost actuals (based on the differences in complexity and size) from similar past projects to estimate the cost of the new project.
2) As more information becomes available, the project software manager uses software cost estimating tools (e.g., Revic, SEER, Price S, SLIM) to estimate the software project cost. These tools normally require as primary inputs: SLOC estimates, schedule and software project information, and information on the software engineering groups experience levels. This information may not be initially available, and the estimate should be updated as these variables become known.
3) The project software manager should review the software WBS for items not normally covered by software cost estimating tools. These normally include software maintenance, system engineering support, or initial purchases of hardware or software to establish the software engineering or testing environments. Cost estimates for these items are normally easily obtained via vendor quotes.
4) The project software manager supplies this cost information to the project manager to support project-level budgeting and review activities. Because of the proprietary nature of this information, the project software manager normally maintains the cost information in a separate cost database.
Outputs
The software project cost estimate which is placed in a cost database and made available to the project manager.