Chapter 31. Simple Design
The practice of Simple Design is based on the following premises. The complexity of your design should support the current requirements at hand and no more. By keeping designs simple, you can build your software more quickly, maintain it with less pain, and modify the design incrementally by relying on automated developer tests and refactoring (see Figure 31-1).
Figure 31-1. Simple Design depends on refactoring to be able to change the design as requirements change, which, in turn, depends on automated developer tests to ensure that a change in design does not introduce a change in behavior.
Simple Design ...