As you work within software engineering environment, you will realise that a single software solution solving all business problems simply does not exist.
A typical Content Management System (CMS) tries to do exactly that and that’s why every single CMS sooner or later fails to deliver.
Here are some practical reasons why you should not attempt to develop your own CMS.
It won’t meet users’ needs
Chances are that the CMS you build will not work for the businesses you target, as you are unlikely to have a wide enough view upon the industry’s needs, unless you are very experienced.
Because of this reason you will find yourself all the time having to extend your solution to accommodate the needs of the new clients you find.
This defeats the purpose of owning an off-the-shelf solution which would automatically work for your next client and simply require an appropriate theme to make it look and feel right.
It’s too much work
The idea of having a pre-built CMS arose from the notion that it’s less work to be customising an existing solution, rather than building from scratch every time a customer needs a CMS.
In reality however, to build even a semi-appropriate CMS requires:
- a substantial development effort
- much thinking from User Experience point of view
- significant amount of testing
- catering for many different types of user flows and scenarios
- dealing with all types of content publishing online
- considerations about deployment and support
- security concerns
It won’t be a standard solution
On top of the above difficulties, you are also going to come across various complications on how to make any working solution you come up with conform to various standards and guidelines such as the ones from W3C.
This is likely to be a fairly complicated matter to achieve and will require in-depth knowledge of all those standards.
Furthermore, your solution ought to be future proof in this respect and easy to change so that it can be made to be conforming with future emerging standards, such as HTML5.
It won’t be extendible fast enough
If you are building your own solution, it is unlikely to be easy to extend fast enough to satisfying your client’s requirements, even if it is using a plug-in architecture.
The reasons for this will be because you are unlikely to have enough resources available to develop, deploy, test and make components reusable for future needs.
You are also likely to be working on specific scenarios, rather than addressing a more generic problem, so your extensions are likely not to be easily reusable from client to client.
It won’t be tested well enough
A CMS which has been in use for 5 years is likely to have gone through very rigorous user scrutinisation and feedback by now.
Your new CMS will be fresh of the boil, featuring many bugs which are hard to test, unearth, replicate and fix.
All these bugs will need to be fixed if your product is to see long term success.
This means more time spent on:
- regression testing
- issuing out bug fixes and updates
- dealing with feedback and bug reports
- having unhappy customers who are slowly losing faith in your product
Do you really need to be spending time on this, or is your time better invested working with a well tested solution which you might be extending for a particular purpose?
It won’t be easily changeable
This is the main point that made me want to write this article, as I want to change my own CMS, but now have to come up with my own future proofing solution for it.
The main reason is the fact that some of the well ranked URLs on my site might have to change under the new solution.
This is a really bad idea from SEO point of view as the site is likely to lose out on some interesting Google ranking.
The only solution is to spend more time writing .htaccess rules to ensure that the old URLs are redirecting to new URLs in the most appropriate manner and making sure that Google does not see the two URLs as duplicated content.
It won’t add any value
Probably one of the most important points to make is that the work you might want to do on building your own CMS is likely to be a simple replication of already well developed functionality, existing for free out there on the web, and meeting all the above requirements.
So the main question to ask yourself is: ‘Why am I really trying to re-solve a problem that has already been solved before?’
If you can really find a good enough reason for this and think that you have the resources to do it better, then go-ahead and develop your own CMS.
Chances are that the invested effort will not produce anything significantly better than an already existing solution on the market.
Create content, not functionality
For most part you are better off using your valuable time creating valuable content, rather than invaluable functionality.
Using an existing platform, which is altered to suit a particular need is a much easier and saner approach than building something from scratch.
If you can populate an existing CMS with good content, it will be much better than building a new CMS with poor content inside it, as the time is likely to be dedicated to building the functionality, rather than writing the content.
If you are thinking of embarking on the road of custom building a software of any kind, you are best off thinking of a fairly simple, specific solution for a particular problem.
Building a functional CMS is actually one of the most complicated tasks in the arena of online tools, and by no means a good place to start from.
You are also going to be in direct competition with million and one other CMS solutions, including many excellent ones such as Word Press, all the time.
The real question is: ‘Is it worth it and how does your solution differ from already existing, well-tested and fully functioning CMSs on the market?’