Sunday, June 7, 2009

While we're at it

The bathroom sink was draining slowly. It was still draining mind you, it was just slower than I would have liked. I had already tried chemicals, which on an 80 year-old house was, to be completely honest, beyond my risk tolerance. Introducing modern molecular reactions into an environment with unknown metals, untold combinations of foreign ingredients (I live with two women), and the passage of time is hardly a scientific experiment with controlled variables. And yet, it was draining a little too slowly for my tastes. Something had to be done.

Cue the wrenches, bucket, and leftover towels. This is a job for "Mr. Home Owner!" As our hero crawled under the vanity, he first noticed that the hot water feed was dripping ever so slightly. Well, as long as we've got the tools out and we're under the sink anyways, we might as well tighten the loose joint up a bit. To get to the joint we'll have to remove the vanity drawer, whereupon we notice that the little rubber bumpers that quiet down the drawer when it closes have fallen off. As long as we've got the drawer out, we might as well attach new ones.

Wait. Our mild mannered home repair guy (and owner who never throws any leftover parts away), thinks he may have some rubber drawer bumper thingies (the official name of such ... thingies), may have some of these things in his official coffee can of leftover doodads. After navigating the stairways and concentration-interrupting "what are you doing, I thought you were going to fix the drain?" challenges, we find our hero at the coffee can of endless odd parts; he dumps it out and begins rooting for the, um, er... "here's that screw I was looking for to fix the door to the linen closet." Wait, what was I here for?

While we're at it. These are the four most dangerous words in the Engrish language. Technically, it is five words that have been contracted into four. The phrase doesn't seem so bad when used in the informal context. Wait, where was I? Oh yeah, at some level, doing Project 'B' while in the midst of Project 'A' just makes sense. Consider the surgeon who informs you that while removing the tumor in your belly, he happened to notice that your appendix was about to rupture. He left the appendix in, because his surgical plan was tumor extraction and an appendectomy would have been scope creep.

Then again; "Mrs. Jones, I'm sorry to inform you that your husband did not survive. Oh, the tumor extraction went well, but we figure he could use a tummy tuck which led to a beautification makeover. During a mole removal on his left foot, his blood pressure spiked and it was downhill from there." Hmm, maybe we should stick to one thing at a time.

Conversations of architecture often encroach on, embrace, engulf, and embody the "while we're at it" philosophy. "As long as we're talking about writing our log to a relational database, we might as well place the application configuration data there as well. And while we're at it, we'd better make sure that the table structure employs the fourth normal form. No use going to all this trouble for a database configuration on a single server, so let's add an active / active high availability configuration, which in our shop will mean changing database vendors." Um, is this really necessary for a non-critical application that will be used as a stop gap solution for three weeks?

If you're architecting from scratch; implement the best ideas, best thinking, and best practices without losing perspective on the scope of the project. That may mean 'over architecting' for version 1.0, knowing that versions 2.0 and 3.0 are coming. Or it may mean that a temporary solution (OK, don't get me started) needed in a tight time frame with a limited budget may not be the cat's pajamas.

If you're designing an upgrade to an existing system to address an issue (performance, reliability, functionality), keep the goal ever present and try not to diverge. For instance, if performance is the needed area of improvement, stay away from functionality at the same time. Avoid making "while we're at it" changes outside of the motivating scope.

I have to go now; my wife noticed the kitchen faucet is dripping - this will just take a minute.

Follow by Email