James Herriot’s Yorkshire-vet stories include at least one about the early days of antibiotics, when the pathogens had no resistance and they routinely got miracle cures. This is a war story about when the Web was like a newly-arrived antibiotic; It’s here for nostalgia’s sake, because it’s kind of amusing, and because—something that means a lot to me—we achieved a good result by applying just a little technology in just the right place.
KM Town Hall · This would be 1997 or so. Nobody’d heard of XML, but I was reasonably well-known as a search-and-retrieval guy. We were at some conference in Santa Clara, and a bunch of “Knowledge Management” hypesters had decided to have a “KM Town Hall.” I’ll write about KM here someday, but suffice it to say that it comprises a kernel of really useful software surrounded by huge billowing clouds of marketing fluff. They asked me to drop by and make some remarks.
The problem was that after I agreed, I came down with a really wicked cold, which sucked, because I had about eleven meetings and panels and so on that I couldn’t get out of. By the time the town hall came around, I was exhausted, was running several degrees of fever, and was a bit wobbly on my feet. I drifted in, only to discover that I was the last to speak. It was an open-bar town hall and thus popular, and the host pressed a stiff scotch-and-something on me, and then another when I drank it thirstily, they felt good against my raw throat.
It was an informal revival-style thing, when your turn came you took the mike and walked around free-associating, no slides or demos. I’d scribbled some notes but the next morning I couldn’t read them and to this day I have no idea what I talked about that evening.
BUL Calls · A couple of weeks later, I got a call from a company I’ll call BUL, a big old blue-suit consulting firm in a big old city. These guys were not computer consultants; they focused on marketing and manufacturing and merchandising and personnel. I was being called in by the “information center” (i.e. corporate library). The problem: BUL had just appointed a new VP whose title was going to be “Chief Knowledge Officer” and everyone was terrified because they had no idea what this would mean or what to do. “We thought your talk at the KM town hall was wonderful” said my sponsor, “You can probably help us put something in place.” I was baffled but hungry for business, and went down there.
So we talked some generalities, and they said one of the things they were hoping for out of the Knowledge initiative was visibility into consultants, customers, and projects. I inquired whether their current system for looking this up needed work. It turns out they didn’t have one; if you wanted to know who’d done the job for Volkswagen, or who knew about furniture buying in Florida, or which customers had done deals with the Seattle office, well you called around till you found someone who knew. If you really had your back to the wall, you could call Data Processing and they’d run a batch job and make you a print-out in a few days if they weren’t too busy.
I asked if those Data Processing guys could give us a database dump, just so I could get a feeling for the size of the problem. It turns they already were doing this for an obscure Filemaker-based internal reporting system.
“Could I have a look at the data?” I wondered. “Yes, but we’ll have to beg DP for the the data dictionary and UML stuff.” “Maybe, but first of all, could I just see the data?” “But they’re just tab-delimited files, we don’t have any kind of a viewer, maybe we could load them into Access?” “Could I just see them?” They weren’t used to this kind of thinking, but they let me look.
One Low-Rent Web App Comin’ Right Up · The data had everything you needed. There was an employee table (keyed by employee number), a customer table, with a unique number, and an engagements table, with a unique number. The customer table had the employee number of the relationship manager. The engagement table had the customer ID. And finally there was a two-column table showing which consultants had worked on which projects.
I got a gleam in my eye and said “Think you could drop this on a server and let me work on it for a couple of days?” They said “Well, shouldn’t we have some task-force meetings first to do an information model and a data replication strategy and assign people to help you with table creation and so on and so forth?” I said “That’s all good stuff, but could I just have a day with the data first?”
They were apparently regretting having hired this cave-man, but they let me have my way.
Perl, HTML, and a Search Engine ·
The old Web hacks have already seen what I saw.
The server was an NT box, oh well, but it had Microsoft’s IIS web server
on it, and I downloaded Perl from Activestate.
So, I made three directories in Web-space called Empl
,
Cust
, and Job
.
There were about ten thousand employees, each with 10-digit employee numbers,
and each one’s record got written into a nice little HTML file at
Empl/123/456/7890.html
.
Similarly, the twelve thousand or so customers and
fifty thousand or so engagements each got their own little HTML files, and
there were linkages (based on mapping IDs to URLs) from employee to customer
to job to engagement again.
Then I turned on Microsoft’s search engine, at that time called Index Server, now I believe called Index Services, which is a pretty nice tool (we don’t have the equivalent in the Open Source world, more on that another time). The way this thing works is, you point it at a subtree of your Web space and say “Go”, and, well, that’s about all, it just watches that subtree and keeps the full-text index up to date with no further intervention. There’s a simple CGI-like query facility and a result-list template and so on, all very straightforward.
Triumph! · So two days later, I went back to the BUL people and said “point your Web Browser at this address” (they got a search form). I said “Search for a customer or employee or whatever” (they got a nice result list). I said “click on anything.” They went nuts. I said “Type this command once a week when they do the download from Data Processing.” They carried me on their shoulders down the hallways. Well, not really, but the positive feedback was way out of proportion to the effort that went into it.
When Data Processing found out, they were aghast. They said “What about security? And this will never scale without a database and an application server behind it, we use Oracle and SilverStream. So we’ll treat this as an interim mockup and do a real production-quality deployment to replace it; of course we’ll need to do focus groups and feasibility studies and GANTT charts...”
Last time I dealt with them, in late 1998, the replacement project was still getting started. And my interim thingie never showed any detectible signs of stress even when it got real popular.
I suppose there’s not too much of that low-hanging fruit left, but there was a time when being a Web Guy was like being Gandalf the wizard and James Herriot the country vet all rolled into one.
And, I betcha there are quite a few other low-hanging fruit out there right now just waiting for some geek who knows RSS to come and be Gandalf/Jim.