Elegant Software Analysis and Design

I'd been hired to maintain the Women's Tennis Association database, a beautiful application written in Fortran by an incredibly talented programmer. The company I worked for, a medium-sized ($200 million???) business, had no other related applications. Mostly, they did market research.

On the first Friday I worked there, my boss summoned me into his office. His very round face was bright
red and the hair that he usually kept combed over his very large bald spot was standing straight up.
I'd never seen anyone literally tearing his hair out before.
I was concerned that he might be having a heart attack. Believe me, no one gets that upset about the
WTA database.

As I entered his office, he was yelling

That ^&%%$%$#!%$ Carol. She hit the ^&%%$%$#!%$ decimal point key again. ^&%%$$#!!%$ her; she crashed the ^&%%$%$#!%$ payroll as she does every single ^&%%$%$#!%$ week! If you don't fix this, you don't get paid this week and I don't get paid this week; NO BODY gets paid this week. ^&%%$%#$#_)!!%$ ^&%%$%#!!!%$ ^&%$%$#!!!%$

It turned out that the payroll package, a home-grown affair, written in RPG, crashed whenever the data entry person hit the decimal point key. And, this poor data entry person, Carol, hit the decimal point key at some point every, every, every single Friday.

Now, this company had more than 2,000 paychecks to print every Friday. And, the payroll system had no unwind capability. So, regardless of where poor Carol was in the payroll process, once she accidentally pressed the decimal key, all the checks that had already been printed had to be destroyed and the entire payroll process had to be re-run.

Sometimes Carol hit the decimal point twice or three times on a Friday. Accidents happen. Or, maybe it subconsciously gave her a feeling of power.

This is a true story, guys.

I did not know RPG and had no interest in learning it or in working on a payroll application. I was not interested in getting Carol training or psychological counseling.

So, when assigned this annoying but very important project, I did the following:

I REMOVED the decimal point key from Carol's keyboard.

This improved the reliability of the payroll process significantly. In fact, the application never crashed for this reason ever again.

I had contemplated removing Carol's right pinky rather than damage the keyboard, but my boss pointed out that there are laws forbidding truncation of human digits by those without medical
degrees.

Now, some might argue that by doing this, I was "coddling" poor Carol. One might think that after 4 or 5 years she'd have learned better.

But, frankly, I cherished my paychecks and my uneventful Friday afternoons spent adding cool functionality to the WTA database and sipping wine in the press box at WTA games while watching Martina Navratilova in her prime and it was clear to me that Carol was NOT going to learn better and she was NOT going away anytime soon. And she was actually a perfectly nice, ditsy but otherwise-reasonably intelligent person.

Eventually, I did make some other changes to the payroll process, like implement an unwind and replace the homegrown software with something normal.

In my previous lifetime, I also worked on software used by anesthesiologists to monitor brain activity. I worried a lot about minimizing user error in that design as well.

I guess it depends on our priorities. My boss had obviously spent years and lost hair blaming "*^&%^%$$#$# Carol" and not dealing with the problem. I don't have the emotional wherewithal to spend my time this way.