Agile process to evaluate aerospace specification
A team of five students from Carnegie Mellon University’s Silicon Valley campus, under the guidance of Christopher Ellison of The Boeing Company, used an Agile process to create a demonstration version of a new aerospace specification. The Aeronautical Radio, Incorporated (ARINC) 838 specification provides the aerospace industry an improved definition for loading software onto aircraft. The students identified gaps in the still-evolving specification, provided a working sample implementation, and successfully utilized an Agile process on an aerospace project.
The students, Liron Yahdav, Brandon Sutherlin, Ryan Neal, Scott Griffin, and Mike Deats, participated in the project as part of CMU’s Master of Software Engineering curriculum. Each student is required to participate in a capstone practicum course. This course matches student teams with professionals from the software industry. Students utilize the knowledge and experience gained throughout the curriculum in a real-world situation with a real client. Ellison, a graduate from the program, returned in the role of a client to utilize one of CMU’s talented teams to improve the ARINC 838 specification.
Boeing and other companies in the aerospace industry are currently defining the ARINC 838 specification. The CMU team worked with Ellison to implement an early version of the specification. The team identified shortcomings and confusing details of the specification. Ellison then worked with the specification authors to improve the specification. The software was released under an open source license, providing the industry with a working example to use as a foundation for future work. Detailed information about the team, project, process utilized and results of the project can be found at https://github.com/squirrely/arinc_838.
Software that is certified for use on aircraft is subject to very rigorous standards. It is vital that the code behave as expected in all circumstances. As such, many additional requirements are imposed that are not present in other software industries. The team was responsible for developing the software in a manner that could pass this additional scrutiny. While producing fully certifiable software would have required more time than allotted for the course, Ellison assisted the team in understanding the basics of what was required.
The CMU team utilized an Agile software development process to build the product. Agile processes focus on customer interaction, incremental design, high-quality code, and embracing change rather than rigorous planning and documentation. Agile methodologies are typically frowned on by the aerospace industry, as they are perceived to be unable to provide the rigor required for aerospace software certification. One of the team’s goals was to examine if an Agile process could be used successfully in a project requiring a great deal of rigor. The team feels that the project provides evidence that Agile techniques can be used to meet the rigorous demands of aerospace software. A report examining the team’s experience utilizing Agile in such a demanding environment can be found at the project website, mentioned above.