The Apollo 11 lunar landing would have been impossible had it not been for software engineering. But today, with...
commercial pressures, software engineering is in danger of becoming a lost art.
Nasa needed checks and procedures to ensure software bugs could not creep in and put the lives of astronauts Michael Collins, Buzz Aldrin and Neil Armstrong at risk. Although the term software engineering was coined midway through the Apollo programme, experts today recognise the contribution those programmers on Apollo made to improving software development.
Today, source code in software is written rather than engineered. "Programmers do not apply engineering principles," warns Daniel Dresner, chairman of the Institute of Information Security Professionals.
Formal approaches to software development have become unfashionable with the advent of rapid application development, agile development and extreme programming. These approaches take a user-centric view to software projects to help IT align with business goals. However, the pace at which software can be churned out using these approaches has led to poorer quality source code.
"The quicker you roll out software, the less it is tested before deployment, which increases the risk of a failure," Dresner says.
Some experts argue that Nasa, Boeing and the aerospace industry are in a different league when it comes to software engineering, compared to the programming effort involved in producing software for business. However, Microsoft, the world's most successful software company, has perhaps belatedly demonstrated with its Trustworthy Computing initiative how quality pays off.
Since 2002, Microsoft has worked to improve internal processes, with the aim of building higher-quality software with fewer bugs. It seems to be working. Microsoft claims Vista has fewer bugs than Windows XP, and Windows 7 should have even fewer problems than Vista.
In 1969 IBM described the 6Mbyte programs it produced for the Apollo mission as "among the most complex ever written". The current download for Windows 7 RC1 is around 2.3Gbytes - approximately 380 times larger. Windows has often been described as more complex than the software that took man to the moon. As such, software engineering has become key to the way it develops software.
While Microsoft continues on its Trustworthy Computing mission to improve the way its software is engineered, the British Computer Society hopes to raise the level of professionalism in IT, which should see more focus on turning programming into engineering.
"Software engineering is as important today as it was on Apollo 11. As computers affect more of our lives, we need to define standards, training, certification and qualifications," says Adrian Walmsley, vice-president, member services at the BCS.
There are more embedded computing devices in existence than there are people on Earth, controlling and monitoring many aspects of day-to-day life. As with the code in the Apollo mission, bugs in these complex IT systems could potentially be life-threatening. As such, software engineering will become increasingly important.
Pictures taken from Rex Features.