06 May 2010

a tale of two bugs

Bacteria become resistant to antibiotics when they are exposed to them an the bacteria that are not resistant die. One way to prevent that is to use combinations of antibiotics: bacteria might be resistant to one antibiotic or the other, but probably not both. So by using a combination of antibiotics, you can prevent antibody-resistant bacteria.

I think the same is true of code, unfortunately. Suppose you are seeing some strange behavior. If you had one bug, you may be able to figure out the pattern and fix it; but having two bugs they may interact in such a way that they prevent you from figuring either out. So by using a combination of bugs, you can prevent bug-resistant code.

It's a pretty powerful argument for having only one bug at a time, wouldn't you say?