Apollo 11 and the Forgotten Art of Software Engineering
The Apollo lunar landing programme, which culminated in Neil Armstrong and Buzz Aldrin’s moon walk on 20 July 1969, represents a technical achievement that has yet to be surpassed. The computer systems that helped them get there were among the most advanced of the time. Certainly, no more complex public software project
had been undertaken before the Apollo programme.
The Apollo Guidance Computer, developed at MIT for the lunar landings, was the first embedded system. It was also the first example of a fly-by-wire system. Such systems are used today on modern aircraft such as the airbus A-380. The pilots relied on computers controlled by safety-critical software to keep them alive and enable them to navigate the 384,400km to the moon, control the descent and launch of the lunar lander, and return safely back to Earth. Thousands of computer technicians and programmers were involved in the Apollo programme. The software development process Nasa used to co-ordinate these people is often cited as an example of software engineering, although the term was coined midway through the lunar project.
As the world celebrates the 40th anniversary of one of man’s greatest achievements this week, the idea of software projects being engineering projects has somehow been forgotten. Businesses are keen to gain a competitive edge by churning out software. Apart from in aerospace and some safety-critical -applications, speed of application development has become more important than quality. End-users accept computer bugs as a way of life. The British Computer Society is keen to raise the bar, with training, accreditation and certification, which it hopes will turn computer programming into a profession, with professional standards.
Microsoft’s Trustworthy Computing initiative shows that commercial software can be made less buggy. But will users accept the price of higher quality software, the longer development time and the potentially higher licence fee? They need to. As computer technology becomes embedded in human society, the effects of buggy code will become more obvious and damaging. Software must be engineered to a high quality.
Tags: History, Programming, Technology