Eric Lippert has an interesting blog posting (here) on how sometimes you can be so focused on fixing the bug you fail to step back and take a better look at the actual problem that you’re trying to solve.
I’m guilty of this and, with me at least, it doesn’t only apply to bug fixes. Sometimes I can become overcommitted to a design to the point where I don’t recognise that it’s just one design option I treat it as the only design option. I suppose it’s to be expected, especially when you’ve already committed a lot of thought to the design you’ve chosen, you build up momentum in the direction that you’re heading and it can take a long time to slow down and turn around.
A classic example of this is how my Practical Testing series continued to refine my originally chosen design and continued to deal with all of the various edge cases that came from using
GetTickCount() when using
GetTickCount64() made most of the issues go away and fabricating a version of
GetTickCount64() for where it wasn’t available was pretty straight forward. It took a reader comment to kick me out of my rut.
This kind of thing is actually one of the main reasons that I blog about my technical stuff. I want to have the chance that people who are far smarter than me might see what I’m doing, gasp at its stupidity, and take the time to correct my misunderstandings.