Skip to content Skip to footer

Wheel Reinventor’s Principles (2024) by TobLoef

22 Comments

  • Post Author
    austin-cheney
    Posted March 21, 2025 at 12:49 pm

    An often unintended benefit of reinventing wheels is vastly superior performance improvements, most of which are entirely unintentional.

  • Post Author
    dazzawazza
    Posted March 21, 2025 at 1:07 pm

    > Embrace the strengths of DYI. Create what you need and little more. Be wary of abstractions made for fabricated use cases.

    DYI?

  • Post Author
    amelius
    Posted March 21, 2025 at 1:16 pm

    But should I tell my boss that I'm reinventing everything?

  • Post Author
    amelius
    Posted March 21, 2025 at 1:17 pm
  • Post Author
    JackC
    Posted March 21, 2025 at 1:19 pm

    I'll add "reduce code size and complexity" to the list of benefits. A python library to calculate a simhash, or track changes on a django model, or auto generate test fixtures, will often be 90% configuration cruft for other usecases, and 10% the code your app actually cares about. Reading the library and extracting and finetuning the core logic makes you responsible for the bugs in the 10%, but no longer affected by bugs in the 90%.

  • Post Author
    the__alchemist
    Posted March 21, 2025 at 1:46 pm

    I am a wheel re-inventor. Nice article. The _Specificity_ reason listed is usually the driving factor for me, with the others being downstream effects. In short, the wheels are often built for a different chassis than the one I'm using. Adapting these may be more difficult than making a new wheel.

  • Post Author
    roland35
    Posted March 21, 2025 at 1:50 pm

    It's funny how often engineers say "it depends"! Even a basic axom like don't reinvent the wheel doesn't always apply. After all, we have entire industries dedicated to doing exactly that! Goodyear spends a lot of time investing in new wheel technology every year.

  • Post Author
    ikanreed
    Posted March 21, 2025 at 1:59 pm

    This is what I want to do as an engineer, but I know damn well it's a waste of time and money.

  • Post Author
    ozornin
    Posted March 21, 2025 at 2:05 pm

    "I am not reinventing the wheel, I am disrupting the wheel industry"
    — TramSDK creator https://github.com/racenis/tram-sdk

  • Post Author
    Vox_Leone
    Posted March 21, 2025 at 2:08 pm

    Most importantly, roll your own crypto!*

    *https://www.schneier.com/blog/archives/2015/05/amateurs_prod…

  • Post Author
    jasonthorsness
    Posted March 21, 2025 at 2:16 pm

    Creating a lighter, faster wheel that only works with sort of cart your company builds might invite accusations of “reinventing the wheel” but often it’s just “doing engineering”

  • Post Author
    beryilma
    Posted March 21, 2025 at 2:16 pm

    The color contrast of the site, especially the background color and the font thickness (on android phone at least) is not good. Many visually impaired people would have very difficult time reading the content.

  • Post Author
    didgetmaster
    Posted March 21, 2025 at 2:19 pm

    Reinventing the wheel often means breaking things. Innovation often requires getting rid of backwards compatibility. The status quo is promoted by those who have invested in it, so disrupting it can be met with fierce resistance.

    When I tell people that file systems are antiquated and need to be replaced with something much better; I often get strong push back.

    This is a wheel that I have been reinventing for some time. It's not something that can be fixed with minor tweaks.

  • Post Author
    mrbluecoat
    Posted March 21, 2025 at 2:31 pm

    Missing point: only reinvent the wheel when you control all the wheels

    For large, complex systems with multiple developers this approach rarely works.

  • Post Author
    troman_dev
    Posted March 21, 2025 at 2:40 pm

    I'm definitely a wheel re-inventor (in the educational and entrepreneur sense), and I've come across the same learning points myself. Recently, I just started blogging about my little wheels, and I think its been one of the most satisfying aspects of working on a project!

  • Post Author
    xipho
    Posted March 21, 2025 at 2:51 pm

    In scientific software development "don't want to reinvent the wheel" is an oft-repeated mantra that I like to push back on when I hear it. To be fair it's often used in the context of "we'd rather/like to collaborate", rather than an appeal to use "that exact thing".

    Re-inventing things independently in parallel (parallel evolution analogies) is perhaps a strong indication that something interesting is going on. How do we know we got it "right" if we don't converge independently? If we invent a square wheel, and stopped because "wheel", we'd be in a horrible place. Science is a process, the process of reinventing is a great way to realize new things, and to train, at a low level, scientists. I suspect the process of re-inventing is also important in building out our (long term) ability to depend on our "gut feelings", thus providing the ability to nudge us to experiment along one path or another.

    [Edit … all things the article mentions.]

  • Post Author
    sunrunner
    Posted March 21, 2025 at 2:52 pm

    Like every single software development principle, this phrase really needs to be explained with more context and considered with more subtlety than the usual "It's best practice" advice, for a number of reasons (some of which are stated in the article) of which I think the following two are the most important:

    Firstly, if you want to actually understand how the 'wheel' is invented then yes, you should re-invent it. The process of re-invention involves discovering what actually goes into some of the tools you use. Even if you never use your re-invented wheel in public (often advisable), the process of learning is invaluable in understanding the tools you do use.

    Secondly, however, what wheel are we even talking about? The wheel is a timeless design, seemingly perfectly suited its task. The software libraries and tools that are usually picked as targets for 'not re-invention' are not wheels. They're higher level abstractions that pre-suppose certain ways of working. There's no timeless design here, just a bunch of arbitrary desicions about how something should work at a higher level with some amount of the decision making you'd have to do without it already done. Is this a bad thing? Of course not. But understanding that all of the 'wheels' are just this and are not magical black boxes that can't be understoor or shouldn't be looked at is important.

    There are good times to not immediately go and re-implement *and publish* existing tools (emphasis on the publish, you should do things for learning), but understaning why you're choosing to do or NOT do a 'reinvention' is crucial.

  • Post Author
    turnsout
    Posted March 21, 2025 at 3:04 pm

    There's a big difference between "reinventing the wheel" and simply making your own wheel. People often conflate the two.

    e.g. making your own static site generator is not reinventing the wheel. It's making your own wheel, which is a perfectly cromulent use of time.

  • Post Author
    Lerc
    Posted March 21, 2025 at 3:07 pm

    A lot of time I find myself reinventing the wheel is because of some framework that has decided that inverted catenary flooring is the future and their provided wheels are excellent for going in the standard use case direction.

  • Post Author
    bschmidt07
    Posted March 21, 2025 at 3:10 pm

    [flagged]

  • Post Author
    bschmidt07
    Posted March 21, 2025 at 3:11 pm

    [flagged]

  • Post Author
    0xbadcafebee
    Posted March 21, 2025 at 3:24 pm

    More thoughts about reinventing the wheel:

    – Did YOU invent the last wheel, or any before it? If not, then you will make the same mistakes the last inventor made. Until you make a bunch of wheels, you'll probably suck at it.

    – You learn more by studying old wheels than trying to bang one out yourself. Study the principles behind the designs rather than shooting from the hip. This is why we study medicine, science and engineering, and don't try to invent new medicines, sciences, and engineering disciplines from ignorance.

    – Novel-ness is only good when it fixes more problems than it introduces. Novel-ness introduces not only "bugs" from a new, untested design, but also the problems of changing people's expectations, requiring new training, and possibly requiring all the other parts to change to fit the new wheel (which is often more work than just dealing with the old shitty wheel!). New things are not inherently good. Incremental change is almost always better, even if it's harder because you have to struggle with all the existing limitations. Your job isn't to do something easy, it's to make a product better.

    – Only after you make your new wheel will you find out if it's good or not. Don't go into it assuming what you have is better just because you like the idea of it better. In fact, the more you like the idea, the more you should question it; ego is a dirty liar. Kill your darlings and be prepared to accept others' judgement of the thing, and the reality of it moving on the road.

Leave a comment

In the Shadows of Innovation”

© 2025 HackTech.info. All Rights Reserved.

Sign Up to Our Newsletter

Be the first to know the latest updates

Whoops, you're not connected to Mailchimp. You need to enter a valid Mailchimp API key.