Every Solution Brings a Problem

As a general rule, it's good to assume that your clever solution to problem X will cause a new problem, Y. Your hope should be that Y is less of a problem than X.

Some years ago, I taught a class at the University of Illinois called "CS397: Being Wrong." (At that time, the computer science department didn't really care what I taught as an unofficial adjunct, so long as I didn't want to be paid or anything like that.)

My introduction in the first lecture was the Immune System, where not only did the solution to X produce problem Y, but the solution to Y produced problem Z. I don't remember how far I took the chain. A secondary point of the lecture was Your Body Is a Gross Kludge.

Students were to come up with their own examples. I hoped they'd leave the summer semester with a shifted attitude toward their software solutions. Out of maybe 12 students, I think only one of them really got it.