Building evolutionary architectures
Most people assume architectures are hard to change. Evolutionary architecture is an approach to overturning this assumption. Join Mike Mason and Zhamak Dehghani to explore the family of software architectures that support evolutionary change and learn how to build evolvable systems. You'll discover a different way to think about software architecture.
Talk Title | Building evolutionary architectures |
Speakers | Mike Mason (ThoughtWorks), Zhamak Dehghani (ThoughtWorks) |
Conference | O’Reilly Open Source Convention |
Conf Tag | Put open source to work |
Location | Portland, Oregon |
Date | July 16-19, 2018 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
For many years, software architecture was described as the “parts that are hard to change later,” but then microservices showed that if architects build evolvability into the architecture, change becomes easier. Evolutionary architecture is an approach that supports incremental, guided change across multiple dimensions. The software development ecosystem exists in a state of dynamic equilibrium, where any new tool, framework, or technique leads to disruption and the establishment of a new equilibrium. Predictability is impossible when the foundation architects plan against changes constantly in unexpected ways. Instead, prefer evolvability over predictability. Mike Mason and Zhamak Dehghani explore the family of software architectures that support evolutionary change and demonstrate how to build evolvable systems. Understanding how to evolve architecture requires understanding how different parts of architecture interact. You’ll learn how to achieve appropriate coupling between components and services. And because incremental change is critical for the mechanics of evolution, Mike and Zhamak walk you through engineering and DevOps practices to support continuous change. Along the way, you’ll see how fitness functions build protective, testable scaffolding around critical parts to guide the architecture as it evolves. Outline: