Active intermediaries and Rob, the accountant
Web services can empower more people to be designers
My wife, who runs a small business, recently confessed to her accountant that she is overwhelmed with bookkeeping chores. She asked me pointedly, “Isn’t this Web services stuff you keep yammering about supposed to help straighten this mess out?” Yes dear, and any day now, as soon as BPEL4WS (Business Process Execution Language for Web Services) [1] and a few dozen other things are taken care of, it will, just you be patient.
Seriously, though, her dilemma — like that of many businesses — boils down to a problem of data representation. Consider her story:
“I spent over an hour trying to match up the bank’s deposit statements with my merchant service provider’s deposit statements. In a business where you take credit cards, when you batch up your charges for the day, you just add up all the money coming in and it goes through in one batch. It’s tough to figure what your percentage coming off is going to be — MC/Visa charge one percentage, Discover charges another, AmEx yet another. AmEx charges a monthly fee, the others don’t. And there’s a monthly equipment rental fee. I can never remember what the cut-off dates for each one, for monthly statements, are either. And the percentage subtracted from your account is done the month after you deposit the charges, so it’s almost impossible to sort these all out in any meaningful way. And the paperwork is killing me. Every day’s mail brings another statement, another record of deposit, another account sheet. Ai yi yi!”
Rob, her accountant, asked three questions. “Can you pay your bills?” Yes. “Can you tell if you’ve been paid for your work?” Yes. “Are you bouncing checks?” No. “Then your accounting,” he pronounced, “is good enough to manage your business.” Rob went on to say that most small businesses struggle with these issues. It’s a problem with “grouping,” he said. The systems in place aren’t flexible enough. They group data for their own purposes, but don’t enable users to regroup the data into patterns useful to them.
“The good news is that technology can make us smart,” wrote design guru Donald Norman in Things That Make Us Smart [2]. “The bad news is that technology can make us stupid.” In other words, we invent artifacts — such as information systems — that expand the limited capabilities of our minds, but then, by designing them badly, we cripple the artificial powers we ought to have gained. Norman illustrates using an encyclopedia of airline schedule data that’s optimized for compactness, but makes it nearly impossible to figure out end-to-end duration of flights. He then explores several alternate representations of the data, both textual and graphical. Designing such representations is an art and a science whose most notable practitioner is Edward Tufte [3]. It’s a hard thing to do well, partly because different people can require different representations. XML Web services won’t help at all with these design challenges. But they can, very importantly, expose more data to designers and empower more people to become designers.
Rob the accountant isn’t an information architect, and doesn’t imagine that he could become one. But he has exactly the right domain expertise to transform my wife’s merchant services reports into a representation that would make sense to her. What he lacks is access to the data, in XML format, and access to tools that would enable an XML-ignorant but accounting-savvy person to transform that data.
The unfortunate tendency in our industry is to propose something like a Merchant Services Markup Language, and then twiddle our thumbs for five years waiting for everyone to adopt and implement it. But suppose the XML data were available now, from AmEx, MC/Visa, Discover, and the bank, in four incompatible formats. It wouldn’t be hard to write XSLT stylesheets to distill these into some neutral format. And once that’s done, it’s done: those transformations can be shared with everyone. So can a library of transformations that regroup the data for different kinds of users. It’s not a huge stretch to imagine packaging these transformations in ways that Rob could deploy to his clients.
The notion of active intermediaries is a hot topic right now in Web services, and rightly so. Most typically, an intermediary service works like a stage of a pipeline, interpolating some kind of extra value — auditing, fail-over, currency conversion — between endpoints. Let’s not forget that Rob the accountant can be, and should be, another kind of active intermediary — one who can add vital interpretive value to data.