Thursday, June 19, 2008

Software Development and Aerospace Engineering

It's time to learn from the principles of spacecraft software development, says David Fearon. - PC Pro - The article points out that mainstream computer software developers should learn a thing or two from space systems. The DARPA Urban Challenge and Armadillo Aerospace's work in the Lunar Lander Challenge are used as examples of difficult, unforgiving environments.

I agree that some space computing successes can give "mainstream" software developers lessons in fault tolerance, safe and robust programming, making the most of limited hardware, and so on. However, I'd also make the argument that "mainstream" software development has lessons to give to aerospace engineering, too, in terms of satisfying consumers, quick development, mass production, and so on. Armadillo is an example that can be used in both directions of this discussion; I'd make the case that more often than not they're bringing software practices into the aerospace world. In either case, when transferring lessons from one field to another, it's necessary to intelligently apply the right lessons in the right circumstances. Transferring them blindly from one situation to another can be a disaster.