When engineering a new software program, risks need to be
evaluated and directly tested. It is the duty of the engineer to see that there
are safety elements in place to handle these risk if they do occur. If proper
testing and follow up is not done, tragic cases such as those that happened
with the Therac-25 can occur. With the Therac-25 issues, software was reused
from another device that had hardware fail safes to prevent improper use. The
software was not tested with the new hardware which did not have the hardware
fail safes until they were assembled at the hospital. The risk of over
radiating a patient do to improper use or fault was not tested with new hardware
because it was assumed it would not have any issues due to it being reused
software. Therefore good software engineering practices were not followed. The application
was built in such a way that proper testing was nearly impossible.
The FBI wasted millions of dollars by not following software
engineering processes. They built a blueprint for a piece of software that was
doomed from the start. Many of the features specified could have been provided
at much lesser expense by customizing off the shelf software. The project was
place into the hands of a person who had no project management experience. Unattainable
deadlines were put in place and the software was behind schedule from the get
go. The software was plagued by system upgrade issues. Multiple leadership
changes also affected the direction of the development because the goals were changed.
Eventually it was determined that the software developed as VCF was so poorly written
that it would be better to start over with a new project.
Sentinel was to replace want was supposed to be replaced by
VCF. Six years later, Sentinel was a two years behind and still lacked common
features found even in the most basic of word processors. The beta program
failed during testing procedures. And two years after the final product was
delivered the software still had major issues with indexing and searching case
files. The indexing function was not popular with the end users due to its
functionality. This aspect should have been tested and refined with user input
to make it beneficial to the agents that would be using it. The searching
function was too hard to use for most of the agents, making it useless.
The FBI is not the only government institution that has
wasted tax payer dollars by poor software engineering principles. NASA has
several catastrophic failures due to poor software engineering. The most famous
of these the Mars Climate Orbiter (MPL). The MCO was to enter a low orbit
around the planet but entered an orbit that was much lower than expected. An investigation
into how this happened revealed that a failure to use metric
units in the coding of the software for the control of the thrusters. They were
instead done in English units. Simple test cases could have been setup to test
for this issue before the craft even left the earth.