There has been much written on CMS vendor websites by marketing gurus on how to get the best Return On Investment, or ROI, on Content Management Software. There are also a number of good articles that give good coverage on the various aspects of your investment that you should consider. From my mostly infrastructure viewpoint I see allot of areas where the ROI impact is diminished because certain aspects are not considered fully when selecting the CMS or supporting software. Most papers on your ROI mention things like maintenance and hardware costs, but there are a number of other areas where you can look to make sure that you are not overlooking a drain on your ROI.
Hardware and Software
Hardware is often mentioned, it makes sense that the more servers you need to use the more the total hardware costs and their future maintenance will be. Also to be considered is the complexity of the implementation through having more servers in it and the impact on how you manage that. Consider what it will take to make your application perform within your requirements and more importantly to what hardware you really require with regard to your organizations Service Level Agreements.
When it comes to software, most Content Management Systems require some 3rd party software. Each item of 3rd party software that is required has a cost associated with it, Oracle or SQL Server? Windows or Linux? Each one has a cost not only in the purchase of a license, but also in configuration and maintenance. For instance, in my experience, Oracle is much harder to get performing correctly than say SQL Server. Having worked for Oracle in the past, I know an Oracle database can perform well within what you need for a CMS, but you will need the DBA to set it up for you and DBAs are expensive.
After such obvious 3rd party software as the operating system there are other things like file replication software, small custom solutions, scripts, utilities etc. Each one will effect the money you need to spend on the solution. Your IT team is often used to finding technical solutions to a problem without thinking about the ROI of what they are doing. Does the solution they need to solve the problem prove to be complex, costly to maintain and unreliable or can the CMS do it for you?
Installation & Upgrades
Specialist software often requires specialists to install the software for you, but some specialist software does not require specialists to do it all or even anything at all. Costs of installation and upgrades are in people and time. Who needs to complete it, what do they cost and how much time will they take. Consider the amount of people available in the market to undertake the upgrade or install tasks and the quality that they can deliver. I would rather have a consultant take two days to do a job that another can do in one day, but actually do a really quality install. Make a trade off in the resources you will need to get the job done and to the level you require.
Two points on this; complexity and re-usability… Too often configuration of complex applications is in itself complex, but that does not have to be so. Be sure that configuration is as straight-forward as it can be, it will lower costs of maintaining servers and increase good things like uptime (people will make fewer mistakes). Re-usability is key to deploying large applications; lack of re-usability in configuration (e.g. hard-coded paths) will mean an increase in configuration mistakes between servers and an overall higher cost of maintaining large sets of differing configuration.
I mentioned about the extra cost of having complex configuration, but the complexity of the implementation will affect more cost. All the 3rd party software you needed for your implementation has to be maintained, all the connections between servers, all the interfaces etc. We can reduce the cost of all these through effective IT procedures and you should look if the CMS software that provides solutions for helping with those procedures. Monitoring through SNMP is one way a CMS application can help you maintain it, using standard technologies that integrate well with existing tools an IT team might already have is another.
One aspect to consider is who will maintain your application? Do you need a specialist or more than one? Do they have the time to maintain the application? Keeping it alive is one thing, making it work for you is another. To get a specialist, do they need training and who do they get that training from? And the training should not just include the CMS but also all the 3rd party software you needed too as well as training on the implementation you built; it will be different to all other implementations out there because it is the one that suits you.
Nearly all vendors offer Support contracts to help you with problems with the software. In any typical implementation there will be parts that you have built yourself. These might be as simple as a template but could be as complex as a custom CRM integration. Typically neither of these two things fall under what a vendor support team would support. They support that you can write templates and the API that you interact with but they probably won’t support you getting your template to work how you wanted (unless they are really nice). Product versus Implementation is important to consider. If you needed to make a custom part of the implementation you need to be able to support that yourself or via the implementation partner who created it for you. If you never had to make that custom part of the implementation because it already existed in your CMS product, it will be supported by the vendor support team.
And so what if you had to create a CRM integration? You should be able to feed that back to the vendor so that they can include it in the product. How close are you to the enhancement request process?