A couple of weeks ago we moved back into our home after a six month renovation. Unlike 90% of renovations ours was very close to on budget as well as on time. How did we do it? Now that it's over, I realize we built it similarly to how I like to build software. What follows are some steps to adhere to if you want to build real software, or succeed at a major home renovation.
We loved our builder before, during, and after the project. Equally as important, he loves us.
Of course the abstraction here simply comes down to "hire someone with great project management skills;" they're worth their weight in gold.
- Hire relevancy. Make damn sure the person you're hiring to build your stuff knows your domain and has built stuff similar to what you want to build. We have a house in the Mapleton Hill historic district that was built in 1894. The district has strict guidelines and all exterior modifications have to be approved by a board. Our general contractor has successfully remodeled in our neighborhood over the past decade. He has worked with homes from our era. He has worked with the board. He has successfully problem solved random issues in the field for years. New construction is its own beast. Had we hired someone that had built a hundred tract homes, we'd have failed miserably; apples and oranges.
- Hire experience. Complex challenges require experience to solve. You need someone who's been through many puzzles before. Every remodel comes with many unknowns. You need someone engaged who has proven their decision making over and over again when confronted with seemingly impossible challenges. Old homes were built without standards, so every wall you tear into, or every foundation you breech, is greenfield in terms of how you're going to ultimately contend with it. Successful navigation requires someone who's used to working in adverse conditions.
- Hire consistency. Sporadic energy levels, sketchy output and variable results are bad things. From week to week, you need to know who you're working with.
- Hire character. Your general contractor has to be a good person who isn't going to screw you for a buck.
- Hire emotion. This can be a fine line. You want someone who cares about your project and your goals. At the same time, you don't want someone overcomited to an unhealthy degree. The job can't just be about the money.
- Spend money. Smart problem solvers cost money. Take the money away and you're hiring someone inconsistent, irrelevant and lacking experience. If you hire on fixed-bid and run into challenges (hah... as if you won't), you're pinching someone for unfair reasons when the issues arise. Remodeling is like software, unforeseen issues run rampant, regardless of how smart, experienced and relevant the folks you're working with are. Pay time-and-materials to ensure motivations are aligned on the micro-level. Looking at the project only from the macro will burn you. You get what you pay for; every time, everywhere.
- Be flexible. You may want gold-plated nails, but you might not be able to afford them. You may want everything done overnight, but you can't have that. They experienced, relevant, person you've hired does this day-in and day-out. When they suggest a storm ahead, listen carefully, and weigh whether or not you want to sail straight into it, retreat, or go around.
- Trust. If you've done pretty well with the previous points, you finally come down to trust. Trust those around you to help you and to make the right choices. If you don't, you'll get bogged down in the details, and your project's due date will come and go without being completed, and over budget.