A coworker years ago tried to teach me the lesson, "Never test on the production application." Some people are still learning that lesson. For some time, I'd hack on our internal web system as it was live and slap a "debugging; do not use" message at the top of the page. As nice as that is, obviously what you should be doing is setting up an exact duplicate of your app somewhere else, hack on that, and only leave debugging the migration for the live version's update. If you're hacking catch-as-catch-can, what you're likely seeing is a poor process, where you might be kneejerking a quick fix for a call you got yesterday. That's a real issue.

But in any event, don't hack anything live. Have a backup of an older version ready to slap up there in case the new version is borked, and the worst that happens is you quickly roll back your app. If the stakes are high enough, make sure you can run in parallel for a while.

And for heaven's sake, don't put up anything half-implemented into a live app.

Sounds so obvious, yet I'm hit with it -- now as a user -- much more often than I'd like.