I bought a bicycle a few months ago. Nothing really extravagant, it cost less than 700 EUR - which is enough to acquire solid two wheels and a bit of proper equipment (full aluminum frame, Shimano Sora groupset, hydraulic disc brakes, etc.). I didn't own a bicycle for years - I prefer running to biking (as physical activity) and I did not need to commute via bike.

Riding a light and agile bike is undisputable fun, but ... I've found out (to my astonishment) that servicing it by myself can bring even more joy. Front and rear derailleurs, shifters, cables, cassette, chain, jockey wheel pulley ... - so much stuff to disassemble, degrease, clean, lubricate, regulate, adjust and assemble back ... :)  The bicycle is a deceptively simple vehicle, that in general "just rides", but it provides virtually infinite options to fine-tune, experiment and polish if you want to squeeze 0.01% more performance or 0.01% less material fatigue ...

Virtually limitless - how come? When it comes to a bicycle - nothing is given forever. Unforgiving weather conditions, water, sand & dirt, aggressive riding style, materials wearing off, different properties of various lubricant types, numerous upgrade options - all these variable factors turn your bike into a very dynamic and unique ... environment.

And a perfect playground for anyone with an engineering soul.

Let's get physical

Seriously - these are quite simple, mechanic things, but for someone who deals on a daily basis only with virtual, ephemeral craftsmanship artifacts, just observing how physical things work and interact is ... refreshing. Even the simple fact that almost all senses are involved is a game-changer. You make a tiny adjustment change and there's no metric gauge to flatten your outcome into a single numeric value. You watch, touch, listen, even smell (but hopefully not taste ;>) repeatedly, over and over again - all of that to extract some feedback to guide your next steps.

OK, so it's fun to get your hands dirty once in a while. But is there any learning we could extract out of that?

In my case, I'd call it a "sobering experience" or a "down to earth" one. Why so?

  1. mechanical engineering is more unforgiving - in many cases, actions are more permanent than when it comes to fiddling with software
  2. automation is more problematic (for mechanical engineering in our own house), so sustained, long-term proficiency is essential
  3. some constraints are inviolable, while when working with software, you can freely manipulate nearly everything, including such abstract concepts as time
  4. long-term effects of sloppy work are striking and undisputable
  5. excessive complexity is much more visible & its price is much more apparent (e.g. due to size/spatial limitations)
  6. mechanic interactions are much more explicit - the causality is more clear, and the function follows SRP :)
  7. even if aesthetics play an essential role in the final product (bicycle), when it comes to purely engineering aspects of bike servicing - it is of marginal importance

To sum it up: mechanical engineering is far less powerful (the options are limited), far more constrained and far less forgiving (that software engineering). Where's the cookie then?

Hardening the steel

That's how one can develop a true engineering mindset - by simplifying your training "dojo" and stripping it out of excessive details. Hardening the foundation. That's the way to cultivate:

  • objective pragmatism
  • accuracy and attention to detail
  • favoring simplicity over fanciness
  • function over form

It doesn't mean I'm going to open a bicycle repair workshop anytime soon :) Tinkering with a bike is fun, but it's even better to get back into code, while being refreshed after a short but intensive affair on the side with purely mechanical engineering. Highly recommended.