26 February 2008
Not all jobs are what they appear.
Ten years ago I was working as a programmer at Ingenia Communications in Ottawa. We were approached by Corel Computer, a spin-off of Corel Corp. They were behind schedule with some software and were looking for a Java programmer to help them. Three Ingenia employees interviewed for the contract; two were our senior Java guys, I had zero Java experience. Thus it was a considerable surprise when Corel chose me for the job.
The job was to finish work on a gambling website. Roulette, black jack, slot machines -- the usual vices. All written as a Java applet, interfaced to a Java back-end. My new boss gave me a list of bugs, a two-week deadline until the ship date, showed me to my workstation and left me to figure things out. I taught myself Java (writing the Object Tree in the process). I learned the rules for all the games. I reverse-engineered the existing code. It was around this point that I started realizing that the project suffered from more than a handful of bugs. It was a mess. Two weeks was not going to be enough.
My boss would not grant me an access card, thus my hours were essentially restricted from 9 to 5. However I quickly discovered that the latch on the main door could be disengaged using a Swiss Army Knife. Over the next two weeks I worked evenings, weekends and pulled a couple of all-nighters. One by one the bugs got fixed, as did dozens more that I stumbled across in the process. I ran statistical tests to validate that the components I had been working on were indeed correct. Finally I compiled a three-page document listing every bug found and fixed.
On the morning of the ship date I presented the whole package to my boss. Everything he had asked of me had been finished. He was furious. He escorted me to my desk, supervised as I packed my stuff, then walked me out the door.
I had been so close to the code that I hadn't seen the larger picture. It turned out that the project wasn't just behind schedule. It was non-viable. None of the other components (billing, members' database, help, etc) had been started. All that existed were a few games. My boss wasn't looking for a programmer to fix a handful of bugs. He was looking for someone to take the blame. Pinning the blame on a random Corel programmer wouldn't work because that programmer would set the record straight by taking to management. Thus he chose the least qualified outside candidate he could find. Sadly for him, he found someone who could learn quickly, and who documented everything. Documentation which eventually reached Corel's management.
As for the project, I don't know if it ever shipped. Nor do I know what happened to my former boss. All I do know is that Corel Computer went out of business six months later and was reabsorbed by Corel Corp.