Content updates needed on this page: 

  • Update tabs as necessary
  • Suggested Additions in tabs 1, 2, and 3. 
4

Addresses the history of the NASA software improvement efforts to provide a background for the development of this electronic handbook

1. Purpose

This topic addresses the purpose of the NASA software improvement efforts and provides an overview of the activities for software process improvement.  

1.1 Introduction

Software engineering is a core capability and a key enabling technology for NASA's missions and supporting infrastructure.

 1.1.3 The Agency makes significant investments in software engineering to support the Agency’s investment areas: Space Flight, Aeronautics, Research and Technology, Information Technology (IT), and Institutional Infrastructure. NASA ensures that programs, projects, systems, and subsystems that use software follow a standard set of requirements. One of the goals of this directive is to bring the Agency’s engineering and software development and management communities together to optimize resources and talents across Center boundaries. For NASA to effectively communicate and work seamlessly across Centers, a common framework of generic requirements is needed.

NASA's software development activities began with the earliest projects headed to space (Gemini, 1962 ). Usually, the software activities were project-specific and were created with a particular project in mind. Often, the spacecraft design dictated the size and shape of the computer. New software development was required because software adaptation and reuse were essentially non-existent, because of unique platforms, individual programming styles, and the relative non-existence of other software.

The early occurrence and recognition of software issues (software faults caused computer restarts during the Apollo 11 lunar landing in 1969 ), as well as the increasing costs of software development, encouraged NASA to address the software engineering approaches used in the Agency. In 1976, the first NASA Software Engineering Workshop was held to address these issues. In the late 1980s, NASA followed up these efforts with the kickoff of a Software Management and Assurance Program (SMAP).

From these initial activities came the impetus for the NASA Software Engineering Initiative (NSEI) at the beginning of the new century. NSEI came into existence as one of the three basic components of NASA's Engineering Excellence Initiative (EEI). (Systems Engineering and Project Engineering are the other two main components.)


NPR 7150.2 is written in the "shall" statement format with supplemental information in the form of accompanying notes and appendices. While these were included to help explain the meaning of each requirement, it was recognized that additional detail on the scope and the applicability of each SWE would increase the speed of cultural change and adoption of these software requirements. This Handbook, NASA-HDBK-2203, was established in wiki format to help achieve the above goals. 

See SWE-139 - Shall Statements in this handbook for the requirement. 

During the development of the NPR 7150.2, there was an intentional effort to minimize the size of the document by keeping it focused on the requirements. However, the 7150 teams had developed a large amount of additional guidance material for the NPR, which they decided could be more effectively utilized in a NASA Handbook rather than in the NPR itself.    


2. NASA Software Engineering Initiative

Software engineering is a core capability and a key enabling technology necessary for the support of NASA's Enterprises. Surveys and assessments identified and documented many software challenges within the Agency. Additionally, continuing exponential growth in the scope, complexity, and importance of software within NASA systems challenged the Agency's ability to manage it effectively. As a result, the NASA Headquarters OCE formed the NASA Software Engineering Initiative  in 2002. In coordination with Center software engineering improvement activities, the OCE defined a NASA-wide comprehensive approach for improving software engineering to quantifiable maturity levels commensurate with mission criticality to meet the software challenges of NASA.

  • What is it?
    • A NASA-wide comprehensive approach for improving software engineering processes and technology.
  • Why are we doing it?
    • To meet the challenges facing NASA in software engineering (schedule, cost, meeting project commitments, and ensuring the use of best practices).
  • What are the elements of OCE’s approach?
    • The integration of sound software engineering and software assurance principles and standards.
    • Enhancing software engineers' and assurance knowledge and skills.
    • The use of the Integrated Capability Maturity Model as a benchmark for assessments.
    • Software engineering tool infusion.
    • Software metrics.
  • Who is deploying it?
    • OCE (NASA Engineering and Safety Center (NESC)) and OSMA in collaboration with each Center.
    • NASA Software Independent Verification & Validation (IV&V) Facility  
    • NASA Software Working Groups.
    • Center projects, organizations, and working groups.

The following key principles guide NASA's software improvement activities:

  • Develop more efficient and automated methods
  • Improve the risk, issue, and finding reporting
  • Add value
  • Reduce the risk of software failure - Increase mission safety.
  • Improve how defects are found and remove the defects early in the development cycle.
  • Improve processes based on best practices in Industry and Government.
  • Provide more predictable software cost estimates and delivery schedules.
  • Create smarter buyers for contracted-out software projects.
  • Educate the NASA workforce on best practices in Software Engineering.
  • Reduce duplication of efforts between projects in the area of software.
  • Increase NASA’s ability to meet the challenges of evolving software technology.

This initiative covers software process improvement, as well as items related to software research: software safety, and quality; attraction and retention of software engineers, and improvement of NASA's software engineering knowledge and skills. It applies to both mission-critical and non-mission-critical software.

The initiative provides:

  • Technical support for NASA project issues and special studies.
  • Serves as Agency & NESC subject matter experts for the software technical discipline.
  • Recommends, reviews, and maintains software requirements, policies, processes, standards, best practices, and handbooks. 
  • Maintains NASA internal and external assessments of software development organizations.
  • Maintains and supports reporting on the state of the software discipline.
  • Coordinates external NASA interfaces for software engineering.
  • Maintains a list of top software engineering discipline topics and or challenges.
  • Collects and analyses project software engineering metrics and proactively identifies discipline issues & concerns that require additional investigation (identification of trends).
  • Promote/integrate continuous improvement of software processes.
  • Maintains a software Community of Practice site and knowledge management for the software community.


Review - SWE-002 - Software Engineering Initiative is the NPR 7150.2 requirement for the Software Engineering Initiative. 

Review - SWE-005 - Software Processes is the NPR 7150.2 requirement for the Software Processes. Addresses Centers establishing an SEPG and a Process Asset Library. 

Review - SWE-095 - Report Engineering Discipline Status requires reporting on the status of the Center’s software engineering discipline, as applied to its projects, upon request by the OCE, OSMA, or OCHMO.

Review - SWE-208 - Advancing Software Assurance and Software Safety Practices requires that the NASA Chief, SMA shall lead and maintain a NASA Software Assurance and Software Safety Initiative to advance software assurance and software safety practices.


3. Conclusion

Ensuring the quality and safety of NASA software is of paramount importance in achieving mission success for the Agency's programs and projects. The NASA Software Process Improvement Initiative brings together an integrated spectrum of software engineering professionals, researchers, trained practitioners, improved processes, ratings and appraisal systems, accredited tools, and numerous engineering productivity tools to promote software improvement and overall excellence.

4. Resources

4.1 References

Enter the necessary modifications to be made in the table below:

SWEREFs to be addedSWEREFS to be deleted


SWEREFs called out in text: 083204205271, 278408, 409518

SWEREFs NOT called out in text but listed as germane: 038, 040, 157, 170, 255, 257, 290, 389

Related Links Pages


4.2 Tools


4.3 Additional Guidance

Additional guidance related to this requirement may be found in the following materials in this Handbook:

Related Links

4.4 Center Process Asset Libraries

See the following link(s) in SPAN for process assets from contributing Centers (NASA Only). 

SPAN Links



4.5 Related Activities

This Topic is related to the following Life Cycle Activities:

Related Links


5. Lessons Learned

5.1 NASA Lessons Learned

A documented lesson from the NASA Lessons Learned database notes the following: 

Independent Verification and Validation of Embedded Software, Lesson Number 0723: Besides the recognition of the need for extensive project retesting (see the Introduction section for computer restarts), this lesson learned indicates the need for independent verification of performance results because of recognition of earlier problems, e.g., failure to perform IV&V for software projects could result in software system weaknesses, performance of unintentional functions, and failure of the system and the mission. Anything less than a methodical, systematic rigorous treatment of IV&V could cause loss of mission, life, and valuable resources.   

5.2 Other Lessons Learned

No other Lessons Learned have currently been identified for this requirement.