126.96.36.199 The NASA CE shall lead, maintain, and fund a NASA Software Engineering Initiative to advance software engineering practices.
NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement.
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.
This requirement primarily applies to the NASA Headquarters Office of the Chief Engineer (OCE). The requirement states that the leadership of the NASA Software Initiative resides with the NASA OCE. The OCE has the responsibility to lead, maintain, and fund the Agency leadership and Agency-wide Software Initiative activities. Centers have the responsibilities to lead, maintain, and fund the Center software improvement activities and Center or organizational software process activities, including the flow down of Agency policies and requirements into Center or organizational processes, requirements, and policies. The final decision on the direction and selection of implementation approaches for the NASA Software Engineering Initiative is made by the NASA OCE.
The NASA Software Engineering Initiative (NSEI) began in 2002. The SEIP $param0 "defines a NASA-wide comprehensive approach for improving software engineering to a quantifiable maturity level commensurate with mission criticality in order to meet the software challenges of NASA." NASA's plan employs common frameworks for software process improvement, which it does through the establishment and maintenance of an engineering infrastructure. This approach includes the implementation of advanced practices, the establishment of an integrated requirements set, and integrated training in advanced software engineering. The OCE assures the achievement of these activities by providing funding and coordination.