Enabling Space Exploration through Software Development

From the development of the revolutionary Apollo Guidance Computer (AGC) which guided humans to the Moon in 1969 to the stunning images being captured by the James Webb Space Telescope today, software has always been an essential element of operating in space. Every mission – once-in-a-lifetime exploration milestones to the GPS satellites giving us directions every day – requires software to succeed, especially as goals for space exploration and industry become more complex and ambitious.  

NASA has a long history of software development and programming. Going back to the days of the Mercury Program, in partnership with IBM, they created the systems that transmitted real-time mission data back to NASA. These systems were integral in the split-second decision making that needed to occur during missions, as the computers were responsible for calculating trajectories and orbital flight information. Arthur Cohen, who led IBM’s team, stated, “We were the central communication hub of Mercury.” All the flight information flowed through the systems that NASA and IBM developed, enabling the success of the Mercury Program and paving the way for more advances in software and in space travel. 

As the stakes rose with the birth of the Apollo Program, NASA contracted MIT to develop the guidance and control systems on the AGC which were necessary for humans to land safely on the Moon. The lead engineer, Margaret Hamilton, was instrumental in the development of this system. She sought to ensure that the software was robust and reliable and could interrupt tasks when more critical priorities arose. Hamilton also focused heavily on developing software that detects errors and has the ability to recover information in the case of a software glitch. She is quoted as saying, “Looking back, we were the luckiest people in the world; there was no choice but to be pioneers.” She was right – software development was in its infancy, and many of the techniques and capabilities we take for granted today were yet to be invented. Hamilton and her team had to develop their own creative solutions to the complicated problems at hand without being able to rely on any precedent.  

Throughout the years, as technology and software progressed, so too did the need for a set of documents to govern software development within NASA. Today, the core document is the NASA Procedural Requirements (NPR) Software Engineering Requirements 7150.2D, which contains requirements for software acquisition, development, maintenance, operations, management, and retirement. As the document explains, the applicability of its requirements depends on the classification of the software being developed. There are six classes into which a given software may fall: Class A is reserved for the most critical, human-rated space software systems – such as launch abort modes, extravehicular activities (EVAs), communication and tracking – while Class F covers general purpose computing and business/IT software. Class F includes purposes such as general networking and IT, finance and logistics applications, messaging and collaboration tools, etc. If you are interested in learning more about the classes in between and their requirements, you can check out the 7150.2D document linked below. 

Source: NASA NRP 7150.2D

As we’ve seen, throughout the history of space exploration there have been countless problems that needed solving, many of which, being specific to the environment of space, required creative ideas and new ways of thinking in order to bring about a solution. Innovative thinking is particularly important when developing software for government applications, as these must by thoroughly tested and reliable to meet requirements – rather than simply focusing on the newest techniques or technologies.  

As contractors to the government, Comsat Architects recognizes that we have a responsibility to efficiently use funds to produce a product of the upmost quality. Sometimes this means choosing a slightly different approach and leveraging reliable open-source code when possible, in order to meet the needs of our customers. 

To meet those needs, Comsat Architects specializes in designing, coding, and delivering full-stack applications to solve distinct space-related needs. Since 2017, we have produced various applications for the Space Communications and Navigation (SCaN) program and the Human Research Program (HRP). These range from fully featured satellite communication analysis tools to visualization-heavy programs for understanding how human spaceflight standards, program requirements, and human system risks relate to one another. Through building these custom applications, Comsat Architects provides our customers with novel solutions that further enable them to make the best decisions possible. 

References:  

https://www.ibm.com/history/mercury

https://science.nasa.gov/people/margaret-hamilton/

https://www.smithsonianmag.com/smithsonian-institution/margaret-hamilton-led-nasa-software-team-landed-astronauts-moon-180971575/

https://www.nasa.gov/intelligent-systems-division/software-management-office/nasa-software-engineering-procedural-requirements-standards-and-related-resources/