From this post on Joel Spolsky’s blog:
Zawinski didn’t do many unit tests. They “sound great in principle. Given a leisurely development pace, that’s certainly the way to go. But when you’re looking at, ‘We’ve got to go from zero to done in six weeks,’ well, I can’t do that unless I cut something out. And what I’m going to cut out is the stuff that’s not absolutely critical. And unit tests are not critical. If there’s no unit test the customer isn’t going to complain about that.”
I disagree – unit tests are critical. I do agree that the customer isn’t going to complain if there are no unit tests. The customer will complain, however, if some functionality is broken in the new release. And without unit tests, how are you going to verify that?
[Update: I just read Uncle Bob’s response to Joel’s post, and it’s excellent. Read it.]