Creating a content management system either from scratch, or
using pre-existing building blocks, may sound like the ultimate
way to get the exact solution you require.
However, careful analyses often reveals dangerous pitfalls and
serious short comings with many custom built content management
In comparison to today's mature, tested and carefully designed
products, most home-grown systems are quirky, poorly thought-out,
and difficult to maintain.
However, even now many will seriously consider custom development.
Like any IT custom development project, you could be taking on
serious risk when it comes to delivering your project on time
and budget, not to mention the downside of expensive support and
the lack of upgrades in the future.
Two main reasons organisations choose to build
The decision to build rather than buy is frequently based on
the assertion that no off-the-shelf product could possibly meet
the specific business needs of the organisation.
For many developers, customisation efforts quickly mean abandoning
consistent architectures, or processes, in favour of meeting seemingly
complex requirements. Such an approach is short-sighted, paying
no respect to the need for change, and a consistent model to ensure
scalability, security and true-flexibility.
In reality, the information management and publishing requirements
of a broad range of possible applications can be successfully
contained in a well thought out system. If requirements are found
that do not fit the system, instead of developing at a tangent
to meet some specific unusual need (and thereby creating an island
of development investment), we rather prefer to adjust the system,
so the need can be met predictably again and again.
With that in mind:
- A good CMS should offer a dynamic Information Store that allows
any conceivable structure of content to be created. Any number
of meta-data fields can be defined and complex database record
structures can be configured, enabling structured data to be
managed with the same ease as free-form articles. All this without
any custom programming, and in a consistent interface for managing
- The template system must truly separate presentation and content,
and eliminates the need for any programming in order to create
flexible page functionality. This may be made possible through
a system of Skins (the HTML) and Views (the rules that bind
information to presentation), and some form of rendering or
The end result is a template building system with extraordinary
flexibility, enabling complex web applications including online
catalogue based shops, portals and directories to be deployed
rapidly, with no custom-ASP programming.