Here’s a little thought experiment: What if industries other than software development suffered from ‘Not Invented Here’ as much as we do*?
####* Note how “In Computing” is the only industry-specific section of the article.
Oh sure, you could replace this blown tire with one from a tire store, made by a company that has been refining its designs for decades.
But I’m pretty sure the one I made on the first try out of random junk I found in my yard wtihout so much as flipping through a few issues of How to Make Tires magazine is better.
Why? Because I am God’s gift to automobile repair and everything I do is automatically better than something created by specialists with PhD’s in this exact field, by virtue of the fact that I am great.
Oh sure, take it out on the interstate right away. No, I didn’t test it, but I assume everything will go perfectly smoothly because I am Midas, and everything I touch is perfect because my mother told me I am special.
If anything goes wrong, it’s probably the fault of the stupid road guys for not anticipating that people would maybe drive 75 miles per hour on their dumb road with a tire made out of mud and twine and some old shoe soles. That never even occurred to those stupid idiots probably.
There’s nothing that rubs me the wrong way worse than software developers who have the “not invented here” disease. It all comes from ego, an unwillingness to accept that there are things you might not know, or that there may be other people in the world who have encountered the same problem as you and possibly invested the time and effort to come up with a better solution than what you can make up off the top of your head.
These people are exceptionally difficult to work with, because any attempt to point out an issue their solution doesn’t anticipate, or the existence of a more fully realized alternative, is taken as a personal attack on the very core of their being.
They have an internal default assumption that their every idea is right, and better than every idea that their peers or predecessors may have had, or else they’d be open to, at minimum, investigating existing solutions first.
There’s definitely value in building something to see how it’s done, I have no problem with that. If you want to build and engine to learn how an engine works, that is awesome. But don’t sell your customer on the idea that thier best (or only) option is your first attempt at building that engine, with no prior experience or research.
It will take longer and cost more than you expect, because you didn’t anticipate every possible issue with creating something so complex, and you have no economy of scale. It will cost more than a pre-assembled one would have, and your end result will be less reliable and less efficient.
Which is fine! Hey, building engines is hard. It’s crazy that yours even works at all. Just don’t assume it’s the best one ever built simply because you are the one building it.