In light of Ben’s post about an April Fool’s Day prank gone wrong, it reminded me of the biggest failed developer prank I’ve ever experienced. I once worked on a mission-critical application for a government agency. It was classified at a very high level. I was one of the developers who was cleared to view classified data, but others on the team weren’t, so they worked with dummy data.
One morning, I got a frantic call from the project manager begging me to get to the office as soon as possible because some time overnight, the application looked broken. Not only was the data corrupted, but so were all of the UI elements. It was completely unusable. Even worse, some of the data in the database (several gigabytes’ worth) was also corrupted.
I got to the office and took a look. My project lead was shaking with anxiety. There was a pattern to the corrupted data, and I it took me about 10 seconds to figure out what was wrong. “What’s today’s date?” I asked the lead.
“April 1st. Why?”
I told him to take another look.
“What? I just see gibberish.”
“It’s all backwards,” I said. Sure enough, every string was reversed. The leads anguish turned to anger.
The next step was to figure out how, and then, who did it. I figured out the latter pretty quickly, and it was the last person I’d expected to do anything remotely humorous--a 25-year veteran of the group. He didn't have a clearance, so he never saw the corrupted data.
The how was the most interesting part. The developer had somehow hooked into the Java Swing UI to reverse the strings, but then those changes to the editable fields were auto-saved. He had to issue a hotfix for both the app and the database, without being able to access them to apply the changes himself, and I’m sure that he was more pissed about having to walk me through the fixes than he was contrite about having messed things up so badly. In the end, all the data was restored, and the episode lasted, at most, a couple of hours.
So, Dear Reader, please think twice, or maybe three times, before pulling off a stunt like this at work, especially on production, mission-critical apps!