Bug-free Development
A myth says, and lots of people believe, that every program has bugs.
This is only a myth, however. Consider this program:
void main(void)
{
}
This program has no bugs, because it does not do anything. This program has lots of unsupported features, however. It does not do whatever we can think of, or in other words, the entire world is its complement.
You may say this is a quibble, and tweak the statement a little bit and say: Every acting program has bugs.
Then please consider this famous program, which does nothing but printing “hello, world” followed by a line-feed:
#include <stdio.h>
void main(void)
{
puts(“hello, world”);
}
We acknowledge that this program has lots of unsupported features as well. It cannot print “good morning, world”, “goodbye, world”, etc. However, again, it has no bugs.
A program may have unsupported features, but can be bug-free. In my 19-year programming life, no post-release bugs were discovered from my codes. I worked for a company that manufactured semiconductor measurement instruments. I wrote a program that made the company’s program looked like sequential execution, but actually run in parallel way. The patent-owning program had over 2000 lines, and since the day its first version was written (2003), the company’s QA team did not find any bug from it. Two years after I left the company, I talked with my ex-colleague by chance. He told me that the guy, who was assigned the QA to audit my code, did not find a single bug. But since the QA believed the myth “Every program has bugs” so blindly, he preservered with it for two years, and ended up with nothing.
When I was young and arrogant, I drafted a “bug-free guarantee” and attach it to every piece of my source code, and said:
If anyone finds the first bug in my code, I would pay him/her 1 dollar, then for the second bug he/she finds, I would pay 2 dollars. 4 dollars for the third, 8 dollars for the fourth, and the number increases exponentially.
Nobody ever got a buck from me.
In theory, in reality, bug-free development is possible. I am planning to share ideas about bug-free programming in some of my future blogs. Such blogs will use “bug-free” tag.