1. Getting timely requirements from business
This common concern of any technical project can be especially fatal in CMS implementations. Timely requirements are not intended for waterfall models by getting all requirements in, early on, but means iterative delivery of requirements needs to be done in a timely fashion. In instances of back-loaded efforts and large backlogs owing to late requirements, an agile approach is more common in project execution.
How to avoid: Provide an expected delivery schedule based on the appropriate activities. If the delay in receiving requirements still occurs, pick up the next priority task to avoid inactivity. This could get quite tricky but set expectations with business stakeholders early on and execute proper change management processes.
2. Poor understanding leads to unrealistic expectations
Not understanding the modular and editorial driven nature of CMS tools causes business and IT stakeholders to be on two different galaxies in terms of expectations. This stems largely from the atypical approach CMS tools use to address modular functionality compared to other types of enterprise solutions.
How to avoid: Educate business users on the concept of CMS and content-centric solutions on a conceptual level as well as a detailed, tool-specific level.
3. Performance and caching unaccounted for early in the project
Ensuring proper performance on your web pages is an exercise often left to the final weeks of the project. While performance testing is best done at the end when most functionality and content is user-ready, taking the time to ensure there are no surprises when you get to performance testing is rarely done.
How to avoid: Consider cache and performance implications throughout the project. This can be done through proper analysis of how the content is rendered as well as with all related assets. Most CMS tools excel at this analysis by providing features for optimization like CSS Minification and JS Compression.
4. Highly customized and inflexible components lead to a large number of modules that require constant maintenance
If you create every component specifically to satisfy one set of features without considering existing or future components, you will end up with hundreds of components which duplicate work.
How to avoid: Analyze new requests in light of existing components to avoid duplications and dependencies. Understand that new features or functionality do not necessarily require creating a new component.
5. The balance between preset and free form templates
Templates with preset components might limit authors from adding or removing components, but free form templates might give too much freedom that leads to an inconsistent look and feel.
How to avoid: Define an appropriate set of templates. In an ideal environment, your application should offer a combination of preset and free form templates. Reserve the preset templates for specific pages like articles or press releases and use the free-form templates for more generic pages like sections or landing pages.
6. Components with dynamic data limit caching options
An easy example of dynamic data that limits caching options would be personalization on components. Such dynamic rendering prevents HTML cache from being used because one user will view another user’s personalized rendering of that component.
How to avoid: Content-centric solutions usually minimize the use of personalization elements which are almost inevitable in today’s digital practice. To utilize personalization while still taking advantage of HTML cache, dynamic data should be delivered using AJAX.
7. Permissions and connection issues become too expensive
This very common issue occurs in every type of software project, but can be especially frightening in content management systems because of the modular delivery nature of those implementations.
How to avoid: Turn around for permission and connection issues should be considered high priority. Users from all over the globe should have adequate access and proper bandwidth to deliver effectively.