This paper summarizes the findings of several studies and mishap investigations that explored the causes of flight software problems. From these studies and mishap investigations the author identifies several lessons from which others can learn. A key lesson that the author proposes is that software engineering in the real world is largely one of managing risk.
Kandt, Ronald Kirk, "Flight Software Engineering Lessons" (2009). AMCIS 2009 Proceedings. 657.