Kieran Healy mentions at the end of this post about identity theft that the rumor has reached him that call center workers have a minted a new noun: irate; as in the contraction of irate customer.

I’ve spent much of my career dealing with post start up code bases. Along the way I’ve picked up a strategies for approaching the beasts. For example always pick apart the garbage collection, i.e. those portions of the system where they built the code to clean up afterward. They never get that right. For example how do they close accounts; particularly accounts where multiple parties are involved.

An even more productive strategy is to look at the exceptions; they are always a very generative area to dig into. Irates are a class of exceptions; the customers who fail to conform to the call center’s scripts. These folks reside in the the long tail of the cases the call center is expected to handle. The common cases all have well worn and efficient scripts. When these customers discover that the center’s scripts don’t resolve their problems they either give up and move on, or they keep pushing. Their persistence gets them labeled irate. Calling them exceptions might be a better choice; but in point of fact the call center wouldn’t mine “firing those customers.”

Long time ago, when bank machines first came on the scene, I once asked the teller if the bank machine meant that the only people who still came to her desk were the incompetent customers. I suspect that call centers have a number of neologisms for labeling the stream of customers they deal with; since to a degree all these customers are exceptions. Interesting place for a case study on tagging; since I bet their software includes the tools to label a customer: malingerer, idiot, irate, etc. E.g. all the words used to label a person as failing to conform to some norm.

I’ve been thinking a lot recently about a dialectic I first encountered explicitly named in the semantic web community: open v.s. closed world. It is, apparently, a term stolen from the world of logic and automated proof systems; but that doesn’t actually interest me about it. Inside the closed world you can achieve the illusion of being in control. All you data will be will formed and fully populated. The exceptions won’t happen. The data will respect your designs. When these things turn out not to be true you diagnositc gaze can move backward in time to seeking the place where things went astray.

Most of my rules for how to think about legacy software involve a generalization of an old rule I learned about hardware: “It’s always the connectors.” The slight generalization of that is that it’s all about the border of the closed world.

In contrast to the closed world are the worlds where you have progressively less and less ablity to predict the shape of the data. The cases to be handled become more and more diverse. You get a lot of that in real time control systems. No two pumps in the plant are the same, they were all bought at different times, they all have different quirks, and differing maintainance histories. All the components are irate, passive agressive, moody, and certainly they are all idiots. I’ve got a problem these days with my VOIP phone number; it’s taken 10 emails to slowly convince their customer support organization that I am none of those and that my problem demands handing off to more expensive labor.

The real world is open. The code and data in real world system should be expected to be mostly about the boundaries, the exceptions, the startup, the shutdowns. When things go wrong in these systems the you tend to look forward to how to bake in the handlers for this new case. This suggests that this is a fundimentally different kind of programming – an insight that makes me recall how some of the early languages back in the 1960 were structured so that each statement consisted of three parts: what to do, what to do next if that worked out, what do do next if it didn’t.

When one of the parties in a multi-player relationship announces the identity of a shared client has been stolen what does your software do? You, of course, are welcome to become irate when that happens.

Leave a Reply

Your email address will not be published. Required fields are marked *