Today I was reading a post from James which linked through to a list of “20 Controversial Programming Opinions” that folks had posted on Stack Overflow. It is worth a look, if only to foster debate about the subject.
I’ve not got a problem with any of the statements to be honest. Some of them make more sense in particular contexts, but none of them are outright daft. I think most of them boil down to:
If you are using something make sure you are doing it for the right reasons and for the right effect. Adding comments, drawing use case diagrams, writing unit tests etc etc should not be things that you do “Because you have to”. In the right context these techniques are crucial. If I’m meeting a customer for the first time and I need to have something that will serve as the basis of of discussion a Use Case Diagram is essential. But if I’m writing a quick, single purpose, application then there is no need for that level of detail.
The bottom line is that before you use something you should consider why you are using it and how it will add to what you are building. Don’t feel bad because you haven’t used a design pattern, or written thousands of unit tests. Just ask yourself how much the user likes what you have made, and how you can make it work better.