You are here

Design for Change


"Design for Change" refers to a collection of concepts and methods focused on one overriding fact:

Everything is bound to change.

This is an essential understanding for everyone on the problem solving team. Everything about the problem at hand will change. The customer needs, the technology supporting the solution, the regulatory environment, the user expectations — all of these things will change in ways that cannot be anticipated (and many that can). You must plan for building adaptability into the problem solution. Timely, high-quality, reasonably priced adaptation must be built into every solution from the start.

This implies a corollary concept:

The first item of every requirements document, whether written down or not, is:

All other requirements are subject to change.

The result is that flexibility and adaptability are the core values for a problem solving organization and key attributes when evaluating a design.

It is often claimed that building in this much flexibility is fine for "other" projects but the costs are just too great on "this" project. We just need to get it done. We will do those other things next time.

The trouble with this argument is every product taken to market is built several times before it is ever released. The creation of the first version may be slowed a bit by considering and building in flexibility — but if what is released is actually the second (or third or fourth) iteration of a product then this extra effort is paid back many fold in the creation of the released solution being built.

Flexibility cannot be put into a product after the fact. It has to be a part of the conceptual design. It has to be a core value or it will just be an afterthought.