When planning a web build, an important decision the development team often has to make is the choice between using an existing off-the-shelf product, or building a custom solution.
The decision is such a key one because making the wrong choice at this crucial early stage could end up effectively locking a team into a development cycle that over time becomes more and more costly, and harder and harder to move away from.
For the majority of content-driven websites, the choice we are talking about here is between configurable, off-the-shelf software such as:
- Expression Engine
Or a custom built application, built on the back of an existing web application framework, such as:
- Zend Framework
For this article, we will stick to server-side software, although the same arguments could also be made for and against client-side technologies.
How Standard Is Your Business Domain?
An important activity to undergo when evaluating the choices is to take a look at your business domain and processes, and determine how much they conform to standard practice within your industry.
Consider the following examples of two businesses looking to build an e-commerce system.
Your company sells menswear.
This is all categorisable and comes in a range of variations such as colours and size. You offer free delivery beyond a certain order quantity and operate a discount voucher scheme for users that subscribe to your mailing list.
As this sounds like a fairly standard e-commerce business model, a ready-built platform such as Magento, Shopify or Lemonstand are likely to be suitable.
The standard features allow for product listing, pricing, categorising and stock control. Discount code features will be built in, or purchasable as a paid add-on.
Your company sells food packaging to catering suppliers.
You have bespoke relationships with the individual customers, and they receive variable discounts on different products that are negotiated individually, and only available to the customer in question.
A third-party stock control system acts as the master product data store, and the e-commerce solution needs to pull up-to-date live data from this store.
These behaviours seem non-standard, and, at the time of writing, aren’t available as standard features of any existing e-commerce platforms.
A custom build would be the recommended approach here, as is the case with some of our custom e-commerce web development clients.
Plugins, Modules, Extensions and Workarounds
Of course, with the majority of off-the-shelf CMS solutions, there is the option of enhancing the out-of-the-box functionality through custom add-on development.
This is a valid option, assuming most of the features are already catered for by the chosen platform. If all you need is a few tweaks to the existing software, or a minor set of additional features then this is a reasonable avenue to pursue.
However, if you find yourself in the position of building lots of additional features in the form of plugins and extensions, then the obvious question is what are you really gaining from using the software in the first place?
Can you be sure that over time, you won’t end up needing more and more bolt-ons as your business offering evolves?
Cost, of course, is an important consideration here. If tech teams had unlimited budgets then they wouldn’t be forced to make tough decisions about platforms to choose and features to build. This isn’t the reality of most projects however, and upfront and ongoing costs can be the deciding factors in the success a project.
Out of the blocks, the off-the shelf solution will nearly always take the lead when it comes to budget. Configurable CMS, CRM and E-Commerce solutions can be quick and cheap to get off the ground. Most are affordable, lots are free.
This is clearly appealing to small and medium sized businesses with limited resources. A few days of frontend development plus a few days of learning and administering the backend of the system and the site is up and running, and the costs are low.
It’s important that the real costs of a solution are correctly considered to get a true picture of whether the choice was the right one. The initial build is only part of the picture.
On-Going Development Costs
How much customisation do you think you will need over time? What is the likelihood that the set of features that come with your out-of-the-box solution are going to be enough for the lifetime of your business?
The real cost of a ready-made solution becomes apparent as soon as you need functionality that is in any way non-standard. Off-the-shelf software is built to cater for the broadest set of users possible, and to be usable and configurable by users of a wide range of competence and ability. This broad appeal works in the favour of the software developer, and can come at a price for the business that builds their online presence around the product.
In most cases, the result is a one-size-fits-all solution, with a homogenous set of customisations. Building in customisations for a wide range of use cases means increased complexity and increased on-going development from the core team. It’s just not worth implementing a set of features that will only get in the way of usability for the majority of users.
Returning to our previous menswear shop example, imagine the business expands its range, and now offers customisable T-shirt printing. Customers can pick from standard items in the shop, and provide their own images and text and have the design printed on. There is a supplementary cost which varies depending on image size.
With an off-the-shelf solution, the company’s only option is to employ a module developer to develop a custom plugin to retrofit the new feature. This may mean fighting against certain development conventions baked into the software, and applying workarounds to overcome some of the one-size-fits-all characteristics of the database and admin interface.
The advantage of a custom-built application in this scenario is that from the beginning, the application has been built to purpose and to fit the business domain of the client organisation. If it’s well-built then the database schema will largely reflect the real-world objects and entities that the business processes on a daily-basis, without extra bloat and redundant data. The end-result is more likely to be a well-designed tidy solution that fits neatly into the structure of the application. This in turn has positive implications in terms of stability and extensibility.
To be clear - both scenarios require developer time. But the developer working within the bespoke application can develop stable and extensible code that complements the rest of the application. The off-the-shelf developer on the other hand can find themselves battling against un-yielding markup and over-complex logic in an effort to make the solution fit the software rather than the other way around.
Ease Of Use
Direct financial outlay isn’t the only way to measure cost to the business.
In any successful business, it’s important to keep a close eye on the human processes that are repeated on a daily basis and look for ways to improve efficiency.
A well thought out purpose-built interface is essential for any piece of software that team members could spend hundreds of hours a year operating. It needs to be intuitive and free from noise and help users perform tasks rather than get in the way.
One of the limitations of off-the-shelf software lies in the limited flexibility of the admin interfaces. As with the one-size-fits-all approach to the feature set, software developers also have to provide an interface that allows all users to access all available features. If your business doesn’t use most of these features, you are left with an over-complex control panel with an array of features that will only confuse your users.
You may have the option to remove or hide some of these features, but that again comes with a cost of developer time.
With a bespoke solution, proper consideration can be given to the user paths and frequently repeated actions that are particular to your operation. These should be designed in from the start instead of appearing as an afterthought or a workaround and should be chosen by you, not by a distant developer who has little or no idea about what’s important to your business.
I’m certainly not against ready-made web application solutions. They have been revolutionary for small businesses and tight budgets. In many cases, they can be initially deployed and populated without any developer involvement at all.
Don’t allow yourself to be talked out of a Wordpress build if you’re confident that it’s the right solution to your problem. Development teams should be comfortable working with both approaches - if you suspect the advice you are getting is because of a personal preference then the developers you are talking to you may not be listening to what your business needs and you should look elsewhere.
But equally, it’s important to be aware of their limitations and realise that they are far from being a silver bullet and over time, can become a burden on an operation.
Businesses don’t stand still, and understanding how your organisation can benefit from a well-designed and forward-thinking bespoke build will enable you to make an informed choice when the time comes.