


1. Requirements
2.1.1.1 The NASA CE shall lead, maintain, and fund a NASA Software Engineering Initiative to advance software engineering practices.
1.1 Notes
NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement.
2. Rationale
Software engineering is a core capability and a key enabling technology for NASA's missions and supporting infrastructure. The objective of the NASA Software Initiative is to support NASA programs and projects to accomplish their planned goals (e.g., mission success, safety, schedule, and budget) while satisfying their specified software requirements. Software engineering is defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, i.e., the application of engineering to software. A key goal in the 2011 NASA Strategic Plan $param0 indicates that the Agency must maintain and sustain its diverse workforce with the right balance of skills and talents. The associated objective is to establish and maintain a workforce that possesses state-of-the-art technical competencies. One of these is software engineering, which is considered to be a core competency for the Agency. The Software Engineering Initiative Plan (SEIP) $param0 addresses this objective.
Some of the key motivations for the NASA Software Initiative activities are to do the following:
- Reduce the risk of software failures and increase mission safety.
- Improvement processes based on best practices in industry and government.
- Risk management improved on NASA software projects.
- Utilize more predictable software cost estimates and delivery schedules.
- Data shows projects working within Capability Maturity Model Integration (CMMI) software framework and its best practices have increased accuracy in cost estimates and smaller growth in resources over the life cycle.
- Educate NASA personnel, so that NASA is a smarter buyer during the acquisition of software.
- Educating the NASA workforce on best practices in Software Engineering.
- Find and remove more software defects earlier in the life cycle.
- Reduce duplication of efforts between projects.
- Increase NASA's ability to meet the challenges of evolving software technology.
- Improve software development planning across the Agency.
- There is a growing consensus among practitioners and software managers that working to a defined process has substantial benefits.
- Vast improvement in planning of software projects and in monitoring progress.
- Improve NASA's software contractor community with respect to software engineering practices.