Один разработчик, который работает на Drupal, рассказал мне следующий подход, который он использует при разработки системы:
1. Разработка модуля отображения информации
2. Разработка модуля функционала
3. Разработка логики контента
Вот более подробно об этих вещах, в особенности 3, мне бы и хотелось узнать.
Эти вещи специфичны для CMS и метафоры, которую использует сайт. Как минимум стоит прочитать
"Информационную архитектуру в интернете".
Для конкретной CMS типа Plone, Drupal и т.д. есть свои книги, в которых раскрывается специфика проектирования (а точнее - конструирования) под них. Например, недавно вышел русский перевод книги по Drupal.