By: B. Foote, J. Yoder
Published in: PLoPD2
Pages: 295-314
Category: Design Process
Summary: Shows how the forces that drive software development lead to more reflective systems.
Url: http://www.laputan.org/metamorphosis/metamorphosis.html
Pages: 298-302
Build systems to adapt to changing user requirements. Allow people to tailor systems to meet their needs. Allow systems to change in a series of small, controlled steps to stay the potential upheaval resulting from massive changes too long deferred. Use Flexible Foundations.
Pages: 302-306
Building software with a flexible foundation helps resolve the need for the continual, incremental evolution described in Software Tectonics. Allow tools, languages, or frameworks to manipulate themselves; that is, build them out of first-class objects. This allows them to co-evolve with the system.
Pages: 307-312
Provide mechanisms for augmenting the behavior of an object or system without changing its fundamental interface or behavior. When applications and substrates are built from objects, they can evolve together as requirements change.