Skip to main content
  1. Blog/

Software Remodeling

Phil Chu
Phil Chu
Making software since the 80s

Just before the last dot-com crash and housing recession, I decided yeah, sure, my home value has gone up awfully fast, but instead of selling immediately, I’ll plunk down a big chunk of cash on a home remodeling project. So I ended up waiting another six years to sell. But I did end up with a nice bathroom and this essay.

It’s been a couple of years since I’ve heard of any cool new names for software methodologies now, I know a lot of us prefer to spend our time talking about coding than actually coding, so here I’d like to propose “software remodeling”, for no good reason — it has “model” in it, and anything starting with “re” has potential (“refactoring”, “reification”,…)

But the real reason a software-remodeling metaphor comes to mind is my recent bathroom renovation project. I decided to practice some risk management (the primary risk being by total ignorance in this area) by going with Expo,(the deluxe arm of Home Depot) as the primary vendor — they perform the design, supply the materials, and handle the remaining subcontracting.

At first, it went swimmingly. There was the pre-design walkthrough with the designer and primary contractor, where the latter made some persuasive suggestions that increased the scope of the project. The designer showed me all the really nice-looking stuff they sell at Expo, deduced what I wanted, and sketched out nice design which involved completely demolishing my bathroom. OK, originally I’d just wanted a new bathtub with some nice tile, and the new estimate exceeded my initial budget by more than fifty percent, but what’s a little feature creep?

The process appeared rigorous. The materials dropped off were accompanied by an Expo rep who opened every box to check that everything arrived in good condition. He found a tiny nick on the toilet that I probably would have overlooked, and he insisted on marking it for exchange. At the pre-demolition meeting, the primary contractor placed a workbook containing all of the design sketches, material lists and a sign-in sheet for every contractor to record his visit. I was so impressed, I told the primary contractor their process was vastly better than any I’d seen in software development.

And then demolition began.

Three months later (and six months after commissioning the project), I decided I was wrong. Their process sucked just as much as any software process.

Despite the materials inspection, a third of the items turned out to have problems. The shower grab bar was actually a towel bar — somehow the box had the right part number for a grab bar yet was labelled correctly as a towel bar, which would have come right off the wall after some use. The box containing the ceiling fan was missing half its components. The bathtub turned out to be the wrong bathtub (again right box, wrong contents) — since it didn’t have a side access panel, the contractors ended up knocking a hole in the bedroom wall next to the bathroom.

Some components didn’t fit with each other — the shower head turned out to be incompatible with the rest of the plumbing. Some components didn’t fit the room — the vanity shelf when installed covered a power outlet. After installing beautiful tile floor-to-ceiling there was an ugly cement-looking strip that could not be covered with a rounded or corner strip of tile because (it was realized a bit late) that the drywall was curved and the exposed line varied too much in width (satisfactory kludge — paint it white like the rest of the untiled wall).

And the schedule. Most of the guys who dropped in didn’t bother to tell me when the next group would come by. The ones who did tell me that the next step would take place in a couple of days were wrong. Sometimes weeks would go by, during which I had a big pile of dirt in my front patio waiting to be mixed into cement (the neighborhood pets started using it as their toilet — I just hope I don’t have pet excrement mixed behind my shower tile). Some signed the workbook log, some didn’t. I think some forgot which primary contractor they worked for on this job — a couple of guys showed up in Lowe’s shirts.

And oddly, even when they showed up without enough information, they were extremely reluctant to call primary contractor for clarification. When the city inspector left a cryptic note stating that something needed to be sealed better, the contractor who came by later asked me for clarification, I shrugged, and he ended up hammering down everything in the bathroom that looked like it might be the culprit.

The wrap-up was less than rigorous, too. If I hadn’t asked about the water being too cold and the remaining hole in the bedroom wall, I’m not sure they would have noticed/remembered (it’s probably a good thing I mentioned the water before the hole — they need the latter left open to access the plumbing). And I didn’t realize that the motion-sensor control for the light (required by city code, apparently, for energy saving) had a very short timer, less than a minute (so if you plan on spending a lot of time on the toilet, be prepared to flail your arms around).

So much for all the meetings, specs, and checklists. Still, despite the less-than-smooth finish, a couple of months late, the project did come in under the initial estimate — there were a few extra costs, but more materials that turned to be unnecessary and thus returned. And, though I thought I was just keeping up with the Joneses, turns out, after giving some neighbors a tour, I may have the best bathroom in my condo complex. All in all, I’d still have to say it came out ahead of most software projects!