I’m fixing a bicycle

What do fixing bicycles and software engineering have in common? In my experience, quite a lot.

A bicycle on a repair stand, a mechanic is taking out the crank shaft.

I’m a software developer. I like to fix things. Make things. This translates to meatspace as well. So now I have a bicycle I’m fixing up:

  • a spoke in the rear wheel is broken
  • chain is essentially just rust
  • brakes are weak
  • gear changer miscalibrated

I’m slowly learning how to do all the things. I learned how to disassemble a chain, though I had to borrow a chain-separator. I learned how to take off a casette, though I had to borrow a casette removal tool for that type of casette. I learned how to install a spoke, though I had to buy a spoke tightening tool. There was an M6 screw missing from the rear brake assembly, and then I found out that the rear wheel is not running freely for some reason that's not the brake’s misalignment.

This is where I am at at the moment. Tomorrow I need to figure out why the wheel isn’t turning freely, fix that, put the brake back, align and adjust the brakes, align and adjust the derailleurs, oil the chains, and make sure the tyres are pumped up. And then I can hopefully give it back to its owner. Assuming I don’t find any other issues.

It’s weirdly similar to what happens when I’m dropped into a legacy software project that’s broken and now I have to fix it.

Sometimes though, I don’t want to buy or borrow all the special tools that I need to fix something, be it a bicycle or a piece of software.