Refactoring a House
Some of you may remember that I started a house construction project. Things are moving very fast, now, and the actual construction may take less time than it took to get all the necessary permits. So far, the project’s about 100% over the time budget. And people say that software development should be more like the construction industry!
But the fact that the construction has run slower than expected is not the reason for this post. Neither is the fact that this project has been consuming a large portion of my attention, and hindering posts on this blog.
This post is about an example of refactoring found in the house construction domain.
Here’s a photo
of the west wall of our new house as originally constructed. Notice that there are three separate headers, one over each of the window openings and one over the door opening. The builder decided that this wouldn’t be rigid enough, and had the framers refactor this design to
a single microlam beam across all the windows and doors. I wasn’t in town when this was accomplished, but I would have loved to see how they did it.
In any event, it’s a classic example of refactoring. The design is improved, but the function is unchanged. And it was done in place, without deconstructing and rebuilding.