The Literal Band-aid Solution
Cycling with tech debt, how to put a patch in place and ways to ideally avoid the problem all together
This week I had the fortune/misfortune of putting a real world band-aid solution in place and luckily it was doing something I really enjoy, going on a nice bike ride.
The term "Band-Aid" itself comes from the well-known brand of adhesive bandages developed by Earle Dickson, an employee of Johnson & Johnson, in the early 20th century. In 1920, Dickson created the bandages for his wife, who frequently cut or burned herself while cooking. The innovative design consisted of a small piece of gauze with an adhesive backing, covered by a protective strip of crinoline fabric. The bandage was easy to apply and provided quick relief and protection for minor injuries.
The Band-Aid brand quickly became popular and synonymous with adhesive bandages, leading to the term "band-aid solution" to describe a quick, temporary fix for a problem. It does not address the root cause of a problem. The term "band-aid solution" is thought to have originated in the 1960s, when the Band-Aid brand of adhesive bandage became popular.
Now, these patches also happen a lot while you are building software, specifically web based applications. There is not enough time to make sure all the coding decisions are architecture correct for every use case. There are edge cases you haven’t thought of, that people strangely find. As software gets more popular, scale may become an issue as well. These all result in small or large bugs being uncovered and as you have incidents, band-aid solutions, in the form of patches are added in to fix the immediate issues and plans are put in place for longer term refactoring of the code to ensure a full fix is put in.
Now, back to bikes!
A few things to know about road bikes and somewhat serious to serious cyclists. There are a lot of fun gadgets. Bikes are a dream for tinkerers. There are lots of parts, breaks - rim or disc, brake levers, the tires and rims, front and back derailleurs. The saddle, the pedals. Everything!
With the pedals to get more of a 360 pedal stroke. Now pedals come in all types breaking down into pedals that clip in or are flat:
Clipless pedals use a system of cleats and pedals to attach your shoes to the pedals. This allows you to transfer more power to the pedals and provides a more efficient pedal stroke. There are two main types.
Two-bolt cleats are smaller and often recessed into the sole below an outer sole. They are typically used for mountain biking and commuting.
Three-bolt cleats have a wider surface area and are typically used for road cycling. They offer more stability and power transfer.
Flat pedals do not have a clip system. Instead, they have a flat surface that your shoes can grip. Flat pedals are typically used for BMX, mountain biking, and commuting.
For me, I have a Cannondale Super Six Evo with rim breaks and mountain bike style pedals that support two bolt cleats.
At a minimum, in order for this system to work, you need to make sure that all gears are clean and lubed, so that as a pedal it reduces the friction at every pedal and keeps the teeth in the crankset and rear cogs from wearing down as much as possible. The front and back derailleurs need to be positioned such that they can easily move the chain to the right cogs and don’t rub or damage the chain.
You need to make sure your saddle is the right height and distance forward or backward for maximum efficiency and to prevent injury and lastly need to make sure your pedals and bike shoes are in the right shape to effectively power this fun but complicated contraption.
All that is to say, biking properly is a little complicated and requires a decent amount of care and maintenance in order to have a great ride and really fun experience. I think you all can see where I’m going with this.
The Ride
Going into the ride, I have been doing a decent job tuning up, cleaning and lubing up my bike, but the inserts on my bike shoes where designed for D-clips and I used a SPD cleats adapter on them to allow for Shimano two bolt clips, specifically Shimano SH51 SPD and bike shoes that made it so the cleats extended out from the bottom of the shoes.
Now these, I had been treating nicely, but just like with tech debt, this important but little paid attention to feature had not gotten the TLC it had needed and there were all sorts of gravel jammed into the cleats and bolts holding them in.
We drove out to the Cape Cod Rail Trail with plans for a 60 mile ride, around 30 miles out and back. We take the bikes off the car, get on our bike shoes and pump up the tires and get out. The ride is smooth, weather is perfect and the scenery of the trail is lush with trees on either side interspersed with road crossings and the occasional lake.
At each of these road crossings we need to stop for cars, as that happens, my right and problem cleat feels a little loose coming out of the pedal and I file that away as something I need to look at when we get to our stopping point in Wellfleet at the end of the trail. We keep a slower and steady pace, have some good conversations on the way and make some decent time out to the White Sparrow in Wellfleet.
I take a small tool kit whenever I ride to make sure that I can fix almost any problem I have on the road. So I take out a small Allen wrench set and start removing the bolts holding in the cleat on my left shoe. Since these cleats stick out from the bottom of the bike shoe, they’ve gathered up some gravel in them over time and I had not spent any time making sure they were cleaned out.
As I work on the cleat, after I cleaned out all the dirt and gravel, the bolt just will not screw fully into the bracket adapter. The bolts for this cleat were bare threaded at the top and could no longer fully screw in. Now.. given my clipless pedals, I have no way to bike the 30 miles and couple hours back to car or the 15 or so miles to get to the nearest bike shop.
Houston, we have a problem. My tech debt had come home to roost.
The Patch
Luckily, as a Software Engineer and bike tinkerer, once I and my friends on the ride had exhausted all possible threading solutions (threading solutions also come up A LOT in software bug patches as well), an idea comes up.
One of the riders had taken a small fall and skinned their elbow and of course with the small first aid kit I brought was able to help out with a band-aid and some bacitracin. Given that the bolts were only threadbare at the top, I got out a band-aid took off the padding and folded it both ends in.
With my smallest Allen wrench I poked a hole on either side of the band-aid measured to the distance between where the two bolts need to get screwed in and placed in on top of the bracket needed to help secure the cleats.
Then the screwing..I mean reassembling the cleat began. Once the bolts got through the band-aid, it did give enough space to effectively secure the cleat!
With it I was able to just barely clip in and for 15 or so miles effectively ride to the bike shop to take a closer look and get a full solution in place.
The Cost
Once successfully at the bike shop, the damage was worse than two partially threadbare bolts, the bracket was older and partially threadbare as well. The shop didn’t carry the bracket adapted I would need to continue on. I either needed to buy and install new pedals or new shoes. The new shoe option was the way I went, but it, like software breaking was costly and threw off our timeline back to the end of the trail.
In fact, while I did get the novelty of putting a real band-aid solution into place, the time, money, effort and efficiency lost is all too common today in most software development. For me, it cost me far less than I’ve seen it cost the places I’ve worked.
The Cost of Tech Debt
A recent article by McKinsey painted this picture of impact in three ways:
Increased costs: Technical debt can lead to increased costs in a number of ways. For example, it can lead to increased costs for maintenance and support, as well as increased costs for development, as developers have to spend more time working around the problems caused by technical debt. A study by McKinsey found that companies with high levels of technical debt spend an additional 10-20% on development costs.
Decreased productivity: A study by the National Institute of Standards and Technology found that technical debt can lead to an average of 15% productivity loss. This is because it can make it more difficult for developers to work efficiently, as they have to constantly deal with the problems caused by technical debt. The more whiplash your organization has, the harder it will be to focus on one thing.
Decreased uptime: Technical debt can also lead to decreased uptime. This is because it can make systems more unstable, which can lead to more outages. A study by the Standish Group found that software projects with high levels of technical debt are 30% more likely to be canceled or significantly delayed.
Just like with my bike, paying down tech debt is critical for an engineering team to work at peak performance, so while technical debt happens, please focus on paying it down. Your engineers and company will thank you for it.