Here's some pseudocode that got added to a production system that might just be the very definition of a simple change:
Add a link from one page to cancel_order.cfm?orderID=12345
In that new page, add the following two queries:
- update orders set canceled = 1, canceledOn=getDate() where orderID=#url.orderID#
- delete from orderItems
Now, upload those changes to the production server, and run it real quick to be sure it does what you meant it to do.
Then you say to yourself, "Wait, why is the page taking several seconds to load?"
"Holy $%^@," you think aloud, "I just deleted every item from every order in the system!"
It's easy enough for you to recover the data from the backups. It isn't quite as easy to recover from the heart attack.
Steve McConnell (among others) says that the easiest changes are the most important ones to test
, as you aren't thinking quite as hard about it when you make them.
Are there any unbelievers left out there?
Hey! Why don't you make your life easier and subscribe to the full post
or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate
wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!
Leave a comment
Anyone testing code changes directly in a prod environment needs to be terminated. That's what dev is for. I cringe every time I hear of someone monkeying with code in production.
Posted by Brandon Ellis
on Dec 10, 2007 at 12:56 PM UTC - 5 hrs
Leave a comment
I think I'd settle for learning the lesson and not doing it again. Unless the change was disastrous - then obviously someone has to get canned, and hopefully for the organization it won't be the customer terminating the organization.
Posted by Sammy Larbi
on Dec 10, 2007 at 02:08 PM UTC - 5 hrs