In order to be deformable and retain its function, you have to build the program in ways that allow it to deform. You have to decouple the various functions. That's why I love Plone so much. Sure, it's alien technology for most, but it's so great I can't stand most CMSs I see being used and marketed as "professional tools".