Reinventing a wheel is a stirring topic.
On the one hand, a great product/software is almost un-replicable. They are huge in size and usually provide support for everything that one can imagine. Nothing seems “out of scope” in that.
On the other hand, there is something that a user is looking for, which the product does either provides for or does it in a complicated way. In that case using the product may lead to more complications than developing something from scratch.
So what’s the right way to go ahead?
I do not want to take sides here. I believe that it is all about business objectives that one wants to achieve.
WordPress, for example, is a software that runs a large number of websites around the world. It is free to use and take seconds to install. In my opinion WordPress is probably one of the reason there are millions of blogs on internet.
If one wants to create a software that does most of the things that WordPress does and also charge for it, they probably won’t be that successful. In fact even if they gave it for free, it would find a few takers because WordPress being there first, having a solid install base ( number of installation), community , free plugins would be impossible to beat.
I think there in lies the crux of argument about “reinventing’. If the purpose of reinventing is to introduce new way of working that cuts down inefficiency in current system/software/process, it would be welcomed with open arms . If the purpose is to create a me-too product, it would be very hard to succeed.
A lot of people do reinvent because they want to learn how something original got invented. That is a very good thing. But to make it into something that is useful to customers is different than a hobby project. With new product one not only needs to be on top of design and development but also provide timely support .
If one feels that time spent for
Product development + future development + support + community
is worth it for amount of resources that have been already put by others in existing similar project, then one should definitely go for it.
When I created my plugin for Social media sharing, there was a giant free plugin to compete with. I was nevertheless able to compete at some level because of subtle differences between the two products and my offer of continuous support.
So when one needs to go for reinvention?
The old product does not suit new business requirements
The old product has too many features ( bloated )which are performance bottlenecks ( mostly in software field)
The old product has a few security issues which are hard to resolve or will take a lot of time
The new product provides a refreshing take on solving a business problem
Introduction of new channels need new products ( for example mobile based web sites)
Where needs can be fulfilled by development of a new product on a small scale rather than deploying existing large product
One wants to pursue creation of your product as lifelong career.
New development is going to provide path breaking features.
When is reinvention not useful?
When the current product can be used with little modifications
When you just want to create a hobby project
When you are motivated to write everything from scratch ( a few things are already perfected and improvements are only minimal)
Cost of reinvention is a lot more compared to benefits out of using existing.
When we start a project , the first thing we need to ask ourselves is a) What do we plan to achieve with this product?b) Is the time spent on it worth it?c) Is it going to be our staple product in our business?d) Is there a meaningful twist in features/service/support?When do you think reinvention is useful and when is it not ?
Image courtesy of Watiporn / FreeDigitalPhotos.net