When you have a business idea ready to start with, the first question that appears is: Shall I go for a custom development or opt for an off the shelf open source solution?
That is a really important question and should be given its share of analysis because the decision made will have a very significant impact on the future of your business.
There is no single straight answer to this. Both open source solutions as well as custom development have their own pros and cons and it depends on your requirements as well as expertise of your technology partner which option suits best for you. In this article, we'll discuss the pros and cons of both on different parameters so that you can make an informed decision for the current as well as future benefits of your business.
Probably cost is the most important parameter to consider here as we are talking about the startups. In most of the cases, the cost to launch is significantly less with open source as compared to custom development (or at least looks like that). If you find an open source solution meeting all your needs with no or negligible customizations, you just need to pay your application developer or web design company only for the installation which is almost negligible compared to custom development. You get hundreds or thousands of hours of development for free. But every business has different needs and hence requires some customizations.
So you must be clear about your requirements and discuss those thoroughly with your solution vendor to be more clear on how much customizations will be required and how much that will cost.
Same as for Cost to First Launch, if all (or almost) your requirements are met with some off the shelf open source solution, the time to first launch is as small as a few hours to a few days. But it again depends on how much of your requirements are met from the default solution itself without customizations.
Gone are the days when all the requirements of big projects were analysed and frozen in starting once and then final product was delivered as per waterfall model of SDLC. In today's fast-paced era of technology specifically with web applications you start the business first and then adapt as per the environment and responses you get. And that makes Agile Methodology so popular these days. So, if you think your software requirements are not going to change, please revisit your conclusion.
Now for the customizations, open source solutions do not cost less than the custom developed ones. Actually they cost more because they have a lot of extra functionality included which is not being used by your implementation but need to carry it on so that the customizations do not break anything. Even if you get some ready plugins to meet your requirements which may or may not be free, that also brings a good enough maintenance cost and with its own issues. We'll discuss the same below.
Yes, softwares do need maintenance and open source solutions need lot more than custom developed ones. With time updates/patches are released for your core system as well as the plugins used in it. Several of those updates are security updates which you must install. So you need regular support from your developer to install these updates which will invite attract cost at intervals. This cost increases with number of plugins installed and customizations done. Because compatibility of different plugins and core system might have conflicts. After the upgrades, the customization done by your developer needs to be updated for compatibility with the new version.
For open source systems, it's easier to find and switch the developer or agency to work on your system while for custom developed solutions you are more closely associated to the development company. But it must be noted that changing the developer even for the open source based application without major reasons may invite a lot of concerns and in-liability of both the developers towards any issues in the application. On the other hand even in the case of custom developed solutions you can have a contract with your developer to have ownership of the code.
The open source solutions are developed and maintained by a large community of very intelligent and talented developers. But those are still more prone to security threats and hacking thanks to being open source and more than that the cheap plugins/themes/extensions used. Wordpress, though it is a really nice system, is arguably the most hacked and exploited system on the internet because of the same reasons. For the open source systems, the source code is publicly available to everyone. So, when a single minor bug is left, it is known to everyone. There are a lot of individual hackers as well as agencies running crawlers to maintain a database of websites running these open solutions with the versions being used and the versions of several extensions which can be detected from html of its web pages. That way whenever a security breach is found, they exploit your site before you even get a chance to install the patch. On the other side for custom developed solutions, no one knows your code and hence it is comparatively a lot more difficult to find and exploit the bugs.
That way, custom developed applications need significantly less maintenance and have less chances of security exploits.
Performance cannot be ignored while choosing the technology solution for your business. Today's users are so impatient and search engines also prefer the websites which load faster. It is very much clear that the open source solutions are developed very general purpose to meet the requirements of as wide an audience as possible. So your requirement is only a small part of that total software and the rest is just the extra overload to carry. This results in increased requirement of resources as well as comparatively poor performance. In most of the cases, the performance issues are not discovered in your acceptance testing. The issues arise at the most critical time when your business starts growing.
Here we find that open source solutions as well as custom developed applications have their own pros and cons. So it depends on your requirements, budget and vision what fits better.
First try to be clear about your requirements, then explore the available open source solutions to find the best fit for your needs. If you find some good solution meeting around 90% of your requirements itself or with good trustworthy plugins, you are good to go with it. Otherwise, it is never a bad idea to go for custom development provided you're hooked with the right developer. If your business idea is not a generic one, go for a custom developed solution.
When you decide to go with an open source solution, make sure that the core idea of the solution is the same as your business. Remember there are different solutions for blogging, information sites, e-commerce, social networking etc etc. Using magento for an information website or wordpress for a good e-commerce solution is really a horrific idea.