Today I had to go and buy a new printer. Our office Brother HL-2040 that had worked flawlessly for years had lately taken to jamming on every sheet of paper – was causing a productivity bottleneck far in excess of its replacement cost. So credit card and I went to the local Harvey Noman store to get a new one. They don't seem to make the HL-2040 any more so after fighting off the seductive siren calls from the plethora of shiny black multi-function devices I settled on a plain-jane B&W laser printer on special for 99 bucks. It was a good price so I looked right away for a boxed one in the row of boxes under the display counters nearby. I couldn’t spot one. “I bet they’re popular” I thought.
Catching the eye of a salesman is a bit like catching a bus. You wait for ages for the first one and then three come along in a minute. After waiting for what seemed like ages but was probably only a couple of minutes, a young guy with gelled-up hair came up to me and offered is help. I said I wanted the HL-2140 and I’d already looked – couldn’t see a boxed one under the display counters so I’d be happy to take the one on display. My sales guy said they had a shipment of 5 come in just last week and 4 had sold already. Our mutual concern instantly turned to the subject of inventory. He then went to the computer and interrogated it. I don’t know what the system told him, but it was enough for him to mutter “I don’t trust the system” on his way out the back to go and find the box anyway. Not such a long shot really – there was an actual printer in the store. I am sure that people in electronics store don’t throw out empty shipping boxes – there will be a matching device in the store for it, and it did just come in last week. While I was waiting sales guy #2 approached me as I was fiddling with the display I-Pad. “Just waiting” I told him and then I went to see if my display printer had a toner cartridge in it. It didn’t, so I asked the well-timed sales guy #3 if it came with a cartridge. “Yes it does” he informed me, “but it’s less than half full.” I was staggered at the boy’s candidness. Gotta love those techie sales guys – particularly if they are more “techie” than “salesy”. I made a mental note not to tell on him to his boss. Sales guy #1 came back victoriously brandishing the matching box, packed it all up, escorted me to the checkout to make sure the girl didn’t screw up his sale and I was on my way in a jiffy.
It was only later I reflected on his throw-away line: “I don’t trust the system”. I imagine that he didn’t mean that it was going to become self-aware and lead an army of rebel computer forces to take over everything from the traffic light network to air traffic control, or that it would deliberately add up incorrectly or skim off profits to a numbered Swiss bank account when no one was looking. No. What he meant was that he didn’t trust that the “-2” inventory count was necessarily correct. And the way he said it you just knew it had happened to him before.
Now I’m sure Harvey Norman’s have a pretty good computer system. It had probably cost them squillions. I am sure that it did know how to add up correctly, was well-maintained and that the staff were trained. Yet, in the real world the inventory was wrong and the staff were not surprised. "How can it be that such a core business asset could be so untrusted?" I wondered.
The answer to this question lies in the definition of “system.” If you draw a little dotted thermo-dynamic boundary around the computer system itself, then we can be confident that 1+1 will always equal 2. Some intelligent business analyst, developer or tester would have regarded that a negative inventory count is in fact impossible and therefore made it impossible to sell items they didn’t have. So it can’t be the computer’s fault. The correct thing to do is to realise that the real system boundary encloses much more than the computer hardware and software. It includes the people that operate them and the processes they use. If the guy receiving the goods at the CDC counts them wrong and enters the wrong number of items, the “system” count will not match the actual count. If a user who knows the secret “admin” access can get into the “Inventory Adjustment” area, the system count will not match the actual count. If someone steals a printer for their kid’s Christmas present the system count will not match the actual count. And so on and so on.
So the moral of the story is that for all of us who design, build, specify, implement or install “systems” we have to realise that “the system” involves a lot more than an Oracle database with matching user licences. But most of us are so close to the software, that we forget to tell the client that he or she is the most important and the most unreliable part of the system. As a result, the client never thinks that either themselves or one of their colleagues could be at fault, then the finger will always point at “the system”. I am sure this why system developers invented audit trails. As implementers, we must design and document (yesw – write it down, in an actual document) the processes people will use and then and only then train them to do it.