Monday, June 06, 2005

On and On

My wife and I decided to redo the floor, replacing the carpet with laminate. Since that job is well beyond my capabilities, I hired someone else to do it. It's been an interesting process.

First, it's taken a lot longer than I expected, though I guess I should have known better. However, the interesting aspect of that is that the parts of it that I would have expected to take a long time didn't, and some of the parts I thought wouldn't, did.

One of the rooms that's being redone is our family room. It's a fairly good-sized room (much bigger than the other rooms). I figured that that would take a while. It didn't. In fact, from a square-footage perspective, it took a lot less time than many of the other rooms.

As I watched the work being done, I realized why. My family room is basically square, so the work progressed quite quickly there. The stuff that took a while was the doorways, some of the transitions (where one floor type meets another), and some of the repairs (fixing a particular piece of laminate out in the middle of a floor is a pain).

Though the job of laminating the floor involves some fairly standard tools, directions, and the like, there turned out to be a number of gotchas that would have caused me pretty big headaches. It was in these situations that I express gratitude that it was not me who was doing to work. I guess that's why they pay the professional the big bucks.

I saw a lot of obvious corollaries to the programming work that I do. I can see the big difference a more experienced professional would have over someone like me. It's common for projects to take longer than expected. Fortunately, we'd agreed on a price before the work began, so the fact that there were little "gotchas" didn't cost me anything (which means that I'm a little surprised that anyone would want to hire a bunch of programmers for time and materials...).

To the inexperienced eye, the work seems both simple and amazing. Could I have done the work and saved myself a lot of money? Of course. Would I have done as good a job? Of course not. Was it worth it to have someone else do it? Sure, because I put a price on how valuable I perceived the work (the finished job, actually). There were many aspects to the decision, such as the criticality of a successful job, the expected cost, the ROI (in terms of value added to my house), disruption to life, etc. Ultimately, it came down to the criticality of a successful job. If I were to do it, there's a bigger chance of failure (failure in terms of the quality of the job). Since this is my floor that I walk on every day, any "bugs" would be rather easily seen (I don't want to buy *that* many rugs).

One aspect of it is the fact that the manufacturer of the laminate flooring goes out of their way to make it easy to do. They build helpful tools; they build the product such that it can be pieced together easily; I even expect they've got easy how-to guides. All in the name of selling more products. So, they *expect* me to do it myself (they sell more that way). However, I *still* hired a professional.

They're making tools for programmers easier and easier. I expect that many non-programmers wonder what all the fuss is about. They probably look at the projects in a similar way: both a wonder at the simplicity and amazement at the complexities. Those complexities come up when the tools don't quite measure up and you get hit by some "gotcha" that you don't know how to deal with. That's why you hire the professional.