Bugs are Defects

Calling software defects “bugs” denotes that somehow critters are crawling into code and having their way with the bits. Once upon a time, there were real bugs in computers. They prevented relay contacts from closing. There’s no such thing as software “bugs” today, only logic defects.

In reality, defects are created by people with imperfect logic. Calling defects “bugs” is transferring responsibility from the human creator to a mythical insect.

Defective software is a fact of life. Unlike Star Trek Vulcan science officers, humans lack pure logic. Maybe that’s the price we’re paying for being human.

Until space aliens possessing pure logic visit Earth and mind-meld with humans, we’re doomed to imperfect logic. This means microcode cast in silicon, assemblers, compilers, and program generators will continue delivering defective output. To compound the problem, it also means that application solutions humans are abstracting and describing using these tools will continue containing logic defects.

If you think defects are rampant today, you ain’t seen nothing yet. The order of complexity of software-based systems is most likely accelerating at a rate faster than Moore’s law.

The best we imperfect logic humans can do is learn from our mistakes. Unfortunately, this seems to be rarely practiced. Many realities about the art of software were described by Fredrick Brooks in “The Mythical Man-Month: Essays on Software Engineering.” The second edition of the book published 20 years later confirms that the realities of software are as true today as in 1975 when the first edition of the book was published.

A precious few people practicing the art of software are aware of software sins of the past. Most practitioners are blindly recreating them, and are pushing the blame onto the mythical “bug.”

…John

Leave a Reply


The Internet Traffic Report monitors the flow of data around the world. Internet Storm Center Infocon Status