You asked - remember?
One of my distant cousins, upon hearing that I worked with computers, wrote me one day explaining how she was studying CS at college and wanted my opinion on what was the most important skill to have.
I replied that the most important skill to have was "listening." You need to listen to your clients. Hear what they're saying, not what you think they're saying."
I'm not sure that was the answer she was looking for. I never heard back from her.
A guy walks into a law office...
A lawyer once asked me to build him a fully redundant system. His request was "if someone walked into this office with a shotgun and shot up a computer all my data would be intact on another computer in the office".
Now any reasonable person would have passed on the job, given the increased probability of shotgun toting visitors popping in during the work day. But it was early on (before High Availability was coined) and it was a referral client, so there was more than just one job riding on this. Partially intrigued, partially apprehensive, I said I'd be back in a couple of days with a plan and a budget.
As promised I returned for a meeting in a couple of days.
I walk into the law office and there in reception were two of Philly's Finest interviewing the staff. This is the moment the shotgun thingy is racing through my head. My first thought was to leave, but one of the officers had turned and noticed me. Thinking that I might be mistaken for a perp I decided running was not my best option. Hard to make a quick getaway while waiting for the elevators. Besides, I had done nothing wrong? Right?!
Fortunately for me, my client popped out of one of the offices, greeted me and told the officers I was just the computer guy. I'm looking at my client with tremendous trepidation, not wanting to say anything within in earshot of the officers. He was able to discern what I was thinking. He chuckled and told me not to worry, yet...
Here it turned out, that one of the officers was the husband of one of his secretaries. So he had just stopped in during a lunch break.
As luck would have it, no shotgun toting visitors would ever test my fully redundant system. But it would be tested soon enough...
Water, water, everywhere...
Most US citizens will remember February 24th, 1991 as the beginning of the ground assault of the first Gulf War. Philadelphians remember it as the day One Meridian Plaza burnt down. The lawyer client (mentioned above) was located in the adjoining building. While he didn't receive fire damage, he did receive water damage. A lot of water. Like the ceiling falling down and a gushing river runs through it kind of water damage. All but one computer was shorted out. Monitors shorted. Printers shorted. And that was just the electronics. Stacks of paper files were destroyed. All the furniture was ruined. When we were allowed into the offices, we could only stay for 30 minutes at a time due to the high mold concentration. Industrial size dehumidifiers ran for weeks. Ultimately, those offices were rendered useless. But we knew the computer/network systems were toast in the first five minutes. Days after I was opening cases and water would drain out were it had puddled inside the machines.
Sadly, fried motherboards also meant fried hard drives. But, fortunately, due to the redundant backups, we had one good hard drive left with all the data intact. So first order of business was making a copy of that. Then ordering all new machines. And then planning a better backup.
I rebuilt the system as was originally designed, only this time adding an off-site backup. A simple dial-up modem would connect to offices far away and backup every night. Extending our remote network by adding some extra phone lines also let some staff work from home. Which proved to be invaluable during the months long clean up and the time limits to being exposed to the mold in the office.
If it's true that what doesn't kill you makes you stronger, then this is one example. By building an extensible dial-up network we could now deploy temporary offices during litigation(trial). I would construct a small server and network to be deployed remotely. When the staff got to the remote location, they would plug in the computers, turn them on and the remote server would phone home (literally), connect to the main servers and function as one network. The slow speed of dial-up was compensated by caching on the remote server and new work product would trickle in to the main servers for backup. Now key staff members could be where they were needed the most without detracting from the overall office productivity. The trial lawyers had access to all the CD research resources and nothing was "left behind" at the office.
Update: We stopped using dial-up in the late '90s. It's all done through VPNs across the Net now. Today, its considered all rather passé. Until of course it breaks and then people notice.
No children, no service...
Among the routine programs I've written were those that created data tapes from HR Benefits programs to the appropriate insurance carriers. It's all rather boring stuff. Standard formatted mainframe records of the insured's information. The basics: name, sex, birth date, coverage plan, blah, blah, blah. Until one carrier. This carrier had processing facilities in South Dakota as well as Nebraska. The data tape was sent to South Dakota, who extracted some information and then sent it to Nebraska where they extracted the rest of the information.
As per usual, I create a series of test tapes for validation. Send them to S.D. Then I hear from Nebraska that my tapes failed validation. Hmmm, mistakes can happen, send me the diagnostics and I'll fix it. Well here it turned out that someone sent me version 1 specs when I should have been using version 2. Fine. I make the changes and send the next set of test tapes to Nebraska because that's the only validation I need. Nebraska is happy. Good.
Next is the tapes of actual data but only a sample set. Send them off to S.D. As I'm sure you have already guessed, they failed. and as you've already guessed it because S.D. was using version 1 for validation not the current version 2 specs. I let Nebraska (who by the way is actually in charge of everything) know what happened. They addressed the problem.
Now after the problem is fixed, S.D. calls me again, my tapes don't work. "Why this time?", I sighed.
"Because, they don't have any dependent information."
"Right. I didn't send anyone with dependent information in the sample set.", I confirmed.
"Well, they have to have dependent information of we can't process them."
"Let me get this straight. If this company only employs people who have no spouses and no children, you are unable to insure them?"
"Ye-" . . . there was silence . . . "I'll call you back."