Faults in computer problems were theorized as far back as 1843, when Ada Lovelace noted of Babbage's Analytical Engine, "Granted that the actual mechanism is unerring in its processes, the cards may give it wrong orders." Almost 160 years later, NIST reported that software errors cost the US $59 billion annually. Clearly, some of the cards are wrong. However, unlike Grace Hopper's famous moth, most of the time the culprit is ourselves.
Debugging is a sanitization procedure consisting of:
- Preventing bugs in the first place, through good practices and assistive tooling.
- Detecting bugs when they first arise, through proper error handling and testing.