
Flexible Software Design: Systems Development for Changing Requirements begins by introducing the fundamental concepts of flexibility, explaining the reality of imperfect knowledge and how development participants must change their thinking to implement flexible software. The...

A developer's knowledge of a computing system's requirements is necessarily imperfect because organizations change. Many requirements lie in the future and are unknowable at the time the system is designed and built. To avoid burdensome maintenance costs developers must therefore...