[Note: Today's article is courtesy of Mike Gunderloy, graciously covering for Alex while he is on vacation this week]
There was a time when Microsoft Access was my life (don't look at me that way; at the time, consulting in Access was flying me all over the country and paying for quite a nice lifestyle, and what more could a single guy want?). One day I was approached by a potential new client, a consultant himself, with a novel proposition: he wanted to hire someone to fix the deficiencies in Access.
It seems that this guy - let's call him Mr. Moneybags - had spent years working with a series of obscure 4GLs of increasing complexity and declining popularity, and was discovering that his customers now wanted some assurance that they weren't being sold stuff that no one else could ever work on. So he was resolved to throw in the towel on his treasured AS-400 descendant code generators and get into mass market Windows software at last, selling his soul to Microsoft. The problem was that he just didn't like the way that Access 2.0 worked, because it "wasn't as powerful" as what he was used to. But in a few weeks of playing with it, he'd become an expert, and he now knew that Access could be brought up to scratch, thanks to its flexible add-in model. Sadly, he didn't quite have the time to do this himself. So, he wanted to hire me to write the development add-ins he had in mind. In fact, he wanted to hire me and as many other topnotch Access experts as I could find, and have us all do the work, because time was being wasted and time was, after all, money.
With the smell of money in the air like chum in the water it wasn't any particular trouble to get half a dozen of the top Access speakers and writers out to a farmhouse in rural North Carolina (owned by Mr. Moneybags) to write code for a week. That was where the interesting part of the job started. The spec for the product was laid out the first morning by Mr. Moneybags, speaking to the group as a whole. "I don't like the Access table designer," he said, "it's too flexible. It makes me work too hard. When I type a field name like CustomerID, it should assume I want an identity field. Also, I need multi-valued fields. I can't work without them. I don't understand how you people manage without them. This product is stupid."
We (the assembled experts) looked at each other nonplussed. This was what Mr. Moneybags was willing to pay an aggregate of a whole lot per hour for? We pointed out that we couldn't actually replace the built-in table designer (that not being part of the add-in model), that a wizard metaphor might work better for what he wanted, that trying to impose a denormalized model on top of the Jet engine wasn't going to work all that well. All our objections were to no avail; having hired his experts, Mr. Moneybags was now prepared to bestow upon them his superior knowledge, derived from twenty years of industry experience with those wonderful 4GLs and, of course, a few weeks of playing with Access. Never mind the collective wisdom represented by Microsoft's product designers or even the people in the room. It was his way or the highway - and considering where we were, having been ferried from the airport by a now-vanished van, the highway was a long way away.
The refrigerator was well-stocked and this was the pre-Internet days, so - we wrote code. Lots of code. Lots of code full of slimy ugly hacks, as we attempted to get Access add-ins to do things they were never meant to do. In times there was a semblance of the Access table designer (which worked exactly like the built-in one, except for the parts where Mr. Moneybags thought he could improve the design - leading to lots of confusion when you stumbled into the altered one by mistake), a scheme for storing and parsing multivalued fields by injecting untold amounts of code into any object they touched, and various other 4GL-influenced whizbang gizmos. Eventually the product was even shrinkwrapped and advertised (with a real box and floppy disks and everything - ah, those were the days). I think it sold a total of about 50 copies, to people who didn't know any better. It was basically unusable by anyone except Mr. Moneybags himself, who promptly took it around into all of his regular clients, now proudly billing himself as an Access expert with a revolutionary toolkit that enabled him to design Access applications more quickly and flexibly than anyone else on the market.
I still have on my shelf what is probably the last unopened shrinkwrapped copy of the Access Perfection Toolkit in the world. It serves to remind me of the consequences of hubris in the development world. As for Mr. Moneybags, when I last heard of him he'd become an expert in SAP, with a revolutionary toolkit that enabled him to design SAP applications more quickly and flexibly than anyone else on the market ...