O Básico
Construir produtos para cada feature principal
Para toda feature do site que pôde ser reusada em um outro site, construir um produto para isto. Por exemplo, eu procurei recentemente um site de Plone que permitisse que o Plone usasse a feature de “enviar ao amigo” para alguma página, baseada no URL, baseado não apenas no conteúdo do Plone. Isto requereu somente a mudança de 3 skins do CMFPlone, e pude customizar para este site. Alternativamente, eu escolhi separá-lo e colocá-lo fora do produto SendToURL, permitindo que eu o adicione, em um site imediatamente. E, se eu quiser customizar mais estes skins para um outro local, eu posso fazer assim:
Construir um produto de site para customizaçao de sites
Para o próprio site, construir “um produto de site” depender muito menos, de scripts de instalação, de gráficos, de skins, etc. mantenha esta informação, que é muito específica do site, nas features.
Evitar métodos, scripts, externos desconectados, etc.
Métodos externos ou outros tipos de páginas modelo ou scripts que são manipulados fora de seu ZODB acima são desconectados e duros de manter. Então faça-o parte da featute de seus produtos, ou se forem somente para o próprio site, parte de seu produto do site.