11 Creating Evolvable Architectures

Requirements volatility—changing customer demands—is an unavoidable challenge for software projects. Product requirements and context will change over time; your application must change as well. But changing requirements can cause instability and derail development.

Managers try to deal with requirements volatility using iterative development processes like Agile development (discussed in the next chapter). You can do your part to accommodate changing requirements by building evolvable architectures. Evolvable architectures eschew complexity, the enemy of evolvability.

This chapter will teach you techniques that can make your software simpler and thus easier to evolve. Paradoxically, achieving simplicity ...

Get The Missing README 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.