I remember reading an article that an average programmer spends 90% of the working time for debugging, and 10% for actual development. Even though the number itself may not be correct for everyone, I think the idea itself makes sense.
Then how about the idea of DDE - Development for Debugging Easiness? In order to do sthat, I think of the following procedures and tools.
- UNIT Test, and xUNIT tools for testing function level.
- Assert for input checking, and assert related functions for checking input parameters
- Logging values, and logger functions for enabling the trace of the problem origin
What else do you have? What procedures and tools can be used to reveal the bug itself effectively and efficiently?