Find out more about our consulting services. McLean. Boston. New York.
So you are at the beginning stages of your new content management system (CMS) implementation project. You are finally going to get rid of the very painful, homegrown content management system you are currently using. Your head is filled with dreams of eliminating all of your manual processes and replacing them with fully automated integration points between your shiny new CMS and your entire hodgepodge of legacy systems.
As you approach this implementation project it is important to carefully consider each integration point and really evaluate the potential tradeoffs to determine if an automated integration is necessary. Automated integrations can carry a number of hidden costs.
The rise of XML, HTTP Web Services and Software as a Service (SaaS) has made communications between back end systems easier than ever. Proprietary data formats are becoming a thing of the past. Application Programming Interfaces are more and more available. Also, modern CMSes are making it easier and easier to integrate custom code in to your site. All of this leads to an increased desire for automating and integrating disparate systems.
A few simple examples can illustrate the issues involved. First, let’s say that you would like to have a page on your new site that lists contact information for key staff members. You already have an internal, home-grown Microsoft Access database to manage staff information. You have just acquired a new CMS built on top of Microsoft SQL Server. You think it would be great to automatically display that information from your internal system, with no manual intervention. So it should be pretty easy – right?
On the surface, the integration seems very straightforward. It wouldn’t take long to build a proof of concept showing that it is possible to move the data from the internal system to your CMS. You will only be displaying data, so it will be a read-only data pull. But as you look more closely, you must consider a number of questions:
As you can see, a simple integration with a small back end system can generate a lot of questions and a lot of dependent functional and technical requirements. Often times when people envision simple integrations like this they neglect to think through the possible consequences. People like to imagine being on the “happy path,” where everything works correctly.
When faced with a set of questions like this it is time to really consider the options. This leads to a different set of questions.
Any integration is a trade off. Usually the point of back end system integrations with your CMS is that you are willing to spend some time up front, developing and writing the code to handle it. That pays off in the long run through increased accuracy and decreased maintenance costs. Sometimes these decisions are no brainers: if you are selling products, obviously you will integrate your website with your back-end product management database, because you would never enter all of your products in manually.
But sometimes the decision is less clear. Is the requirements gathering, development, testing, monitoring and maintenance (and increased application complexity) worth the benefits gained from the integration? It is important to understand everything that can go in to a system integration effort before you can accurately answer that question.
Frequently, the best solution is to use a phased approach. Keep things simple initially. Maybe the first iteration of your new CMS-powered web site will only include one or two key integration points. If you can, defer the other suggested integrations to a later phase. That way you can concentrate your time on the re-design and implementation of your website. And you will be able to produce a new site quicker and show results sooner. Reduced complexity will also lead to a more reliable first version of your site. Over time you can add (or remove) integration points as you see fit. You may find that a manual process just isn’t working, or you may find that a system integration can be replaced by a manual process.
Just make sure that you really take the time to fully investigate all of the hidden costs of what at first blush seems to be a “simple” data integration.
Lead Web Application Developer