“We don’t need TDD, our project isn’t worth it”

In 2018 I converted our garage into a bedroom, laundry room, and entryway. I enlisted the help of tradespeople (a mason, plumber, and electrician) to handle the exterior, plumbing moves, and electrical needs (respectively), but I did the rest myself.

It took me a year from plan to being finished, and I finished the day before Thanksgiving.

It was hard, possibly the hardest non-tech thing I’ve ever done. I know the software world pretty well, having worked across tech stacks, industries, team types, and methodologies — I feel like I understand technology. It is not a surprise to say I definitely do not understand the home remodeling world.

To get ready for this fact, I did a ton of research. I looked up building codes and realized an entirely different lexicon was at play (somewhat related, but the word “shed” doesn’t exist in our county’s building code — the appropriate word is “accessory structure”), I watched Youtube videos, and I asked people who had done this work before.

As it stood, I still failed inspection a few times, because my research hadn’t taken into account some unique nature of the space’s transition. For instance, I should have probably outsourced the subfloor construction; since I needed to raise and level the floor about 1.5 inches at one end, and 5 inches at another. I made it work, but I’m pretty sure a professional would have done it faster and it would have been better constructed.

Why didn’t I engage a professional? I mistakingly thought I’d save money by not contracting that part out. That somehow, a floor that I will walk on for the rest of the time we live in this house didn’t need the care of a professional. It was Good Enough Of course, as I found out later, I just hadn’t done enough research. But at the time, I spent around 2 months (I could only devote nights and weekends to it) raising and leveling the floor. If I had engaged with a professional, it would have been done in less than a week. This is about the only regret I have about that project. The floor isn’t quite level in one corner, and because I didn’t insulate what I raised, it’s a bit hollow sounding and a little colder than it should be.

You ever have a software project like this? One where you think “we’ll do it right this time”, but that one (or more) stakeholder says “this will be good enough”, and you acquiese? After all, how bad could it be?

It couldn’t be any worse than a floor with an unlevel corner that dips down a little bit, and a chilly floor in the winter, right?

We treat internal software projects (or sometimes, consulting projects) just like I treated the floor in my garage renovation, and contrary to the beliefs we hold, it shows. It affects us.

For your next garage renovation software project, think about whether you want it to be like your last few projects. Do you want there to be an unlevel floor? Do you want to dislike the floor in the winter? If not, then you’ll want to focus on practices that will help you deliver a project on time, that users can use without asking “What happened to this floor?”

P.S. I offer virtual team TDD immersion training for .NET Software teams. This training helps your team learn Test Driven Development, together, and ensures the entire team develops a shared understanding of the processes, reliable outcomes, and aims of TDD for your codebase. To get started, visit https://www.doubleyourproductivity.io/paid.html to learn more and on how to book a session.

Leave a Reply