- Without much of an effort (and accidentally, I might add), I had the occasion to break the sophisticated inventory control and point-of-sale system of a large volume retailer.
Whether the application really "broke" or not depends on your perspective -- it did what it was programmed to do, it didn’t abend (see how old I am?) or crash or hang or deliver a wrong answer, but it did seem helpless in the face of a (I’m guessing not uncommon) real business situation.
And I won’t say whose application my actions as a customer broke/did not break except to say that they come from Sweden, going near their big box stores on a weekend is a foolish thing to do unless you’re seriously into crowds, and their corporate colors are blue and yellow. How’s that for nonspecific?
After having bought lots and lots of their stuff, some stuff that I took myself to the cashier, some stuff that I picked up from the self-serve warehouse, and some stuff (please pay first) that they had to bring out from the bowels of the building, I ran into a situation where something I wanted (a medium firm mattress, if you must know), was out of stock.
So they gave me a piece of paper with all kinds of arcane numbers on it, and told me to come back the following Friday when the mattress I wanted was scheduled to arrive.
Aside from a frightening volume of paper (this is your copy, this is the copy you give to the guys in the warehouse, this is the copy for accounting, this is the copy for the little girl who lives down the lane….) everything else cleared through quickly and relatively cleanly, and I emerged into the bright sunlight with a Jeep full of stuff and enough paperwork/receipt material to start a major conflagration.
When I did stop by Friday as instructed, I was told that the expected truckload of mattresses had arrived late, and had not yet been unloaded. Nonetheless, I knew that the truck with said mattresses was somewhere within the local control of said retailer, so I assumed all would be well.
Not so fast: the mattress guy knew that the mattresses had arrived, knew where the truck was parked -- pulled up to the warehouse in fact -- but could not access any information on the mattresses because they had not been electronically accepted into inventory.
Physical mattresses: many. Mattresses as far as the computer system was concerned: zero -- you could physically touch the damn things, but because the computer system didn’t know about them, they didn’t yet exist -- and worse yet, they couldn’t be sold to little old customer (me) because the point of sale systems said they didn’t exist to be sold yet.
Being the impatient man that I am, I suggested that mattress guy simply sell me the mattress and enter it into the system later "I can’t do that sir," he said earnestly "The system won’t let me sell what it doesn’t know exists."
Now I’m the first to appreciate the beauty of a well-integrated front-to-back supply-chain-optimized system, but this one bugged me. The applications involved followed the rules that were programmed into it, but it choked on an exception -- customer vs. a system that is entirely logical and fully integrated, but seemingly unable to handle exceptions or manual overrides.
Am I the only one who ever faced a situation like this? What other exceptions couldn’t the system handle? How much would it have cost to build in an override that would let me walk out with a mattress? Would it negatively impact the integrity of the entire system? From the perspective of increasingly impatient customer at that moment, the system seemed to have woeful inadequacies.
Which leads me to the core of my question: If we build our systems to be models of integration, with elegant implementations of logical business rules that connect everything from the moment a good becomes a good to the moment it leaves the store in my hot little hands, do we also need to build in the flexibility to override those business rules in situations like mine?
Experience tells me that flexibility, often represented in my days as a developer as robust exception handling, is time consuming and expensive to build; a system built to handle the 98 percent of circumstances that constitute normal business is clearly a good investment, but what about the time and money needed to handle the exceptions -- are we in danger of blowing 50 percent of the budget to address two percent of the exceptions?
Where do you draw the line? As with many things, I don’t know the answer, I just ask the question. What do you think? Email me and let me know.
Hanley is an IS professional in Calgary.