I have a highly theoretically approach to debugging, it goes something like this: "I don't write any bugs, and anyone who says otherwise is a double-damned liar not to be trusted" :D In all seriousness, I think it depends where in the application cycle you are, and what your actually involvement with the application is. For example, if this is a new application that you're developing you might want to take a look at some of the techniques available for developing robust code. In particular I'm thinking about Unit Testing - Marc Clifton of this parish has written loads about this, have a look at his site here: http://www.marcclifton.com/[^] If the application is already out in the wild, then you're a little bit more limited in that a) you generally respond to issues raised by the users b) depending on who put the application together, you may not have access to all the design information you need. In this sense, it's a bit more hit and miss.