Building Web Content Management Systems

For the past 10 years, I've been developing content management systems (CMS) in ColdFusion and ASP. The primary CMS that I developed is called the Inettool. The Inettool is used by Memorial Sloan Kettering Cancer Center (MSKCC) to build and maintain their external and internal websites. A web form building tool, which is also part of Inettool, is used by MSKCC's patient portal (http://my.mskcc.org) for managing a multi-step registration process.

When I started building the Inettool there were no viable 'off the shelf' CMS solutions. Almost all the existing popular CMS solutions, such as Vignette and Interwoven, were proprietary and expensive. The open source CMS options were in the beginning stages of development. A lot of developers, including me, decided to 'build it themselves'. Over the last decade I have seen a lot of homegrown solutions that just don't work right. The users and sometimes even the developer are pretty frustrated. Even though the Inettool is successfully being used by MSKCC, I've still come up against the challenges of continually maintaining and customizing the Inettool.

Every CMS has to be 'customized'. The real question is 'how much does it need be customized?'. The next question is 'how easy is it to customize?'. Well, if it's a homegrown application then almost every aspect is customized since the entire application is custom built. Also, every customization starts out to be a pretty minor change but as gradually more and more functionality is added, a simple customization can become very difficult to maintain.

Finally, I saw the light, which is 'building it yourself' is not the best solution. An open source CMS, like Drupal, is the best way to go. There are hundreds or even thousands of developers, especially with Drupal, trying to build and accomplish the same thing -- a usable and maintainable CMS. Drupal is amazing because the core framework's architecture is designed to make it easy for developers to create and also contribute custom modules to the Drupal community.

Why Drupal?

Drupal gives you the ability to build and maintain your website exactly how you want it without being locked into a proprietary and potentially costly CMS. The Drupal community has created a framework that everyone and anyone can use to build their websites. Drupal's open source philosophy has created a product that surpasses any proprietary CMS.

I have spent ten years building a custom 'proprietary' content management tool and it is with this experience that I have come to understand that Drupal is a great CMS solution. Drupal is usually called a lightweight modularized content management Framework (CMF) instead of a CMS because it provides a base to build on; it is not an end all, limited and restricted CMS solution. At the core, Drupal allows anyone to customize and shape their CMS to suit their needs.

My goal is to provide my clients with a usable and maintainable CMS that addresses all their current and future needs. Building something that is usable and works is my first priority. My second priority is to make sure the system is maintainable by anyone, whether it's me providing long-term support, a client's in-house staff, or another consultant/developer. The Drupal community has implemented all the important software development's best practices, including coding standards, end user and API documentation, issue tracking, and unit testing. My job as a Drupal developer is to implement these best practices to ensure that my client's website is usable, maintainable, and finally can grow with the Drupal community.

I am the first to admit that I am late comer to open source and Drupal. At the same time I have a lot experience building Content Management Tools and I am looking forward to contributing a lot to Drupal.