Sunday, January 10, 2010

Bugs vs. Features

If you've worked anywhere near software, the quip, "That's not a bug; it's a feature!" has probably long since gone stale. But every once in a great while I'm reminded of how fine the line can run.

Case in point: Operating system "hooks." These are analogous to "shortcuts" that allow privileged programs direct VIP access to into the operating system (meaning files, memory management, processing priority etc.). Naturally, the flip-side of this is the fact that what would normally be an exercise in shooting yourself in the foot instead blows your entire leg off. Despite such risks, the rewards can be compelling: Sometimes they're used as "temporary" (wink-wink) hacks to make a deadline; sometimes they're meant for debugging or reporting. Then, too, using such hooks can offer fantastic performance boosts for programs, which can be tempting if the OS vendor wants to shut out competing products on their platforms.

And so companies such as Microsoft and IBM will bake these shortcuts into their operating systems. Rather like any self-respecting just-inherited castle/manor will have a book or gew-gaw in the library that, when tipped, causes the fireplace to pivot to reveal a secret passage. (For everyone who now can't stop thinking about Young Frankenstein: Stop giggling, you--I'm being serious here. Sheesh.)

(Oh, and by the bye: Blucher!)

But eventually, some (if not all) of these shortcuts are found by people outside the company, who have some of the same temptations to use them as the folks who wrote the operating system. The only problem is that the operating system vendor can--either in the next version of in a patch--close off those shortcuts without warning. Then the software written to utilize them, at the very least, has its backstage pass revoked. At worst, it now has errors.

So the question becomes: Are these "hooks" bugs or features? Sometimes, context really is everything.