Software Acquisition

AAF  > Software Acquisition  >  Cost Estimation

Cost Estimation

How to use this site

Each page in this pathway presents a wealth of curated knowledge from acquisition policies, guides, templates, training, reports, websites, case studies, and other resources. It also provides a framework for functional experts and practitioners across DoD to contribute to the collective knowledge base. This site aggregates official DoD policies, guides, references, and more.

DoD and Service policy is indicated by a BLUE vertical line.

Directly quoted material is preceeded with a link to the Reference Source.

Reference Source: Software Acquisition Pathway Interim Policy and Procedures, 3 Jan 2020

 

An initial cost estimate for the program lifecycle. The estimate should consider the technical content of the program described in the CNS, user agreement, and acquisition strategy. The estimate should also consider factors including but not limited to, those associated with continuous capability delivery; factors associated with an emphasis on software security, software quality, and functionality; costs associated with certifications, team experience, and domain expertise. Where applicable, cost and software data reporting, to include software resources data reports, must be submitted in accordance with the policies and procedures in DoDI 5000.73. The initial cost estimate shall be completed prior to entry into the execution phase to support contract initiation, and shall be updated at least annually thereafter.

Reference Source: Software Acquisition Pathway Guide v1.0

Software cost is driven by several factors, including the number of software development teams needed to achieve the required operational capability, the size and complexity of software, and the cadence of capability deliveries over time, as guided by a product roadmap. Individual cost elements include software team effort, software licensing, test and evaluation, system integration, interoperability certification, user training, incrementally developed technical and user manuals, Enterprise Service use, and program management.

DoD software acquisition programs should apply strategies that align with the nature of modern software development methods. In the planning phase, the program should establish cost projections to provide insight into the cost of the work to be delivered. The triple constraints of a project are time, cost, and scope. In traditional projects, time and cost are variable, while scope remains fixed to support a predictive planning approach that encourages specification of detailed requirements up front. Agile projects encourage fixed cost over a fixed time interval, while scope remains variable. Cost is a product of time and resources. To maintain fixed cost over time, the time and resources should remain constant throughout the project. Programs should consider the following costing approaches:

  • Level of Effort-based Costing – Based on a specifically sized team working over a specific period or range of time
  • Work-based Costing – Calculated by the time and effort required to complete each work item. The work items can be organized as capabilities, features, etc.
  • Incremental Cost Estimation Approach – Based on a determination of how much it will cost to stand up the software factory and start delivering capability. Subsequently, the program should estimate the MVP cost or the cost of the first delivery, and then use the information collected during this time to make more accurate, longer term estimates.

Software acquisition programs must track software development costs per team along with characteristics of the team and characteristics of the software development effort. Characteristics of the team include team size and experience level. Software effort characteristics include software complexity, number of features, programming language(s), and type of software developed (e.g., weapon system software, mission planning software, logistics software, etc.). Costs should also be aggregated at the enterprise level and the Service level and be made available to the Office of the Secretary of Defense (OSD) and all the Military Services for reference and comparison to support future cost estimating efforts.

Costing Based on Level of Effort

Cost estimates based on level of effort address the question “What are the cost and duration estimated to deliver the desired outcomes with a fixed team size?” Cost is estimated based on the number of teams, the burn rate of the teams, and duration.

Costing Based on Work

Work-based costing places greater focus on the level of effort and cost associated with delivering each piece of work. The question addressed by this cost estimate is: “How much will it cost to deliver the desired work items (defined as capabilities, features or user stories)?” The cost estimates are organized around the time and effort required by the software team to deliver each feature. Cost estimates are based on the total of cost of all of the features implemented in a given software release.

Incremental Cost-based Approach

The incremental cost-based approach requires a period of data collection to determine the capacity of the team to deliver capabilities or features. The first cost estimate covers standing up the software factory sufficiently to be able to deliver capabilities or features. Once the software factory is running, the data collection and metrics should be able to support more accurate, longer term estimates.

Factors for Successful Cost Estimates

To improve cost estimates using either approach, programs should:

  • Define the team size and composition
  • Define the work that must be delivered
  • Organize cost projections based on segments of work to be delivered, potentially guided by a roadmap that lays out the sequence of work to be completed
  • Consider past performance data to estimate level of effort and cost for features
  • Review cost estimates periodically and adjust them as more information is made available (e.g., team’s rate for accomplishing work becomes clearer after a few iterations of work are completed, which could impact future projections of work that in turn impact cost estimates)
  • Consider complexity-level costing by sizing work items based on levels of software complexity and associating an average cost and level of effort for each grouping.
Additional Cost Considerations

Estimates should also include:

  • Total hardware costs (if applicable) – The total estimated cost of hardware
  • Software costs and licensing fees
  • Program management costs – The size and annual cost of the program management team, including both government and contractor program management
  • Computing costs (including cloud services) – Fees for license costs related to cloud-based application and computing services; these may also include bandwidth and data storage costs
  • Integration costs – The costs to integrate with other software capabilities
  • Test & Evaluation (T&E) costs, including support from the T&E community, range time, etc.
  • User training costs including Software User’s Manuals, Training Manuals, training packages, initial training delivery, etc
  • Human Factors and software safety related costs
  • Resourcing for user support, including costs associated with user TDY and support
  • Other costs associated with the program.
Considerations for Programs Implementing Agile Software Development

Programs assessing cost based on features shall consider taking the following actions to improve implementation success and the pace of adoption:

  • Ensure that a baseline set of features is identified and there is alignment at the user level on the priority of the features
  • Develop an independent cost estimate
  • Identify tools to enable automation of cost calculations and to reduce the level of effort required to develop the independent cost estimate

Provide information on the cost buildup model used.

 

Continuous Learning Modules
References