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):
Martin mentions that you start with a simple overall design (instead of BigDesignUpFront, or nothing at all), and RefactorMercilessly as the system emerges.