There is a very well known concept in development circles called Not invented here syndrome or NIH.
It describes a developer’s tendency to write something from scratch when there is an existing solution they could use instead. This is definitely something I’ve been guilty of many times in my career and there are lots of reasons for it.
Some common excuses are:
There’s a perception that off-the-shelf solutions are too expensive. A custom solution will be cheaper.
Lack of understanding
Sometimes, it’s a simple lack of knowledge of what solutions are already available. Other times, it’s a lack of understanding of the problem that needs to be solved.
But there’s another reason for NIH that might be even more common, even if developers don’t want to admit it.
Custom development is more fun!
I even wrote another blog post about the very same thing back in 2008.
Here are a few cases where custom development is the right solution.
When you’re going to license the software
We found a niche market of small organizations that needed to manage donations from different companies. We wrote a custom solution that could be themed and customized, then licensed that solution to the different organizations that needed it.
When you have to connect multiple systems
This was the reason for our rebuild of the CNPE website a couple of years ago. They needed an easy-to-use CMS but also needed to maintain all of their data in Salesforce.
While there are some existing solutions to connect the two, none of them worked with the level of fidelity that CNPE needed.
When there is a ton of business logic to consider
Louisville Institute is a local organization which provides different grants for religious scholars.
They needed a system for managing applications, documents, users, plus host of additional content pages about their organization. There are plenty of tools that do those sorts of things. But LI has a fairly complicated process involving deadlines, referrals, 3rd party contacts, etc, etc.
In order to give them total control over their process while still automating as much as possible, heavy custom development was definitely the way to go.
Don’t automatically assume you’re wrong when you decide to go the custom route. But make sure you’re doing it for the right reasons!