This article is aimed at professional organisations rather than Joe Bloggs who wants to build a website for his plumbing business or start selling his handcrafted soap online. It is also from the biased opinion of a developer of custom-written applications.
In my opinion, most people using an open-source application, do so because they are looking for a quick and cheap solution. While this is usually fine for small business and those wanting to get their first website up and running with minimum fuss and cost, larger organisations with more specific needs will find that an off-the-shelf application rarely fits out of the box, and that they will have to customise it and put up with a lot of code and features that they never use.
The real question when choosing between off the shelf (open source or commercial) and custom-written applications is, will your organisation be willing to change their requirements to suit the application, or should the application be developed to suit the requirements of the organisation.
A custom-written application, if done well, will suit the exact requirements.
Some people say that a custom-written application is more difficult to maintain than an off-the-shelf solution. This is not always the case. Any modifications to an open source application will require someone who not only knows the programming language but also knows the application very well. It is obviously much easier to find a programmer that knows a specific language than it is to find a programmer who knows the language and also knows how to work with a specific application.
In my opinion as a programmer, it is generally much easier to learn and work on a custom written application even if written by another developer than it is to learn and make major changes to an off the shelf application. Off the shelf applications usually have a large number of features so as to try and cater for the most potential needs so there is likely to be much more code to trawl through than a custom written application. Not only that, but in some open source projects there may be 10’s or 100’s of programmers involved, all with different programming styles and techniques which would make things even more time consuming to comprehend.
Making modifications to an off the shelf application can put you in the position where the modifications may be overwritten or not compatible with a newer version of the application. You may say things are fine with this version so there’s no need to upgrade, but for security reasons at least it is very important to keep updated. Vulnerabilities often become common knowledge in off the shelf software, particularly open-source, and hackers look for websites using applications with these vulnerabilities to exploit. Even some open source developers admit this as a potential problem: eg. phpBB, open-source forum software used by a large number of websites, say “PhpBB is an open-source forum software. This means that everyone has access to its code. This makes phpBB exposed to many hacker attacks and exploits.” There has been quite a few cases of these types of problems.
Open source and commercial applications are usually full of many features as they try to cater for the most number of customer requirements. This usually means that for many users they are bloated and over-complicated. Look at DotNetStorefront, a popular open-source e-commerce application. I’m sure most users of this application would agree that the day-to-day administration console is very complicated and requires a lot of familiarity and that they use only a small proportion of the features available.
Applications like content management systems can suffer from having too many features and allowing too much control. Most professional organisations like to maintain a consistent and official style across all pages of their website, but in some hands an off-the-shelf CMS might result in a very inconsistent website with a variety of styling mismatches like image sizes, colours, fonts, etc (I’m sure you have seen websites like that). A customised application can limit and control the styling to suit the needs of the organisation.
People often site some large organisation that uses an off the shelf application when they are arguing for an off the shelf application. They will say something like, “Even eBay uses Drupal.” I’m sure they do use it somewhere, but do they use it for their core business? Did eBay choose open-source for their online auctions (there’s plenty of open-source online auction software out there)? The answer is no, they developed their own in house, because their needs are specific and if anyone needs to worry about security, they do.
From my experience as a developer of custom-written applications, I have seen quite a few cases of customers who enquired about custom-written software but chose an off the shelf application, usually for cost reasons, then came back to enquire about modifying the off the shelf application as they found there were things that just didn’t suit their requirements.
Is off the shelf cheaper than custom-written?
Although you could use a standard design template with your off the shelf application, you will most likely want a unique design that matches your organisation’s image. So you will need a designer, but not just any designer, they will have to be familiar with the requirements of the application. If you have some specific needs not covered by the application, you will also need a developer familiar with the application to make the changes for you. If the modifications are big enough you may need developers on staff to support the modifications. You may also need to buy some commercial add-ons to suit your needs. If you need support, you could rely on the user community for that application, or the developer may sell support.
Custom-written will require a developer, possibly ongoing, and a designer. So custom-written is likely to cost more, possibly significantly more, but you should get exactly what you need.
Is off the shelf quicker to deploy than custom-written? It will of course depend on the amount of modification that would need to be done to an off the shelf application to suit your needs.
Summary, which is better? It all comes down to your specific needs and whether an off the shelf package is available that matches your needs, or whether you are willing to compromise and adapt your needs to make an off the shelf package work for you. If you don’t want to compromise and can afford it then custom written software is always the way to go.