I was working with a client system the other day. They had a business process they wanted the computer to do automatically. I do that all the time. I worked with them to break the process up into a couple of dozen distinct steps. From there, I was ready to build the automation. I’ve been using the same software package for almost ten years. Still, I run into issues every now and then. I wasn’t surprised when – around step ten – something didn’t work right.
Software tends to be more of an art than a science. There may be many ways to do the same thing and some ways work better than others. I planned ahead; I had time in the budget to do “basic troubleshooting”. I checked through the processes I had written – one by one – and tried to isolate where the problem was happening. I got it down to a single step. It would add the information in one place, but not the other and that was preventing the rest of the process from working.
Unfortunately, it didn’t tell me why the information was not being added. Believe it or not, I like error messages. They give me suggestions as where to look next. In this case, the process said it was working fine, but it just wasn’t. I thought I might be going crazy. I tried some alternatives; rewriting the process in a bunch of different ways. Finally, I started getting an actual error: Invalid Subscript Reference. That wasn’t too helpful. The official definition of the error was a subscript reference was not found. I was an English major in college; I figured out the context all on my own. I looked the error up online and got references to applications and projects. None of which were even close to what I was doing.
I had one final place to go for help: the software developer. I hate to say it, but most “software bugs” I have found tend to be caused by improper usage. I’ve called developers to complain, only to discover I forgot some minor (yet key) detail that blew everything up. I ran and re-ran the process to make sure the error happened every time I ran it. I even took the unprecedented step of rebooting the server. Seriously, you’d be surprised how many sins are forgiven when you do that. I wrote everything down and sent the developer the step by step, blow by blow account.
To my surprise, it actually was a bug in the software. I received a very nice apology for my inconvenience and – even better – I got a software patch to fix the problems I was having. I applied it to the machine and was relieved the information was added to both places like I expected it to. I wasn’t crazy and I hadn’t forgotten some obvious step. I felt the same vindication a driver feels when they take their car into the shop and it still makes the same mysterious noise for the mechanic.