Home > Perspective > Content Management Systems

Content Management Systems

Having worked on a wide variety of content management systems (CMS) over more than ten years, I thought it appropriate to share some observations.  The spectrum of my work includes a custom automation system sans database, a CMS specific to the newspaper industry, Drupal and brief brushes with WordPress.  Finally, during the past two years my primary work is focused on AEM/CQ5 (Adobe Experience Manager).


  1. CMS’s require significant planning and a clear understanding of the needs of your organization
  2. Code quality and consistency keep development smooth and identifying bugs easier
  3. Quality Assurance personnel are indispensable
  4. Rushing to implementation compounds the inherent problems with poor planning in software development

Planning & Preparation

I like the 5P’s to sum this one up, Proper Preparation Prevents Poor Performance. There are myriad requirements that merit the need for CMS’s.  The features of a CMS will only be as good as their implementation.  It goes without saying, but I will anyway, the most expensive option is not necessarily the best.  Understanding the type of content that will be implemented, what devices they will be delivered to and how frequently updates occur are just a few considerations.  Further, the technical requirements for infrastructure will impact the decisions significantly.  One last thing, artificial deadlines will ensure that they are missed.  Conduct a feasibility study before setting any deadlines.

Code Quality

How your development team writes code matters.  A number of elements come into play here such as naming conventions, frameworks, documentation and more.  For the sake of brevity let’s look at the three aforementioned items.  Naming conventions benefit developers in two primary ways.  First, when one developer builds a feature and inevitably introduces a bug, the developer tasked with fixing this bug will save time fixing it.  Second, naming conventions help keep one method focused on one task.  Choosing frameworks isn’t necessarily about which one is best, but once a framework is chosen, be consistent.  And finally, document code with an appropriate format.  For example, Java has Javadoc which is simple and can be applied to virtually any language.

Quality Assurance

Quality Assurance (QA) is more than developers or content contributors sifting through the Web site after it’s published.  Testing plans will provide the benchmark for what the site should be like and automated tests will ensure that those benchmarks are achieved.  QA personnel have an objective view that will uncover oversights and improve the chances that the problems are discovered and resolved before customers are impacted.

Complete the Implementation

Short cuts are generally a recipe for disaster.  The previous steps will provide a framework for what must be done before completing the implementation.  In a nutshell, complete the items outlined in the project plan according to the test plan.  Things that were missed in discovery and planning should be addressed as another phase or the deadline revised.

Final thoughts

The importance of planning is not to be overly rigid and attempt to achieve perfection, but it is helpful for keeping sanity!  There most certainly will be things that are missed in the project plan and a buffer should be allotted for in the plan to mitigate some risk.  A CMS is software and the software development life cycle is applicable to ensure ongoing quality and success.

Categories: Perspective
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: