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.

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

Business Value

Evolutionary Design, ...

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

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.