I suspect that people at work think I’m a bit odd. Not off-odd, like someone who perhaps might show up and machine-gun the shop one day, but quirky-odd, a person who doesn’t do things quite the same way as other people. I think this is largely as a result of my habit of taking off my shoes when I’m sitting at my desk. During the warmer months, that actually means taking off my sandals and padding around barefoot, which is seen as odd for some reason.

I don’t understand why, really. Our feet weren’t designed to be wrapped up in shoes multiple hours per day. Why people think there’s something peculiar about preferring to go barefoot, I don’t know.

Anyway, in a complete non-sequitur,  a software application is like a building. There’s a foundation. There are structural members. There is stuff to keep the elements out, analogous to roofing and siding. And there are the decorative things, railings and trim and closets and stoves. In a traditional client-server application, the foundation is the database. Most N-tier applications are really just fancy client-server apps, with the middle tiers working as server layers for the tiers above them and as client layers for those below them.

In most business applications of any size and usefulness, the foundation is a relational database of some kind.  As with housebuilding, if your foundation is shaky then everything is shaky. And as with housebuilding, if you’re going to put up a building, you should design and lay your foundation first. You should do this before you pick out the stove and lay the tile in the entranceway.

However, many (many many) software applications don’t do this. They lay the flooring on the ground and build the stairs to the second story, propping them up with bigger and bigger timbers when they fall over. They pour a concrete footing wherever a stray board happens to hit the ground. Sometimes.

And then they wonder why the place falls over when the first windstorm hits.

After that, they hire a guy like me and give me the job of pouring a foundation. This is, as they say, a non-trivial task. Right now, in addition to everything else, I am engaged in connecting up a series of footings that look like they were poured by an incompetent flower-arranger.

It’s weird. You wouldn’t buy a house from a contractor who was really good at cove mouldings, laminate floors, and newel posts but that knew nothing about foundations. Why do so many companies fail to grasp how fundamental the database design is?

2 Responses

  1. protected static
    protected static May 26, 2010 at 10:02 am | | Reply

    Why do so many companies fail to grasp how fundamental the database design is?

    Because good DBAs and good database architects are expensive, and, unless you’re in a biz that requires you to have such folks on the payroll, no one wants to foot that bill. And really – have you come up with any good acronyms lately? No. You haven’t. You won’t have pointy-haired bosses and sales weasels talking about you as anything other than “the database” until you come up with fancy acronyms.

    Also – databases? Not sexy. Passionate database people are the leather queens* of the software world – it gets them all hot and bothered, but the rest of us Just Don’t Get It (or only dabble in it, but won’t admit to it in mixed company).

    Me, I know I don’t fully grok databases, so I opt for simple restraints like cuffs and soft ropes – uh, foundations like slabs. Yeah. Slabs. Not cuffs. Or ropes. Ever.

  2. Chris
    Chris May 26, 2010 at 1:34 pm | | Reply

    It’s not a bad thing if people thing you’re quirky-odd; you can get away with a lot more if you’re not trying to pass for normal. I’ve been edging ever further into quirky territory, and figure I’m about 10 years away from successfully pulling off full-on eccentric at work.

Leave a Reply