Building houses has a lot of the same problems as building software.
Requirements will change. Everybody wants an upfront design that’s set in stone. When it comes time to do the real work and you have something in your hands to touch, your “wants” will most likely change. The key is to be agile, flexible, and properly communicate expectations.
Hiring inexpensive workers can sometimes a pain in the ass. You have to explain everything you want to them, spell it out, and always have to recheck their work and never take their word for it. There are a lot of hidden costs when hiring inexpensive workers.1 When evaluating cost, be sure to include your own time required for the extra overhead.
Hiring high quality craftsman can be expensive. The hard part is identifying their expertise and skill set based on their word. An experienced person can identify their own expertise and is not afraid to tell you their shortcomings. They get your money’s worth when they are able to explain why they do things from their previous experiences.
Getting milestone/inspection sign off can be difficult, but find out where the expectation gaps are and address them as soon as possible. This is where scope creep happens:
- Identify the gaps – this is the hard part
- Make a decision to add/remove to the current phase – not the maybe pile
- Come to an explicit agreement
Delays will happen, so prepare for them (damn you, Murphy!). You can’t be expected to think of every minor problem or worst case scenario upfront. We cannot control the weather. We cannot control the power to the office building. People have lives outside of work. Do not expect them to pick work over anything else in their lives – Brian Dyson said it best.
1 Thanks TomF for helping me out with this post!