This document discusses customizing Alfresco from an agile framework perspective. It begins by outlining different patterns for customizing Alfresco, including using a non-Alfresco framework on top of Alfresco, customizing Surf or Share, and more. It then tells a tale of customizing Alfresco using both the Django framework and the Surf framework. Key differences are highlighted, showing that Django required fewer lines of code but Surf leveraged more of Alfresco's existing functionality. The document concludes with an example of a heavy Share customization for a real-world client site.