Should your software be custom-made or use existing ones?

Should your software be custom-made or use existing ones?

So, when you start up a project there’s often the question should create a custom solution or use an existing solution? For instance, if you want to make a webshop, you should use the Magento or PrestaShop or make everything from scratch? So, we will look into the facts and find what and why we should do in this article.

So the question is what we should do. Well, the answer is, it depends. Because there’s no real answer here and as with everything else well it depends a lot on your requirements and we will dive into those as there are also solutions in between. It is not black and white. So, for instance, just take an example if you have a custom website you can still utilize a lot of different web services. Suppose you are making a website where you have hotels and you want to show which dates are available. Well, for this you can actually use Google spreadsheet and integrate as a backend. So you use a kind of spreadsheet functionality but you integrate it. There’s always a website like parse which you can use to build the backend of your website which is a custom solution but you have to rely a lot on existing functionality. Also if you take wordpress, I have never made a custom content management system because what I will do is I will simply just integrate the functions using wordpress API and use that on your custom solution. So the first takeaway here is it’s not either custom or existing. You can use something in-between where you do custom but actually integrate towards other solutions.

The two important questions I would suggest you use are, the first, how close can you come by using existing software?

If you’re making web shop, chances are you’ll come really far if you use Magento or PrestaShop or other solution. But if you make a very custom website probably the most important thing of the website won’t be something you can copy. In that perspective it makes sense to make it custom. You should check in the internet and find what solutions do you have? Can you build something similar? If you can then you should probably consider the custom. Also you should ask yourself, why you are even considering custom. My main point is here, what you are trying to build if the core functionality or the most important functionalities already exist then you shouldn’t build your own custom software and rather use Magento or PrestaShop. But if what you require is not there, for instance you want something personalized feature what is in your mind and not available in for example wordpress plug-in or so, then you should consider. Something I’ve heard a lot is people want to have a custom web shop because they want to have some pretty awesome features. That is nice to have but in reality those are just enhancements of the core product and in those cases it’s definitely worth just using existing solution, because you’ll save a lot time on it. The reason I prefer that is because the custom software have pros and cons. If you look at the pros, they are

  • You can get exactly what you want
  • No compromise of the last 80%
  • As it scales, the benefit of existing software can decline significantly

There’s no compromise as the product you get is a hundred percent and what you get is  exactly what you wanted for. There’s another benefit when you scale, you’ll actually be able to do what you want and exactly how you wanted while if you know you suffered from existing software that actually declined the benefit significantly. Say you have made a  web shop on Magento, with the time passes by, there will be more Magento functionality you’ll have in your system custom made for you and that means for each month that goes by the benefit actually declined quite a lot. So starting out custom software might be expensive but as we go along it actually becomes less and less expensive. So that’s a pro.

But the cons are very big.

  • Priced
  • Not tested
  • Nothing comes for free

First of all the price is crazy. It’s really expensive doing custom code. So that’s something you have to keep in mind. Also the big thing is, it’s not tested. If you take a system like Magento the system has been tested. In so many cases has been tested by professionals and that means that most of the boxes are ticked, but if you do your own you have to accept that there might be errors, and years will be spent trying to fix them. And also you have to remember nothing comes for free. For instance, suppose you want to integrate a gift-card and you have to code it and that takes a lot of hours. So the basis function you expect to be there actually won’t be there because it’s not a part of “build and solution”. And because of that I would say custom software has a few pros but it also has a lot of cons. So the issue is to go between those considering the pros and cons.

I will state two relevant cases, and the first one is, suppose I want some custom feature on my frontpage, like instead of showing products I want to filter them as per age category. For that, well it’s a nice feature but it’s already in the core! The main functionalities are in the webshop. You can always go with the existing software.

While in second case where I want to suppose make a travel website that would find comparisons from multiple providers of hotels.  In that case, it’s not something already made, to build this you can go in and find custom CMS solution for this. Of course you can probably find plugins for wordpress that workout and you could probably consider that. But the main point here is that the core functionality of this feature is not available at least on open source. So in this case I’ll probably go for custom software out.

So, the main thing is, if you are doing a software that’s not something of core functionality then you might go for custom. But if it is a mere extension then you should better go with existing software available out there.

Thanks for reading the blog. Please share if you like it. Read my other blogs.

Leave a Reply

Your email address will not be published. Required fields are marked *