About four or five months ago now, I embarked on a project to re-insulate the attic and put down a platform. The house was built in the fifties and apparently attic insulation was optional; there is about 3-4 inches of insulation in our attic (it should be 2-3 times that amount, if not more). We store a lot of stuff up there, so I basically need to build a floor in my attic.
So I incurred the real-life version of technical debt. I decided to stick all of those boxes in my office (which at the conclusion was filled floor to ceiling with boxes) and there’s still half the attic the go. So I switched tactics. I wouldn’t take all the boxses out and go through them, I’d only go through half , pare down, put the floor system down on one half of the attic, move the boxes from the undone half to the done half, and then do the other half, and then put the boxes in my office back up.
Good plan, right? (It’s ok if you need to read through that a few times).
I could have purchased a POD, and just thrown everything in that, and that would have been more expensive (around 250 for pickup/dropoff + 30-90 a month), So it would have been 500-600 for the project depending on how long it took me.
But, just like the technical debt we incur in our projects, I could avoid paying that amount if I did my plan above. The only catch was I couldn’t use my office for five-six months.. Now at the time I didn’t know that, I thought it’d be 4 weeks, tops, but here we are 5 months later and I still can’t use my office, and the floor system still isn’t in place, on either side of the attic.
So what happened? Why isn’t the project done? Well, more important stuff got in the way. Like Thanksgiving, Christmas, a vacation, another project for my third daughter’s first birthday, and generally, life.
So now I’ve got a few problems. The technical debt I incurred is coming back to bite me since it’s tax season and I need to get to that computer in my office, and it’s going to be spring soon, and all of my weekends will be full (2 school age kids).
So while I saved 500 dollars by not using the POD, I’ve incurred more problems than I otherwise would have by doing the right thing in the first place (well, the right “wrong” thing — I really should have buckled down and completed the project before anything else).
This sounds like every tech debt situation I’ve ever seen (or been a part of). You think, “Eh, we can save time by taking shortcut X”, only to realize shortcut X led to a cliff that you now gotta scale, and no way to easily go back because you took Shortcut X.
Accruing Technical debt can help you go faster or omit certain necessary activities in your software project, but they’re not free. You’ll pay in some form or fashion for making those decisions, and the hope is what you’re going to pay is less than what you would otherwise.
Test Driven Development lowers the cost of choosing not to incur technical debt; and it helps you detect the problems that technical debt causes early on, before you’ve spent four months with an office full of boxes.
Want to learn test driven development and apply it to your next software project? Do you want to get around those real-world problems when adopting TDD? My course on Test Driven Development for .NET Software project teams tackles the real world difficulties teams feel when they adopt TDD, and helps you with strategies to deliver better software, faster. To sign up to receive course updates and to receive a subscriber’s only discount you won’t get anywhere else, go to course.doubleyourproductivity.io.