It's Independence Day for us folks here in the US, so to mark the occasion, here's a Classic WTF!


Woof.Pete and his manager Dick were ACME Corporation's version of The Odd Couple. They both shared in the support and maintenance of a monstrous in-house spawned order processing / network monitoring / invoice printing / slashy / slash / slash system written in Visual C++. However, while Pete kept up in the latest technology trends and was always on the lookout for new solutions to old problems, Dick was a very conservative manager with twenty-five company years under his belt. To Dick, "change" was only a Good Thing when it added up to 65¢, which was the exact amount required to buy a ginger ale from the soda machine. What kept Pete and Dick from being a perfect couple was that Dick was Pete's supervisor and often times, he got his way.

Back in the late-90's, Pete had caught wind of some "Java" thing starting to pick up steam. When comparing features, he found that many of the kludgy, half-hearted attempts at a supportable solution they developed would have been scads easier to do using Java. Intrigued at the prospect of a better codebase that took less to develop, Pete coded up a new modules in Java as a proof of concept. For a prototype, it seemed to work well. That is, until it hit a roadblock named Dick. You see, Dick had heard about Java, too.

"You're a developer, not a hacker," Dick ranted after being shown the Java prototype, "we already have the right tools for the job at our hands. Anything that must be run as bytecode through a virtual machine will always be ten times slower!"

Order Jamming

As the years past by, Dick continued to have misgivings about Java. Whenever someone said the word "Java", his knee-jerk reaction was *cough*virtualmachine*cough*. As developers from other teams began using Java tools for themselves, he'd shake his head, roll his eyes back, and eagerly await the first opportunity to say "told you so" if anything unexpected occurred. Even something as little as a typo.

Not all Java encounters, however, ended with just an eyeroll. One day, after being impacted by a "major Java failure" in another department's application, Dick dished out some full-fledged, beat-in-the-face, you'll-be-lucky-if-you-have-a-job-in-the-mailroom-once-I'm-through-with-you anger to one of the lead developer in the other group. And for good reason: the application in question was a J2EE-based order processing system that used Oracle databases and Enterprise Java Beans. That fell directly into the crosshairs of Dick's anti-Java artillery.

Curious as to the technical details of the failure, Pete inquired with the developer. The problem, as he explained, occurred in the middle of a seasonal heavy volume period where the number of orders per second peaked into the hundreds. During that time, it took several minutes to complete a transaction, making the performance comparable to that of a crusty old 486. Dick had of predictably blamed Java.

"Had it always buckled under the pressure?" Pete asked.

"No," replied the colleague, "we're on Version 3 of the system; it's not like they had gained thousands of customers overnight."

"So what happened recently to make things so bad?" asked Pete.

"Dick happened."

Previously, the system had used a message queue system to pass data between it and the big server in the Financials group. However, now, every single transaction was saved off to a custom table in the database, dumped to a common directory on Unix, and then were transferred out by a cron job via FTP. Pete asked why on earth they were writing the transactions to text files.

"That's most likely what's slowing the whole thing down so much," the developer explained. "Dick insisted that, if we were to interface with your system, then we'd have to write everything to text files for reliability. He likes to have the data around where he can see it. To the best that we can tell, he just didn't trust the whole Java and database thing."

Though "Javagate" didn't have the outcome that Dick had hoped — having the mature order processing system be scrapped in favor of something a little lower in the alphabet than "J" — he still remained bitter about technology.

A Sure Thing!

Because of ACME's expertise in building specialized logistical software, a Norwegian company named FooNorsk sent some suit n' tie guys to probe ACME for a really big thing: they had just won a government contract to automate the transportation of passengers around the whole country and wanted ACME to develop some parts of the system.

The system would be responsible for tracking all the vehicles (trains, buses and boats) using GPS, automatically planning all the schedules, coordinating different transportation systems, solving problems due to service interruptions, delays, etc. It was slated to be installed in a big server farm near Oslo and require hundreds of servers to run. Oh, and it was to be based in J2EE.

Pete and Dick attended some meetings with the tall, Viking-looking guys. In a break for coffee, Pete was talking with FooNorsk's main engineer about how ACME had done plenty of Java based projects and had so much expertise in the subject.

When the meeting resumed, the discussion went about some more technical details. Dick then sealed the fate of the meeting with these killer sentences:

"So, your system is made in Java? We don't use any Java around here, it's just too slow. It has no use in our line of business. Why don't you use C++ instead?"

Needless to say, the contract was lost in that precise moment.