Is it just me? I am writing this blog article to find out. On Saturday, thousands of airline passengers were stranded across the country because flights had to be canceled. The Federal Aviation Administration (FAA) deployed a software update that caused a problem. The problem was described on TV news reports as a "glitch." I think that is an inaccurate use of the term.
In my experience of software development, here are the terms I have used:
-
A "defect" is an error in software requirements. Software developers write code in response to a specification that is supplied as part of an agile development process. If the coder developed correct code, but the specification he/she was given contained an error, that's a defect.
-
A "bug" is an error in coding. Writing code is not a trivial task as developers have mental models as to how their code should work. Also, they test their code with thousands of data points; however, sometimes they don't account for every possible combination of data that their code can encounter. When code does not produce correct results given a legal set of input data, that's a bug.
-
A "glitch" is an unexpected condition that code was never expected to handle because neither the code nor the specification called for it. For example, a glitch can be the result of a power hiccup that garbled the data sent to the code. The good thing about a glitch is that a system reboot often fixes the problem, and it is unlikely that the anomalous set of data that lead to the problem will ever be seen again.
-
An "enhancement" is a request to have software do something that it currently does not do. Enhancements are normally handled by additions to specifications.
So when the FAA deploys an update that leads to an almost-nationwide shutdown of air travel, it was probably an error or bug, not a glitch. As another example, when Obamacare was first launched, and a greater number of people visited the website than expected, that's poor planning, not a glitch. That's a defect because the Obamacare website specification didn't define the correct volume of web traffic the system should have expected.
The irony of the term "bug" is that according to lore, it originated when a moth entered an early computer system and caused a problem. Now that's actually a glitch. People who write specifications and developers who write code don't normally expect to account for the use case of when a moth gets into the hardware.
Despite what the press reports, in general, software problems are normally defects or bugs, not glitches. Glitches are rare. If this is how you use these terms, please let us know at [email protected].
Terminology is alive in the lab.