Do Reinvent the Wheel
Published on April 17, 2014
·
3
mins
“Don’t reinvent the wheel.” If you’re a developer, chances are you’ve heard this a hundred times. It’s one of the foundations of the hacker culture. You shouldn’t waste your time and energy building what already exists—instead, it’s much better to improve it (if possible).
Don’t get me wrong: it’s good, solid advice. I’ve even put it in my manifesto. However, I feel that it’s been misunderstood, misused and exaggerated. For years I’ve been throwing ideas in the trash just because similar products existed, and I’m pretty sure many people today are doing the same thing, only because they’ve been told they shouldn’t reinvent the wheel. I fear that not reinventing the wheel has become a best practice, one that people have started buying into without even thinking about its benefits.
Now I’ll tell you all the reasons that justify reinventing the wheel. You can thank me later.
Let’s get to business, then. You should reinvent the wheel because…
- You have to learn. Reinventing the wheel is often the only way to learn about a new tool or language. If your product will not be released to the public, why do you care about RTW? The truth is that knowledge is not enough. You need experience in the field, and the only way to gain it is to do. In this process, you’ll inevitably end up copying someone else’s work. Don’t worry about that: you can get to your super-original idea when you have the competences.
- Different paths need to be explored. There is rarely one way to address a problem, and not all ways have been followed. If you think that you’d be able to bring some innovation, go ahead and give it a try! Of course, it would be better if you validated your idea before, while and after working on it. But eventually the only way to be sure about its effectiveness is to free it in the wild.
- There are no original ideas. Yep, I’ve said it. In case you haven’t been paying attention, it’s 2014. There are no more original ideas to come up with. Now that I think about it, there never were. Open Google, search “do reinvent the wheel” and you’re going to find at least two articles about this same topic. But that didn’t stop me from bringing my contribution. Who knows, perhaps someone will benefit from it. Remember: “Good artists copy; great artists steal.”
- You’re entitled to having fun. Want to make a video sharing website? I think there’s a little thing called YouTube that does something like that. Not sure if you’ll become rich. Want to do it anyway because it’s fun? Stop listening to me and do it, then! Why are you even still reading this? Go, go, go. No time to waste.
Does that mean you should always RTW? Nope. You shouldn’t reinvent the wheel if…
- You want to build a social network. HELL NO! EVERYBODY STOP THE GODDAMN SOCIAL RAGE! I’M ANTI-SOCIAL! I DON’T NEED ANYMORE! FACEBOOK HAS ALREADY DESTROYED ENOUGH OF MY LIFE! WHAT ELSE DO YOU PEOPLE WANT FROM ME?!
- There’s no point in doing it. If you just need tool X to have feature Y, working on the existing software will probably be better than starting from scratch, both for you and the community. These are the marvels of open source, after all.
This guy’s gotta be the icon of happiness.
In the end, deciding whether or not to RTW is a subjective matter. I trust that in time you’ll be able to distinguish between good wheels, bad wheels and happy wheels.