Wheel Reinventor's Principles
Why and how I sometimes write stuff from scratch.
Why reinvent?
The Wheel Reinventor enjoys reinventing wheels. A lot of wheels have been invented before, some are even very popular. So why does the Wheel Reinventor make new ones?
- Learning: By reinventing the wheel, the Wheel Reinventor learns much. Not only about how to create new wheels, but also about how existing wheels work.
- Specificity: No one wheel fits all. When creating their own wheel, the Wheel Reinventor can tailor it for their exact use case, whether that’s a wheelbarrow or a monster truck.
- Innovation: Although popular, some existing wheels are quite bad. While reinventing, the Wheel Reinventor has the opportunity to explore new possibilities in a way that existing solutions cannot.
- Enjoyment: Wheel reinvention does, in truth, not need much of a reason. It can simply be out of love of the craft and the satisfaction of work well done.
Challenges
The Wheel Reinventor must however be careful. Reinventing wheels can be time-consuming and the end product may be inferior to existing solutions. The Wheel Reinventor also tends to fall into infinite rabbit holes. To create a wheel, must they also create the hammer that they need? Must they fell a tree for the hammer’s handle? If the Wheel Reinventor begins by planting a forest, they will not be building vehicles any time soon.
The Wheel Reinventor must therefore first and foremost be deliberate. They must consider whether it is appropriate for a given wheel to be reinvented, especially when accountable to others. They must also consider the scope of what is being reinvented (and crucially, what is not), as to not get needlessly sidetracked.
Likewise, the Wheel Reinventor must be honest with themself. They must keep in mind why they’re reinventing a particular wheel and not lose sight of that. A wheel reinvented for learning looks different than a wheel reinvented for innovation.
Development Principles
(While not strictly tied to the principles above, I have found the points below to help me foster a healthy mindset when doing wheel reinvention projects.)
- Minimize third-party dependencies. Master the platform’s built-ins and accumulate your own toolbox over time.
- Embrace the strengths of DIY. Create what you need and little more. Be wary of abstractions made for fabricated use cases.
- Avoid magic where possible. Try to stay close to the metal, preferring simple tools and not losing touch with the underlying technology.
- Share your work. Open-source your code where possible. Write about your approach and let others learn from your experiences.
Thank you for reading. Good luck with the wheels.
Published on: July 9th 2024