Clever! And I do think that if we think of debugging as scientific experiments than that will improve our debugging. But if debugging is science, isn't all engineering science? It's not like the process of testing, identifying problems, and fixing them is unique to software engineering vs. other types.
This is a nice piece about debugging in the light of scientific methods (and vice versa). One detail, though:<p><i>The idea goes back to Francis Bacon, who, using modern CS terminology three hundred years ahead of time, called it a "conditional inductive tree".</i><p>This is an anachronism. There's no way Bacon or anybody else used the phrase "conditional inductive tree" in 17th century English. Bacon may have anticipated the idea, but the phrase itself, and that way of formulating it, are modern constructs.<p>Edit: by "that way of formulating it" I mean the idea of a conditional tree with branches as alternatives. It would be interesting to know the origins of the logical tree metaphor and how it evolved as part of logic/CS.