WARNING: Corroding Application
by in Feature Articles on 2007-06-28
Trevor D. recently got a job at a company that has provided all of Europe the means to ship dangerous materials for decades. He wasn't specific about which dangerous materials they deal with, so I'll speculate: radioactive, flammable, toxic, corrosive, or biohazardous chemicals, and maybe bees and cobras.
Whatever these dangerous materials are, Trevor maintained an application that could print labels for whatever dangerous goods were being shipped. These labels would list why the contents were dangerous and any necessary precautions for handling them. For instance, chemicals that can explode get a "combustible" designation, biohazardous materials get the logo of defunct New York old-school hardcore band Biohazard, and cobras and bees are labeled "warning: this package is full of goddamn cobras and bees!"
Rrrrrriiiinnngggg. Ahh, yes. The 2:00AM support call. There’s nothing else quite – rrrrrriiiinnngggg – like it to remind us that no place, not even Happy Dreamland, is – rrrrrriiiinnngggg – a sanctuary from work. “Hun,” Michael’s wife grumbled, “Aren’t you going to get – rrrrrriiiinnngggg – that?!” Michael rolled out of bed and answered the support phone. There was apparently a pretty serious problem with one of the dedicated communication servers.
J Cooper sat down with his buddy Holden for lunch. They'd eat together pretty much daily, enjoying a meal while discussing work. While they were eating, Holden mentioned a particularly irritating issue that he was troubleshooting.
The First Day of a new job is almost always slow and uneventful. A bit of paperwork in the morning, a quick walkthrough of the system, and possibly a trivial First Assignment. Nick’s First Day at the International Shipping Company (as I’ll call it) was no exception. In fact, it was so slow that it seemed like the First Day would last all week. That is, until a frantic coworker burst into his cubicle.
Virtualization was not an uncommon theme among several of the OMGWTF entries. It only makes sense: why stop at abstracting layers of software when the entire hardware platform might need to be changed later on? Sure, some might argue that the “operating system” or “compiler” can handle all those changes, but why risk it? Entry #100336 (Randolpho St. John’s VICE, Virtual Integrated Circuit Engine) sure didn’t: it took the concept of a virtual machine way too far.
Before even hearing the problem description, “certain” developers already know what the solution will be: something with a Client-Server model. It could be .NET Remoting, Java RMI, or some homegrown protocol, but whatever it is, it should use network communication to interface between layers just in case it has to scale up for multiple computers. The Client-Server model was not an uncommon approach to the OMGWTF contest, but Entry #100099 – Keith Lucas’s estimator – did it in the most unconventional manner.
As Jake, Intern Boyd, and I sat around the conference table and scrolled through codefile after codefile, solution after solution, Entry #1000043 – Stephen Oberholtzer’s “Buggy 4-Function Calculator” – sucked us in. It didn’t feel like we were looking at a purposely contrived contest entry, it felt like a real, live, rotting codebase. The kind of codebase that plagues so many organizations: fragile, old, bug-ridden, and passed through the hands of several developers.