Thursday, April 30, 2009

A Shack in the Woods, Crumbling at the Core

Imagine a run down shack. The kind I’m thinking of is like the cabin my grandfather bought in the late 60’s. It was about 16’x20’, built in the 30’s and then left to rot. It had wooden blocks for its foundation, it sagged about a foot in one corner as the wood blocks shifted and rotted, it was musty, moldy and damp. It was the very definition of deferred maintenance. A menagerie of non-human mobile life forms called it home. It was a shack, kind of like the one pictured here.
Photograph_of_1936_of_a_Cabin_Behind_the_Amoureaux_House_in_Ste_Genevieve_MO
There are applications like that, lots of them. We probably all know where they are. Most of us will only have to look someplace in our data centers. Think of an old shack when you think of those applications.

What do you do with a shack like that? You could paint it, put new doors and windows in it, add on a bedroom and a porch, maybe even add plumbing and a bathroom. You could even secure it (from the rain) by fixing the roof. But what about the foundation? Sure you can remodel and add on to a house with a rotten foundation, but to do so is to negate much of the value of the other improvements. Your bathroom will have a sagged floor, your doors and windows won’t fit right, and your shiny new front porch will detach from the shack as the shack rots itself into the ground. You’ll have a maintenance headache that doesn’t really do what it should.

The obvious first step is to jack up the shack and build a concrete foundation. If you bite the bullet and fix the foundation first, the rest of the improvements can be built on something solid and long lasting. If the foundation is solid and square your improvements will be cheaper and easier to build. Skip that part and everything else you do will be difficult and expensive to build and poorly done at the end anyway. It’ll be a square addition added on to a crooked cabin.
Back to your rotting application - the one with the unsupported operating system and database, broken data model, the dead, archaic, insecure code that nobody understands. Are you re-skinning it to look nice? Are you grafting on features and business logic onto the sagging foundation?  Or are you digging out a new footing and pouring concrete?

The business unit doesn’t know or care about the foundation, they only care about the user interface and the features. Our job is to convince them that they need to spend time and money on the foundation, not just the features.

Tell them the story about the shack in the woods.

1 comment:

  1. Good analogy, but there's a problem: it only works if application owners are like long-term homeowners, not house flippers. If you can throw on fresh paint, new doors and windows, add a bedroom and redo the kitchen to make the place sell, the rotting foundation becomes the next poor sucker's problem. And even if you're not flipping, there's that new house they're building down the street for you that's supposed to be much better than this one (not that you're asking how they're building its foundation, either).

    I have no idea how to analyze or solve this. Are long-term employees more likely to care about problems that may happen five years from now? Are Highly Paid Consultants much less likely to? I don't know, but I think the problem with the shack in the woods is that a lot of people will just hope it becomes Somebody Else's Problem, and I wouldn't be surprised if that happens (at least subconsciously) with applications, too.

    ReplyDelete