Today I felt chastened. I was sitting in a call center ? being teased relentlessly by a CSR in the next cubicle (?What the hell does a CTO do? We just call?em up ?ask who is managing payables and away we go??) ? when a crisis erupted out of the finance directors office. The banks had screwed up? direct debits were very wrong and customers would be?. It was unpleasant.
Being a CTO I like to solve problems... and I was called in for advice. And I had no advice to give. ?Apologize and credit their accounts? was not the technical solution they were looking for. They were looking something like ? let?s run a special process that credits their account before the close of business? Unfortunately, neither their systems nor the banks? systems were capable of moving funds so quickly.
So, I have just been thinking. Enterprise software is great when everything goes to plan. It is not much use when these best laid plans break down under extraordinary circumstances. Automated business processes, driven by well thought out business models, conceived to achieve ambitious strategic objectives?. at best are useless and at worst make matters worse in these situations (the default response being ?we can?t do anything? the system does not support that?. Don't even think of doing that?let me tell you what lies ahead if we do??).
Now software vendors have a great straw man answer for this. It runs more or less like this: our software is rugged, highly available, fault tolerant. We handle emergencies. That is great - but it is only the argument for very particular circumstances: when the source of the problem is the software itself, the hardware it runs on, or the data center that hosts the whole shebang. Thank you very much! But, the issue is really a massive failure on the business side - high availability is nice but irrelevant.
("Straw man"? what is the Latin term for that? I know "ad hominem" - my friends' favorite way of cutting me down to size. "Nice argument Doug, but you are full of it".)
These emergencies caused by failures in the business processes are fascinating. I recall a situation 10 years ago when a judge told a whole region that no one need pay their bills until a "billing error" (really a matter of legal interpretation) was resolved. The company had universal service obligations on one hand, had a region full of customers who were bill free for over 6 months, had to find some way to get people to pay after racking up some hefty debt, and had a judge reserving the right to cancel all this debt if payment arrangements were not fair.
Ten years ago, no enterprise software with best practice "out of the box" could cope. Things have not changed. Typical Enterprise software does not automate short lived but critical business processes - nor does it see its job as such. Rainy day scenarios are limited to infrastructure failures - not real life.
Now - in a world where every threat is an opportunity, I would think software could do better than that.