Home Renovation & Agile Software Development
First of all, let me say that I’ve had it up to here with comparisons between building great software and building a house, or any physical building. They’re different industries, and building something a house is not the same as building custom software. Without dwelling (unintended pun) on this, it’s not the point of this post. Maybe I’ll write that post some time. But for now, let’s move on. There is an element where there is indeed a parallel. It’s not found in just custom software and construction, but in any venture where there’s a desire to build or create something new. It’s found in marketing, in advertising, in sales, in finance. And that’s that they all required interpersonal skills, communication, and coordination. But it’s more than just active listening, and this is what caught my interest and inspired this bit of writing.
About a year and a half ago, I started interviewing General Contractors to complete a renovation of my unfinished basement. My wife & I decided there would be a lot of benefits in having my mother-in-law come live with us; benefits for her, as well as for us.
I don’t know a heck of a lot about construction or renovations, but as a true generalist, I know a bit about everything. Including construction. And, I like to learn and know what’s going on. But I also have a full time job working at a job I quite enjoy. And while I like what I do, I tend to work a lot of hours – nothing excessive, but I do like to get into whatever project it is that I happen to be working on. So, I wanted to find a General Contract who would manage the entire basement renovation for me. Call me up when they had a question, talk to me about my needs & requirements, and come to me with creative options and ideas for decisions on what the end product will look like.
I contacted and interviewed nine potential general contractors. After narrowing my choices down, and having some fun with a weighted factor scoring model, narrowed it down to two, and from there, with some additional conversations and reference checking, selected one.
Quality was my one non-negotiable. Cost was on the table, as was the schedule. But I wanted to do this once, and do it right. My contractor started off really well, with getting things done, and getting them done right. As you can imagine, somewhere along the way, things started to not go so well. The schedule really started to slip, but I’d accounted for that. But it began to slip even more, and more… Eventually, he stopped working on my job all together and I was forced to terminate him, with the job far from complete.
I was in quite a bind. We’re at the point now where my mother-in-law’s house had sold, we had a fixed closing date where she was moving in, ready or not.
Here I was, in the exact situation I was trying to avoid – managing the project and coordinating things myself.
But this isn’t about my woes. Or at least it wasn’t meant to be. If you’ve made it this far, I’m hoping you’ll keep reading, as so far all I’ve done is set the stage for what happened next. As you can likely guess, I ended up managing this project, getting involved in all of the daily details, coordinating various trades (well, first finding the trades, and then coordinating them), and even making trips to my local home improvement stores to buy things that my original General Contractor was to supply. Things like a toilet, shower door, bathroom floor tiles, doors, and kitchen cabinets.
I turned my kitchen wall into a Kanban board with two colours of post-it notes (one for things I needed to do: find a plumber; and one for things someone else needed to do: install the toilet). I prioritized the tasks so that those items that needed to get done in order to allow my mother-in-law to move in would be done (finishing the flooring in her bedroom is a higher priority than installing the phone line). With limited time to get her moved in, things needed to be prioritized though – there was no way everything was going to get done in the time before her house closing.
Now I did a pretty good job, if I do say so myself, in finding the people I needed to move this job forward. I found a new General Contractor, but limited his scope of work to drywall, doors, trim, and painting. I found a plumber, and limited his scope of work to the bathroom and laundry room. I managed to keep my original electrician. I found a flooring company to finish the stairs. And, without any real knowledge of how to renovate anything, I managed to coordinate all of these different people. I didn’t do anything special, I just communicated. And communicated. And communicated. And when one trade would ask a question, I would connect people, bringing them together to solve the problems themselves.
My plumber asked when he could have power for his reciprocating saw to cut a drain pipe that was too long. I had no idea – I knew my electrician was going to be done in four days from now, but I had no idea when he was going to do the bathroom. I brought them together, and something interesting happened… My electrician explained that he’d be getting to the bathroom at the end – not so good for my plumber – but once the electrician realized someone else needed power in that room, he change his plan, and the bathroom had power the next day. It actually required extra work – the bathroom power was being fed from a line that – you know, never mind the details of where the power was coming from: it’s not important.
The point is that the interaction and communication of others working on the same project helped things get done faster, and in an organic way. Sure, I was filling the role of Project Manager, but there was no management, just coordination, and communication. It’s interesting to reflect on what I did to make everything happen, and I’m pretty pleased and proud of the final result. This is what I do at work on a daily basis. And I like to think I’m pretty good at my job. I bring people together, facilitate conversations and understanding, and allow the experts to work together. They know their crafts far better than I could ever hope to. All I can do is enable and empower them to do their best, and then help move things out of their way that are preventing them doing what they do. There are many times when I look at the work that’s going on, and wish I could contribute directly. But then I reflect on my ability to set the stage for the experts, and enable them to flourish. That’s a pretty good job.