When it comes to web development, there’s a choice between using an existing, open source content management system, or building one from scratch. At first, there appears to be an array of advantages with using one over the other, usually depending on what you’re used to.
Through this article I’m going to go over the most salient factors and collate them to help you decide the best choice for you, as a self employed web developer or as a company.
First of all, what area of web development are you most likely to be dealing with? Are you going to be building websites that are information portals and e-commerce systems, or are you going to be maintaining one or two large web applications over the course of so many years? In an imperfect world, most web companies have to develop both to remain profitable.
If the majority of sites that you’ll be creating are for clients who wish to manage their content through an admin section by adding a few pages and products, then going with an existing system like Joomla, is likely to be the best solution, for the main following reasons:
You can get a website up and running quicker
A vanilla website with most of the functionality a client will need is already there. User management, editable content and the ability to add products will already be possible without much additional code required.
Having a popular system in place like Joomla creates a tighter knight development team and makes better business sense. An existing CMS will use the latest coding standards such as MVC, encouraging your developers to adhere to similar coding practices, without causing them to battle over who’s code is better, whether it’s from a coding or business point of view.
Multiple developers using the same framework can understand and pick up each others projects quicker. It also makes it easier to spot less competent developers if they create code in the system that does not quite fit into the same methodology that the CMS is built on.
As the system is open source, it is updated regularly and built upon by experienced development communities. Bugs are regularly fixed and code is optimised, saving the business from having to spend as much time coding common functionality (reinventing the wheel) or re-factoring existing code, the developers equivalent of ground hog day.
If you are using an open source piece of software, you can find developers to employ that are already acquainted with the system, they’ll fit into a team and get off the ground quicker as they pertain to a familiar coding environment.
With a custom CMS, every developer hired will need time to adapt to the system, and will need to fit in with methodologies that aren’t likely to exist outside of the company.
For sites that have specific functionality, outside the scope of a typical e-commerce or information portal, then a custom CMS is likely to be the best choice. Good examples of sites with specific functionality are Youtube, Digg and Facebook. There are very few existing systems that cater for these types of websites, and they’re usually buggy, difficult to maintain, with poor documentation.
The best reasons for using a custom CMS are:
An existing, focused development team, well equipped with the particular system at hand
With an initial investment, the system is built from scratch by your own team. They’ll know the system inside out, and aren’t restricted by existing ideologies. The developers, and clients, won’t become frustrated by some of the quirky ways that an open source system may function. The initial time investment however will reflect onto the cost of the project.
The development team will need to be focused on creating and maintaining formalised design patterns that need to be adhered to. This helps to keep the CMS maintainable by yourself and any new developers that come on board. Developers will not only be using design patterns such as singleton and factory methods, but they’ll also need to understand how they work to maintain or build upon the core code.
No code overheads
All the code in a custom CMS is streamlined, built specifically for a purpose. An open source CMS is likely to have several pieces of functionality that are not required, slowing the overall speed of the site. Speed is especially important for sites like Google and Youtube to maintain maximum usability.
With a CMS built from scratch, your developers are familiar with the system and are able to build bespoke features quicker without having to navigate through a certain design pattern set out by an open source solution. Building additional functionality will create streamlined code and functionality that operates exactly as intended.
No relearning the CMS
Once in a while, an open source system will do an update that affects the way it works and what syntax it’s API uses. This can lead to having to re-familiarise yourself with code and any functionality that may have changed. With a custom CMS built by competent developers, the core of the system is not likely to change much for several years.
The above are the most important factors that come to mind when deciding to use an open source system or not.
For me, it boils down to whether you have a large project that requires maintenance over several years and specific functionality, like a bespoke CRM system. Or whether you’re doing a website over a few months that requires a small amount of additional, bespoke work.
With any website or application, 75% of development time is spent calculating and coding bespoke logic, and that requires competent developers with copious amounts of aptitude!