Between The Alliance / Bad Code Offsets, helping out the advertising team for Stack Overflow, the day job, and a new special project that Mark and I have taken on (to be announced soon), I have once again fallen behind on today's The Daily WTF article. But that's where I was hoping you might be able to help out.

The wonderfully bad stories and stupendously awful code shared on The Daily WTF comes from you, the consummate IT professionals who live them first hand. So please, share your stories. It can not only fun and cathartic, but other people actually learn from reading about these mistakes. And if you enjoy writing and would like to help Mark and I tell these stories, then let me know. I'd love to hear from you!

That said (and without any further ado) here's a fun classic (Lacking Knowledge Essentials) that was originally published on November 16, 2006.


It was a very exciting email: "Dave, Binnentech is definitely interested in a trial run! Can you go to Amsterdam for two weeks to do the setup and presentation?" While frequent business travelers might dread such a request, Dave had only been on a single business trip in his career, and even then, it was just an overnighter to Ottawa which was just a few hundred kilometers across the province. He couldn't pass it up an overseas journey like this.

Dave's company had been courting Binnentech for nearly eighteen months, trying to get them to buy their Enterprise Knowledge Management system. It was actually a pretty slick system and would have been a great fit for an international giant like Binnentech, if only it wasn't so expensive. Not in terms of licensing costs or fees, but in how much time it would take for Binnentech engineers to migrate to the new system.

Binnentech finally bit when the sales rep told them about a new product: a much simpler knowledge management solution called "Knowledge Essentials" that could be used without a costly migration. They agreed to pilot this new system at their corporate headquarters to see how it works and, if it was a good fit, roll it out to their global enterprise. Dave was tasked with installing and presenting the system at Binnentech. There was just one small problem: Dave had never heard of Knowledge Essentials.

He wasn't alone; none of his coworkers were familiar with Knowledge Essentials, either. The sales rep exaggerated just a bit when he was talking to Binnentech. He mentioned that Knowledge Essentials was in the "beta" stage. In reality, it was in the pre-pre-pre-pre-Alpha stage or, as some refer to it, non-existence. In terms of code, Knowledge Essentials could be summed up like this:

int main(int argc, char ** args)
{
return 0;
}

It became pretty clear what Dave was really supposed to do: simulate an installation of Knowledge Essentials, run into "technical difficulties," gather technical requirements and send them back to the developers, stall for a few days while the developers rush to build a prototype, install the prototype while explaining "technical difficulties" are preventing it from being functional, and then work closely with the marketing team to find a good excuse to reschedule the installation for a few weeks later. As soon as Dave realized this, he stormed into his manager's office and angrily proclaimed: you're kidding; there is no way I'm going to do this!

Three days later, Dave was on a plane headed to The Netherlands. They say everyone has a price; Dave's was a 20% bonus and an extra week's vacation. I suppose it's a good thing that he has no plans to run for any sort of government office.

The long plane ride gave Dave a lot of time to think. He had a pretty bad feeling about this whole Binnentech thing and was certain that he'd get caught. His company would get sued, Dave would have to testify, they'd go bankrupt, and Dave would have to find a new job. A new job, well, that's not so bad of a thing; it'd be an honest job. A job where he wasn't forced (err, bribed) to trick clients into thinking they bought a real system. No more lies, no more deception, and most importantly, no more guilt trips.

Dave finally arrived at Binnentech and realized that none of that would ever happen. No one -- not the CEO, the sales rep, or the team of developers prepared to work triple-shifts to build the prototype -- expected the purchasing department at Binnentech to be even more inept than they were. No one bothered to fill out any of the internal approval paperwork for the project, leaving Dave to spend his first two days in The Netherlands waiting around for a "temporary access badge." The badge was required just to enter the building.

Things slowed down from there. While Dave waited for approval to install a new server in their data center, he gathered all the technical requirements and sent them back to the developers. Several months later, and long after the developers built the real Knowledge Essentials system, Binnentech finally approved the purchase (despite paying it long ago) and Dave returned to The Netherlands to do a real install of the system. A few months later, Binnentech purchased a full license and deployed the system across the globe.

What, were you expecting Dave's company to fail or at least learn that it's a bad business practice to decieve customers into purchasing non-existant products? Sorry, not this time; I guess we can mark yet another one for the "bad guys" ...