A well known axiom of business management is: “if you can’t measure it, you can’t manage it”. I believe there is a software development corollary:
If You Can’t Test It, You Can’t Program It
At a first glance, this may seem stupid. You can program what ever you want to. But programming is about making the computer do what you want it to do. And computer have been scientifically proven to be bizarre, unpredictable creatures. They do what you tell them, and not what you think you told them. Unless you test, you can never know if you got your message to the damn computer.
And because source code is a dynamic, ever-changing being, you have to test and re-test and double re-test. That’s why you need Unit Tests and Regression Tests. But that’s for another post…