Translated from a senior's internal network blog. This post interestingly highlights the importance of debugging, especially in the context of Test-Driven Development (TDD), which is increasingly advocated today.
The hardest part of being a programmer is: debugging bugs.
Harder than that is: debugging bugs after a release.
Harder than that is: debugging logical bugs after a release.
Harder than that is: debugging logical bugs after a release that were not written by you.
Harder than that is: debugging logical bugs after a release that were not written by you and cannot be debugged.
Harder than that is: debugging logical bugs after a release that were not written by you, cannot run independently, and are difficult to debug.
Harder than that is: debugging logical bugs after a release that were not written by you, cannot run independently, are not in a test environment, and are difficult to debug.
Hardest of all is: debugging logical bugs after a release that were not written by you, cannot run independently, are in a production environment, and carry the risk of irreversible data loss.