Peter Coffee, eWeek’s astute analyst, says that Web Services should have a standard for crash analysis. The two biggest benefits to programmer productivity in the past decade are managed memory and exceptions that generate stack traces. I’m coming up to speed on a customer’s system for which I have a very specific task. My approach is to forego the incredibly poor documentation and write junit tests (yes, that’s right — it’s a Java project) that crash the system, generating exceptions as they go. The exceptions that are generated contain stack traces that show me, to the source code line, the state of the system at the junctures critical to the task at hand. This is actually faster than stepping through thousands of lines of source code trying to comprehend the system. Screw comprehension — tell me where it hurts.
I have yet to see an article in a magazine or journal that gives credit to structured exceptions as the productivity boon that they are. They’re essentially a “theory-less” beneficial feature. And yet the benefit is huge. This just goes to show how out-of-touch are most theories of software development.