Hidden Tax Moves
Software development gone wrong.
It was fall of 1995 and everyone was gearing up for the 1996 tax season. After years of maintenance of a DOS-based tax application, TaxQuik -- as we'll call the company -- had to get with the times. New, spunky companies were building tax software for Windows with fancy GUIs, integrated help and even Internet-enabled features, while TaxQuik was still in the text-based stone age of DOS.
The one thing that the new companies all lacked was the name recognition and brand loyalty of TaxQuik's customers. The company developed an aggressive plan to continue to support the DOS version, while simultaneously building a Windows version of the software. And by all accounts, the plan worked like a charm.
Some of TaxQuik's larger clients were given a preview version of the new Windows version, and the feedback was almost universally positive. An interactive 1040 form that could be printed on any sheet of paper without needing blank copies of the form? It was the kind of thing that tax accountants' dreams were made of.
Trouble in Paradise
As testing continued, the initial appeal of the software started to wear off. One day, a user called to complain his network connection kept dropping whenever he was using the Windows version. The following day, two more reports of the same problem came in. Eventually TaxQuik received more issue reports than it could handle, so the network infrastructure group was called in to help.
Bruce W. and the rest of the infrastructure team got to work right away, first setting up a test installation on a small network with a sniffer running on one of the machines. They entered 1040 information for Joe Employee at 123 Fake St. and took a deep breath as they hit ENTER.
There was barely a blip in the network traffic.
Returning to the machine, they loaded the tax form, tabbed through, changed a few fields and hit ENTER again. Again, hardly any traffic was generated.
"Wait, let me try," Bruce said, grabbing the mouse.
"Whoa, what just happened?" a teammate exclaimed. "What did you do? A ton of traffic just came through!"
"Uh, nothing, I think."
Bruce hadn't done anything but sit down at the table and put his hand on the mouse. "Let me see if I can reproduce whatever just happened," he said. Bruce dragged the cursor to the file menu and was about to reload the form.
" You just did reproduce it! What the heck are you doing?"
This gave Bruce an idea. "I have to ask the lead developer about something."
"Oh, I think I might know what the problem is," the lead developer said, when Bruce questioned him. "We wanted the operations to be quick so it would feel like a Windows app instead of a DOS app ported to Windows, so we spent a lot of time on optimization and hiding reads and writes."
"So, we decided to put a lot of the background logic in the application's MouseMove event."
Bruce summoned all of his self control to keep from slapping himself on the forehead. "What kind of 'background logic'?"
"You know -- database reads and writes, re-calculations."
Windows Next Season
|Tell Us Your Tale
Each issue Alex Papadimoulis, publisher of the popular Web site The Daily WTF, recounts first-person tales of software development gone terribly wrong. Have you experienced the darker side of development? We want to publish your story. Send us your 300- to 600-word tale -- if we print it, you'll win $100 and an RDN T-shirt! E-mail your story to Senior Editor Kathleen Richards at email@example.com and use "DevDisasters" as the subject line.
After several meetings, it was decided that it wasn't the best idea to put critical code in an app's MouseMove event. Realizing that users of the DOS version were probably accustomed to keyboard navigation sealed the deal. TaxQuik quietly stopped describing the Windows version as a "preview" -- probably because "harbinger of doom" would've been more apt -- and instead called it a "limited beta."
Large sections of code were reworked to perform smaller tasks in little bursts, rather than unleash a series of dozens of commands and queries while the mouse was moved around the screen, but it wasn't enough. TaxQuik didn't have a shippable Windows version of the software for the 1996 tax season. The following year, it managed to put out a Windows version that still had some performance issues, but by 1998 the company had hit its stride. At this rate, TaxQuik will hopefully have a Windows Vista version by 2012.
Alex Papadimoulis is a managing partner at Inedo LLC and publisher of the Web site "Worse Than Failure" (WorseThanFailure.com). He writes the DevDisasters page in every issue of Redmond Developer News.