We recently finished doing a major kitchen remodel project to a family house we have up in Oklahoma. We essentially took it to the studs, did all new floors, moved walls, new cabinets, countertops, light fixtures, plumbing, trim, paint, re-located a hot water heater and a number of other unexpected little mini-projects. We did almost all of the work ourselves and throughout I kept thinking of similarities between doing construction / remodeling projects and big technology projects.
We got to fully functional at about 11pm on the Tuesday before Thanksgiving, when we’d be hosting a bunch of people. I joked with my wife that this was the equivalent of an eCommerce site launching on Black Friday. No better way to “load test” than to run a full Thanksgiving operation through the new kitchen! I wouldn’t recommend this to my clients, but I’m a risk taker and everything worked out great. 😉
Here are some of the thoughts I had while working on the kitchen:
- Planning and sequencing the big things up front can make a tremendous difference in the overall timeline and efficiency of the project – With a kitchen remodel, there are a number of large dependencies that need to be planned and managed effectively on the front-end. For example, you can’t even measure for countertops to place your order until your cabinets are installed, so it’s important to get the cabinets in as soon as possible and plan for the lead time on the countertop order before that install. Similarly on technology project there are almost always dependencies (e.g., on 3rd party APIs, on resources, on other projects, etc.) that need to be identified and managed well if the overall effort is going to go well and avoid unnecessary delays. This can and should influence the priority and order of your work.
- Don’t do too much detailed planning until you need to – Similar to an Agile methodology, with kitchen remodels I wouldn’t recommend trying to play every last detail up front. Some of that effort will be wasted and for sure isn’t necessary before you even get started. For example, I needed to know the general layout of the kitchen, where the cabinets were going to go, that there was going to be a tile backsplash, etc. but didn’t need to try and pick the exact tile or paint colors up front. Doing so would have unnecessarily delayed some of the demolition and installation activities and it was helpful to actually see the floors, cabinets and countertops installed to inform the final choices on tile and paint coloring. In both kitchens and technology projects, you need to have a well-thought high level plan up front but, don’t worry about the details until you get to them.
- The “last 10%” often takes what seems like 50% of the time, energy and money, but can be extremely important to getting to a product(or kitchen) that you feel great about and want to live with into the future. With the kitchen, we planned time for all of the big things (e.g., demolition, new drywall, new floors, cabinets, painting, etc.). I didn’t really think about a lot of the smaller things (e.g., caulking, putting on all new outlet and switch covers, putting pulls on cabinets, etc.) that came at the end and ended up taking a LOT of time to finish up. We could have been functional without these things, but wouldn’t have had a kitchen we were proud of. In technology projects, you see teams cut corners down the stretch all of the time, as the deadline nears and people start to lose interest. I talk to our teams all the time about the importance of finishing strong. As my friend Jason Goth points out, football teams don’t get any points for stopping on the 1 yard line.
- Every thing you do is one less thing you have to do later – my wife and I both have a lot of energy and drive. Throughout the project, anytime there was a spare minute or we were waiting on something else, we’d try to knock out some little task. These weren’t “critical path” tasks, but each of them took us one step closer to the end of the project. On technology projects, teams should look for opportunities like this, when blocked or when you have a few extra minutes, to just knock something small out, fix a bug or do some testing. It’s something you won’t have to do later and saves a lot of time if you do it consistently. Just like if you’re running a marathon…each step forward is one step closer to the finish line.
- Ok to fail fast and try again – you always hear the saying “measure twice, cut once”, but while doing the trim work (I’m not very good at this) I found that it was a lot easier / better / faster for me to “measure once and leave it a little long, cut fast, check it and try again”. This was because even when “measuring twice” I was getting some of the angles and fits a little off as they came together. I think the same thing is true in technology projects. You’re better off doing some analysis / planning and then quickly trying it than spending too much time up from “measuring”.
- Talent matters…know when to bring in an expert – We did most of the work ourselves, but there were two areas of the project that I knew would make a tremendous difference to have them done extremely well. The finish trim on the cabinets and a custom island / table. For these, I brought in my close friend that builds custom furniture for a living. These pieces turned out great and I never could have done them that well alone. The same is true in technology projects. There are almost always certain things that teams can do on their own, but there are always certain aspects of a project that it really matters to engage with talented resources that have done it before. It will save you time, money and create a much better project.
- Having the right tools matters – I can’t tell you how many times throughout this project that I toiled away with some, sub-optimal tool (e.g., battery not charged, wrong tool for the job, cheap vs. high quality, etc.) before finally breaking down and getting the right one. In every case, I would have saved a ton of time if I’d just gotten the right tool in the first place. It made everything easier, safer and faster. Same is true in technology. Tools don’t fix everything, but the right talent with the right tools is a lot more efficient than the right talent trying to use a drill that’s almost out of batteries.
- You have to clean up afterwards, especially if you ever want to do another project – the last thing I did and last part of this analogy is that I spent almost an entire day (instead of shopping on Black Friday) cleaning up and organizing so that they next project we do will be setup to start well and be more efficient. Notice that I didn’t say “re-organizing” because it was not “organized” when I started. There were tools and hardware spread out in about 5 different locations around the property and nothing was in logical order. As a result, I bought several tools that we already had (I found the duplicates while I was organizing after the project) and spent hours in total searching for things that I knew we had. This is an element that is too often missed in technology projects. The team sprints for the finish line, launches and then disperses or moves on to other projects, leaving things in disarray. This might be some technical debt created as a natural byproduct of trying to hit a deadline or the need to update some documentation or other artifact so that they next project can get off to a great start and operate efficiently.
Also like technology projects, I was glad when it was over…but eager for the next one!