Debugging is Hard
From Zanecorpwiki
First, it's necessary to distinguish trivial and non-trivial bugs. In a trivial bug, the developer clearly intended the correct code and the error is essential one of transcription. Misspellings and syntax errors fall under this heading. Non-trivial bugs involves conceptual errors of some kind wherein the developer intended the wrong thing.
We're talking about non-trivial bugs here.
Fixing non-trivial bugs is always harder than the original coding because the developer always must contend with the nature of the original error and find the correct solution. If it's your own code, then you thought you knew how to do it, but you really don't and that creates cognitive dissonance which makes the correct answer hard.
If it's someone else's code, it's even worse. First, you have to figure out what they intended to do. Then you have to figure out how it should really be done. Sometimes you find out that it can't be done as is, and other parts of the system need to change.
In fact, this is not uncommon with some developers. It's the dark side of the Google effect; you've got armies of coder's that don't really understand what they're doing but who've learned to find seemingly similar stuff on Google and are then able to bang around till it might seem to someone who doesn't know any better that they've done something useful. It's not uncommon to find such uniformly terrible code out there.


