Chapter 42. Evolutionary Design

To engage in a truly iterative development process (not just a waterfall process with time slices), the design of the system must evolve as new requirements are built out. This is achieved by starting off with a simple design and changing that design only when the requirements force that change. The mechanism that enables changing a design is refactoring, which is, in turn, enabled by automated developer tests. Figure 42-1 shows the relationship of the Evolutionary Design pattern to the practices of Simple Design, Refactoring, and Automated Developer Tests.

Evolutionary Design is built upon the practices of Simple Design, Refactoring, and Automated Developer Tests.

Figure 42-1. Evolutionary Design is built upon the practices ...

Get Agile Adoption Patterns: A Roadmap to Organizational Success now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.