3. GuidanceCredible software cost estimates for NASA are required to meet specific conditions. When preparing cost estimates, the software acquirer and the software provider work together to develop cost estimates that meet the conditions described below. See SWE-033 - Acquisition vs. Development Assessment. The software cost estimate(s) and associated estimation data should be documented in a software cost driver sheet (a sample is available in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook) that supports the development of a parametric cost estimate. 3.1 Life Cycle CoverageA credible software project cost estimate covers the entire software life cycle from concept to retirement, including maintenance, support (SWE-015 - Cost Estimation), and associated project attributes such as annual percent lines of code changed. A breakout of cost by life cycle phase and activity is a good estimating practice and cost estimates should be updated to reflect new assumptions. 3.2 Project AttributesSoftware cost estimates are based on project attributes, including the estimated size of the software, functionality, complexity, criticality, and risk. Other attributes to consider include the use of reused and/or modified code, database size, documentation requirements, and required reusability. Many of these attributes apply to the software being created, the processes used to create and verify that software, and the products made throughout the life cycle such as requirements documentation, architecture, detailed design, test plans, procedures, etc. (SWE-015 - Cost Estimation). 3.3 Technology ImplicationsGiven the need to use the latest technology to achieve its missions, NASA's cost estimates take into account the cost implications of the technology to be used and the required maturation of that technology. When developing a software cost estimate, maintain all assumptions and data associated with the technology to be used on the software project, and maintain good data and records associated with any cost-saving identified from the use of software technology. Make sure that the software estimate maintains data showing the cost required for the maturation of any planned use of new technology. New technology can be defined as any new software development environments or tools or software development associated with new or unproven technology. 3.4 Risk and UncertaintyRisk and uncertainty both relate to the same underlying concept – randomness. Risk is quantifiable; uncertainty arises from imperfect knowledge. See SWE-086 - Continuous Risk Management. When developing a cost estimate, it is important to identify common software risks, assess their impact on the cost estimate, and make revisions to the estimate based on these impacts, e.g., incorporate allowances for uncertainty in sizing and other cost estimation model inputs. A risk is an event that has the potential to cause a significant impact on technical, cost, and/or schedule performance. |
Compile known major risks. As you generate the software risk list, consider the following: - WBS elements are affected.
- When it would occur.
- Likelihood of occurrence.
- Impact (consequences).
- What it would cost to mitigate the impact.
- Stakeholder and user perspectives.
Risk and uncertainty can be estimated and analyzed in various ways: - Risk matrices (e.g., 5x5).
- Expected risk (likelihood of impact).
- Monte Carlo methods (Monte Carlo methods use random numbers to obtain numerical solutions when analytical methods are too difficult to use) produce distributions.
Monte Carlo methods use random numbers to obtain numerical solutions when analytical methods are too difficult to use. When using Monte Carlo methods with cost models, they are used to simulate the estimated cost distribution. |
The project team may add the results of the expected risk impact or identified mitigations to the bottom-up estimate. The cost models have Monte Carlo algorithms that produce a cost distribution and the identified risks are used to determine which model inputs should be entered with a wider range. 3.4.1 Guidance on "end state risk and threat assessments for cybersecurity" The intent is to make sure that projects/programs are looking at the software product as a whole, not just during development. The cost estimate(s) should include the cost of supporting any cybersecurity risk and threat assessments throughout the planned software use. Including estimating for cybersecurity software assessments and checks during the mission, commend and memory monitoring during the mission, software modifications if needed, and software COTS updates as needed to address a cybersecurity threat. end state - specified situation at the successful completion of the final phase of the project, when the software is no longer needed for the project. 3.5 Software Assurance SupportSupport efforts such as software assurance and, when applicable, Independent Verification and Validation (IV&V) also have costs associated with them that are important to include in the software cost estimation. Including software assurance in the cost, estimate helps ensure that the project fully understands the software assurance activities that should be performed on the project and provides the appropriate level of funding for those activities. It is important for software assurance and the project to discuss the risks associated with reducing or limiting the software assurance effort on a project which may be caused, in part, by limited funding. See also Topic 8.51 - Software Assurance Plan, 3.6 Other CostsOther factors to consider when developing the cost estimate include: - Procurement of equipment such as workstations, testbeds, and simulators.
- Procurement or shared costs of tools such as compilers, licenses, and configuration management tools.
- Travel for reviews, customer interfaces, and vendor visits.
- Training.
See SWE-142 - Software Cost Repositories. 3.7 Additional GuidanceAdditional guidance related to this requirement may be found in the following materials in this Handbook: 3.8 Center Process Asset Libraries See the following link(s) in SPAN for process assets from contributing Centers (NASA Only). |