Dynamic Design is a term coined in MartinFowler's "Keeping Software Soft" article in the December 1998 issue of the DistributedComputing magazine.
It can be achieved with a mixture of ExtremeProgramming practices (...for example):
- Short Code-Compile-Debug cycle (...typical of Smalltalk development environments).
- RefactorMercilessly.
Martin mentions that you start with a simple overall design (instead of BigDesignUpFront, or nothing at all), and RefactorMercilessly as the system emerges.