I’m going to start with a story from an observation I had a few Mondays ago.
Normally when I leave my car, I clean it out to keep it uncluttered and tidy. For some reason over the weekend I was feeling super lazy and I didn’t do that. In retrospect, it affords me opportunity and insights into a more practical example of technical debt in the real world.
Over the weekend I had “accumulated”, by conscious decision, some things in my car that I’d normally take out. I had left a rain jacket in the back seat because I live in Seattle in the spring. I had brought it “just in case”, but ended up not needing it. Saturday night, I’d gone and played board games at a friends’ house and didn’t feel like taking two trips from the car to the shelves. Sunday, I’d helped my father-in-law by putting a deadbolt on his back door. When I got home I was in a little bit of a rush and saw the games and jig on the front passenger seat, and thought to myself, “I’ll just leave the jig there and take it out when I take out the games.” All legitimate excuses, including forgetting about the jacket, because I saw it several times in the back seat. However, I consciously chose to leave and accumulate these items in the car, thinking “I’ll remove them later, over the weekend”.
Monday morning alarm goes off at 6:30 AM and I wake up…
Monday has some complications! My wife is going to use the car and will be parking it in a public parking lot for the day (best to not have a bunch of “stuff” in it). Also, chili is on the menu for dinner tonight, which for us requires an all-day cook in a slow cooker, and beans, which require a grocery store trip because we are out of them. Also, Mondays are known as meeting day, with the first one starting at 7:00. My mind has carefully planned out my Monday morning. Run to the store, start the chili and attend my meeting. Perfect!
Back to me waking up and having mentally planned to run to the grocery store before my morning meeting to get beans and start the chili. I hustle out of bed, get cleaned up and dressed for the day, and get in the car at 6:45 to go get beans. A few minutes behind schedule, but I felt I had time and could take a little extra time relaxing in the shower. Upon getting into the car I notice the games and jig in the front passenger seat, and my jacket in the backseat. Cursing to myself, I drive to the store to get the beans. My head is racing because I’m having to reprioritize some things on the fly. The store is nearby, so beans are acquired and I am back at my house at 6:55, thankfully.
Since I really didn’t want to roll the car break-in dice at the Park-and-Ride, I needed to empty it out. So, even though time is short, I must empty out the car (jacket, jig, games, and beans). Feeling the “tick-tock” of the clock and my morning meeting approaching, I really need to get this done quickly. I precariously juggle the jig (which belongs in the garage), games, jacket, and beans into the office. Of course, one of the games falls off the stack, hits the ground, and spills out dice, figurines, and cards. EXPLICATIVE! Stepping over the game pieces I waddle into the office (guest bedroom), plop everything in my arms onto the bed, and make it to my meeting only a few minutes late. However I’ve really not done anything to address my technical debt. I’ve really just moved it around and in fact, created more. I still have to start the chili cooking and I’ve got a pile on the bed behind me. Additionally, I now have a game spilled in the hallway between the garage and office. My mind is still in triage model, but I know that I need to get the chili started first.
Donning my wireless headphones, I tromp upstairs (while in my first meeting) to brown the meat and start the chili. I start the meat cooking, go back downstairs, step on a game figure (expletive! Someone in the meeting says, “What was that Steve?”), and bring up the chili beans. 15 minutes later the chili is in the slow cooker and I’m back downstairs in my meeting.
The remainder of the hour has me “attending” the meeting while putting everything away. The jacket goes on the hook in the hall, not that far out of the way. I pick up the spilled game and put it on the shelf along with the other games on the bed. Although they are put away in the right area, they are not put away in alphabetical order. I take the jig back out to the garage and put it in its place (extra work done there…). About 60 minutes later, I am back on schedule for Meeting Monday.
Back to the purpose of this story, technical debt. Over the weekend I made some seemingly small inconsequential choices. Monday came around and I couldn’t delay those choices (I could have, but at greater risk). I’m going to nit-pick here because this is a microcosm example.
- The jacket: I’d forgotten about it, mostly. I saw it every time and it did give me some peace of mind to have in the car in case I needed it. It was unwieldy and contributed to the game falling in the hall. Overall it may have added 10 seconds in “lost” or “duplicated” time.
- The games: still not fully put away, so still have a debt value. They contributed to my not putting the jig away. The game spill was a direct debit cost, as was my sore foot. All told I think the games contributed minutes of “lost” time.
- The jig: I carried the jig into the house, had to carry it back out to the garage and put it in its proper place. I’d say that it added about a minute of “duplicate/additional” effort time.
- The store trip: this really didn’t add any debt or extra cost. This task had to be done regardless.
- Making chili: my mistake here was in proper estimation. It took my attention away from the meeting and got done fairly quickly. Extra time cost no, but it was a weighted choice to not have a monitor in front of me for 15 minutes of the meeting.
We’re talking really min or choices, a few minutes cost overall, some extra walking, and a sore foot. Really some pretty minor things, but I contend these are a perfect example of how technical debt creeps and jumps into projects. The choices I made over the weekend impacted the first hours of my Monday morning significantly. My normal relaxed morning routine was harried and stressed once I realized everything that needed to get done. I wasn’t able to contribute my normal 100% to work or cooking dinner. I’d estimate that I lost about 6 minutes of that 1 hour meeting, at least 10%. 10% of wanted effort and time. I’m sure there are other metrics I could use, step count, elevation gain (going up/down the stairs…etc), but you get my point. Something so innocuous as leaving some things in the car over the weekend cost me 10% of my first meeting and set the wrong tone for the day/week. That’s a small practical example of technical debt.