Dev lessons learned from a home reno

Sometimes nothing reinforces concepts better than seeing them applied outside of your normal paradigm. Case in point is the home renovation I just lived through, four weeks of reinforcement, in addition to dust, banging and general chaos. It gave me a new appreciation for being on the client side of a large project and how things are perceived from the other side of fence. Following are ten lessons I took away from the renovation as things that I need to keep in perspective when working on development projects.
 

Lesson 1: Nail down timelines and budgets ... first

The first questions our contractor asked was how much did we want to spend and how soon did we want it done. He could not begin to give us options for what we wanted, tell us if our ideas were realistic or not until he knew the answer to those two questions. It was also important for him to understand if we knew roughly the costs and time associated with the work we wanted done. Those two pieces are critical in any project.
 
Everything always boils down to time and money, be upfront with your clients. Some clients don't want to say what the budget is for fear of the contractor making the quote what the budget will bear. But that is the wrong thought process. A contractor can't make an educated estimate for the work to be done unless they know what resources (time and money) the client can spend. I don't want to waste my time figuring out plans, estimating and quoting for some uber project, only to find out the client has no clue what it will actually cost. If you are a client do some research, don't go blindly into a project not knowing what things could cost. If you are a contractor or developer explain to your clients how important it is to know those two pieces of information, and if the client has no clue then educate them. What's that line .... "champagne taste, beer budget".
 

Lesson 2: You make or break a project in the planning stages

Before one nail was pounded, one wall was ripped down, we had spent weeks (months if you include gathering ideas and negotiating with my wife etc) planning out the renovation. What concepts did we like, what styles, what type of material. Once those questions were answered we worked with our contractor to figure out what could be done with our space, what could be moved, what had to stay. Then came the kitchen designer, lots of back and forth to nail down the central piece of the reno, the kitchen. Once all the plans were detailed the contractors fine tuned the cost and time estimates. 
 
Right from the start our neighbours all said it would take twice as long to finish and count on running way over budget. Apparently everyone has heard of or has been involved in reno nightmares. No one believed it would be done on time and on budget. Guess what, it was. We were told 4 weeks and 'x' amount of dollars. The main floor was completed in 4 weeks and was about 10% over (which we had factored into our plans). 
 
Now that everything is done I am positive the biggest reason it all worked out was because of the time and effort spent in the planning stages. Any project is destined to fail unless you plan properly, never tackle a project or any type with a plan unless you enjoy failure. 
 

Lesson 3: Manage expectations

This is undoubtably the single biggest concept that was pounded home (no pun intended) during the reno. Our contractor did a great job, even in the planning stages, of making it very clear how long the work would take, what would be done at each step, how it would impact our living arrangements and what has reasonable budget and time wise. A happy client is one who has a very good idea of what is happening and when. As long as everyone is one the same page you can handle things that are less than optimal because you've been made aware of what is and could be happening.
 
Contrast that against receiving an email or phone call where you get a bomb dropped on you, things can get contentious and heated and the whole project can take on a negative vibe. You need to watch the highs and lows of project management. Be upfront, be realistic, be honest. A former manager had a great line on expectations, "under promise, over deliver", you'll always have happy clients.
 

Lesson 4: Keep clients in the loop

The work crew at our house gave us a status each day as to how things were progressing and whether or not there were any delays or unexpected issues. Throughout the day they would let us know if they ran into any roadblocks or needed some feedback or decisions from us. When your entire house is in disarray it's nice to know where things stand, it helps you sleep a little better at night.
 
In the web development world it's easy to get a project, get some specs and then go off into a cave for days or weeks without giving the client any feedback on how the project is progressing. If you are the client you want to know what is happening, are things good ... bad ... ugly. Two ideas for developers, first provide a daily email or five minute call to give a status report (like a daily SCRUM call), second (if possible) have a frequently updated build the client can touch, see, try. This brings me to lesson 5.
 

Lesson 5: Clients prefer to see small incremental builds.

Obviously this is extremely easy when you are living through a renovation, you just need to walk around your house and you get a pretty good idea of where things are at and what has changed ... oh hey look the walls are gone. Our contractor joked with us that things would either seem to fly by or crawl but they were still working at the same speed. Walls go up quick and you think everything is sailing, plumbing, not so fast, just some pipes in the wall and water on the floor. Since we could literally watch things go up around us it was also easy to give feedback and make changes without having to go back and rip out walls, floors or ceilings after the fact (ie. put a receptacle and network jack 8 feet off the floor above a panty so I could hide a wireless router in the middle of the house).
 
If you are building a web site or app try to plan on releasing incremental updates that the client can see, touch, experience. The client will appreciate seeing things progress and they can give immediate feedback on things that just don't work. This will also help to keep you on schedule ... no hiding from a client when they can see what has changed from day to day.
 

Lesson 6: Clients look to you for expertise ... deliver it

When you are having construction work done on your house, the kind of work that could cause structural failure, you want experts. When you are spending a lot of time and money on a project you expect and deserve a certain level of expertise from the people doing the work. I didn't expect (or want) the contractors to come running to me every time they faced an issue, I wanted them to come to me and say this is the issue and this is the solution .... problem solved. For example when the framing crew asked where lights would be placed I went straight to the electrician and asked his opinion. He has installed hundreds, likely thousands of lights, he's the expert on where to position them, how far out from cabinets and walls is good etc., I have no clue. I expected he would know the best place and now that the work is done and lights are in guess what, he did. Too often on projects it seems to be the opposite. The developer (supposed expert) runs into an issue and instead of coming up with solutions to take back to the client, they come back to their client or development team saying the sky is falling.
 

Lesson 7: Subcontract to the experts

During our renovation we had on site the general contractor and his crew, an electrician, a plumber, a mason and the kitchen designer/installer and his crew. You can't undertake a large project on your own. Think about it, if you are spending significant resources on a reno project, do you really want a jack-of-all-trades doing all the work ... ummm no. I don't want a half baked job on the electrical which could cause a fire, or bad plumbing which could cause a flood. I want the right people doing the work. Why should web development be any different?
 
If someone comes to me with a small project that is not complicated then sure one person can likely handle it all. But if a project comes across my desk that requires infrastructure or design or server setup and config I know I am not an expert in those areas and I would be doing my client a disservice by pretending otherwise. I will gladly sub out areas of work I am either not experienced at or proficient at in order to ensure a project gets done right. If you are a one man show, get a firm handle on what you are and are not good at, and then find people you trust for the stuff are not good at.
 

Lesson 8: Sweat the details

If you have a home how often do you walk into a room and wonder why the light switch just doesn't seem to be in the right place or why a door in the kitchen opens the "wrong" way or why the trim doesn't line up right where everyone can see it. Individually those are little things but put them all together and them become a big nagging issue, one that can and likely does drive you nuts. There are literally so many little things that need to happen when getting a big renovation done, it's crazy. Each night after the crew was done I would walk around the main floor, see what was done that day and try to find any things they had missed. We kept a running list and made sure everything on the list was done before the project was finished and signed off on. Anal retentive ... yes, but hey it's our house and we wanted stuff done right (we've all heard that before).
 
A web development project is no different. Think of a website; colours, fonts, spacing between different things. A million little details just waiting to glazed over. I am notoriously bad for saying how much I hate fonts but I also realize it's not my site or app that I'm working on, it's my clients', and if they want it a certain way, and it was planned to be that way and within reason, then I better deliver.
 
Now that the reno is done and I sit on my couch and look around I don't see any nagging little details that had been missed and it makes me happy. That's my goal for the projects I do. When I hand it off I want my clients to go through it, use it and not have little annoyances anywhere, I only want them to see quality work. 
  

Lesson 9: Clean up

On a building site messes accumlate quickly. Wood, drywall, paster, debris you name it. It can quickly become a work hazard and it gets in the way. Each day the crew would go through the work space, sweep everything up, in places where we needed to access they would shop vac it out and generally tidy up before leaving. In the development world we don't really need to worry much about physical mess but virtual mess is a whole other story. Junk code, blocks of legacy code commented out, left over trace and output statements the list could go on and on. There's no need for any of that. If clients go in and look at the work or need to hand it off to someone else, they should not be subjected to filtering out all the garbage. Be nice, clean your code ... even better, clean your code and leave some nice comments explaining how parts work.
 

Lesson 10: It's all about trust

Trust, you can't quantify it but you absolutely need it when dealing with contractors. We were extremely fortunate to know the contractor who did our renovation. I actually worked with him in high school and university for summer jobs (about the same time I decided the life of manual labour was not for me). Watch any tv home show and you see some home owner's nightmare unfolding, over budget, work not complete, shoddy workmanship. What is trust worth? Personally I think it's worth it's weight in gold. Could we have had our reno done for less? Sure. Would we have finished on time, on budget and completely happy with how everything turned out? There's a good chance that would be no. Don't always take the lowest bid. Cheap hourly rates don't always equate into a cheap project. Extra hours, unplanned downtime, repair jobs after the fact. What is more important, trusting and knowing the contractor will do the job right, or saving a few bucks up front and praying things get done right.
 

The Finished Product

For those of you who are interested, here are a few shots taken during the process, from start to finish. The kitchen used to be on the other side of the house.
 
 
 

5 Comments:

  1. johnvh

    Reno looks great! I'd be interested in hearing more details about it.

    And I absolutely agree...its all about trust. It'd be extremely difficult for me to trust anyone working on my home. I'd say you're _really_ fortunate to actually know a competent, caring, and trustworthy contractor. It wasn't Mike Holmes, was it?

  2. Salon Tracy

    After getting my college degree in computers I started a granite countertop business. When a larger company absorbed mine (for a nice price) I went back into computers. But that time in construction taught me so very much about business that it is much easier to be successful now.

  3. Seattle

    I'm looking at houses to buy, with the thought of some massive updates. This is an impressive approach to problem solving and work distribution, and I hope I can use this as a guide for my own repairs.

  4. Mezzanine Flooring

    Some parts of the house need some changes but i must say about the kitchen renovation looks pretty nice.

  5. blair rewards

    You seem to be one of the lucky people that manages to stay on budget and actually save money. For me it was a different story, not only did it take almost twice as long to finish but also twice as much money and I wasn't satisfied with the whole thing at all. Noe I realize that it might have been so due to lack of planing. I kind of started refurbishing on impulse rather than rationality.


Leave a comment






wrap code blocks in <code> </code> tags