Building Evolutionary Architectures, 2nd Edition
by Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage
Chapter 7. Building Evolvable Architectures
Until now, we’ve addressed the two primary aspects of evolutionary architecture—mechanics and structure—separately. Now we have enough context to tie them together.
Many of the concepts we discussed aren’t new ideas but rather old ideas viewed through a new lens. For example, testing has existed for years, but not with the fitness function emphasis on architectural verification. Continuous Delivery defined the idea of deployment pipelines. Evolutionary architecture shows architects how to add governance to that automation.
Many organizations pursue Continuous Delivery practices as a way to increase engineering efficiency for software development, a worthy goal in itself. However, we’re taking the next step, using those capabilities to create something more sophisticated—architectures that evolve with the real world.
So how can developers take advantage of these techniques on projects, both existing and new?
Principles of Evolutionary Architecture
Overarching both mechanics and structure in evolutionary architecture are five general principles. Let’s look at them now.
Last Responsible Moment
The agile development world has long extolled the virtues of last responsible moment: delaying decisions as long as you can, but no longer. Making decisions too early tends toward overengineering, and too late leads to failure to meet architectural goals.
The goal isn’t to unnecessarily delay. Rather, if an architect can find the correct inflection ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access