What CMS? A developers perspective
A number of factors are important when selecting a CMS that's the best fit for you. In this article, I want to highlight the things that I think are important from my perspective as a website developer.
What is a CMS?
It's a Content Management System. This term is probably a bit too loose. In my experience, most digital people, when they think CMS, think of a system for managing content on article-based sites. By this I mean sites with pages, articles, blogs, resources and the like. This is the type of site I am talking about in this article. Not pure ecommerce sites or sites that provide a specific function (eg, a fundraising solution like fundraise.unicef.org.uk). If you would like to create a site like this, then you probably need either an ecommerce product or a custom build.
Just as an aside, us devs and designers at Chameleon pride ourselves on our custom build heritage and love making highly innovative sites from scratch (or based on a framework). That said, there is no need to reinvent the wheel for sites that don't need a custom build - that's where products come in!
What does your site need to do?
This is obviously the most important factor and the place you should start from. Some devs start from 'my favourite CMS is X so I'll use that to build your site'. This is totally back-to-front, as CMS's are not development frameworks but software that has been built to perform a specific task. You would not use a toaster to warm your soup up, but I suppose you could with a lot of faffing around and potential for disaster.
Back to your site and what it needs to do. If your site is purely about content and not much else then please skip ahead as there are tons of CMS products to choose from nowadays that all have a great feature list and hence might be suitable.
If your site needs to do a few custom things that aren't straight out of the box (or available in good quality modules) then we'll need to consider how easy it is to extend and integrate with the CMS package. Some CMS's are better then others in this respect.As an end user, you might not consider this as important, but it is very important to us devs. A CMS package with a good API (Application Programming Interface), documentation and software development kit will help us to develop a more stable, and in the long term easier to maintain, site. This translates for you into lower costs and greater flexibility for your web presence.
The next factor to consider is what skills your team has in-house. Your content administrators are really important as these guys will be using the new site every single day. Our job is to create a site for you that looks great, and the best way to do this is to lock the templates down so the design stays consistent and looks good throughout. However, if your editors have HTML skills, then they may like a bit more flexibility with the templates.
Administration usability is also a vital factor. More technical users are likely to be more forgiving with a clunky interface if they have greater flexibility. A non-technical user will want a easy to use interface which can help them get their job done. I don't want to get into naming particular CMS packages in this article, but some are definitely easier to use than others!
Finally, are you thinking of taking the site maintenance in house? If so, then you probably need to match the CMS technology with your in-house skills or get some training scheduled :)
Versioning and deployment
It's vital that we know where a site is in terms of functionality and layout so that we can confidently deploy changes to your live environment, easily rollback any potential problems and keep a multiserver environment synced with the exact same code base. Again, this is easier with some CMS packages than with others.
There are other important factors such as cost, product roadmap and product support (official and community based) to name a few. However, hopefully I've given you a better understanding of what a developer looks for in a great CMS package. We don't like 'bending' a product to do something it wasn't built for. It's essential that we make the end user's admin job as easy as possible, and finally, we like a nice clean versioning and deployment process so your site is stable.