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 second part covers design guidelines, stable identifiers, stable information structures, the Generic Entity Cloud concept, and the regulation that prevents IT intervention. Part three relates strategic planning to flexible systems. It examines the elicitation of requirements and the relevance of agile methods in a flexible environment. In part four, the book details the flexible UniverSIS system and explains the applications and extensions of the Generic Entity Cloud tools.