Other cases did not have such happy endings. Several embedded systems for use in radiotherapy? machines failed so catastrophically that lethal doses of radiation were administered to a number of patients.
Other big stuffups I know about, though they were from the 80's and 90's and they're all Australian:
It was believed that this crisis was due to the lack of discipline of programmers, and it was believed that if more formal engineering methodologies could be applied to software development, the production of software would become as predictable an industry as other branches of engineering.
Libraries are full of books that have been written on the subject. Some of the best have been published by the Software Engineering Institute (SEI) at Carnegie-Mellon University in Pittsburgh, PA.
Methods have improved through the 1980s and 1990s, but the complexity in requirements have increased fast enough to consume any improvement. One problem is that many customers are first time customers without previous experience from writing requirements for a software project. If the programmers are good, the system will work, and the customer will not fully appreciate how complex the task was. There is also a constant eagerness to develop new tools and try the newest tools in each new project.
Software engineering methodologies are often broken up or spread across a number of different disciplines, including every thing from project management, software testing, design, specification, and quality assurance. All of the more formal methods guiding this field are collations of all of these fields. Some of the better known methodologies include Cleanroom?, Capability Maturity Model (CMM), and a new concept called [Extreme Programming]? (XP).
Some of the concepts involved in these include: TBD: maybe a far more comlete list here: