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. This talk, based on my upcoming eponymous book, investigates the family of software architectures that support evolutionary change, along with how to build evolvable systems. Understanding how to evolve architecture requires understanding how different parts of architecture interact; I describe how to achieve appropriate coupling between components and services. Incremental change is critical for the mechanics of evolution; I cover how to build engineering and DevOps practices to support continuous change. Uncontrolled evolution leads to undesirable side effects; I cover how fitness functions build protective, testable scaffolding around critical parts to guide the architecture as it evolves.
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. This talk provides a high-level overview of a different way to think about and build software architecture.
YOU MAY ALSO LIKE:
- Building Evolutionary Architectures (SkillsCast recorded in December 2018)
- Domain-Driven Design in Practice with Michael Plöd (Online Workshop on 20th - 22nd September 2022)
- Functional Domain Models in Practice with Marco Heimeshoff (Online Workshop on 17th - 21st October 2022)
- Java Forum (Online Conference on 31st August 2022)
- Building a Culture to Take Control of Your Software (Online Meetup on 28th June 2022)
- Developer Productivity Engineering - Next Big Thing in Software Development (in London on 29th June 2022)
- Software Architecture in a DevOps World (SkillsCast recorded in February 2022)
- Understanding Microservices: A Guide for the Monolithic Developer (SkillsCast recorded in October 2021)
Building Evolutionary Architectures
Neal Ford is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, magazine articles, video/DVD presentations, and author and/or editor of eight books spanning a variety of subjects and technologies, including the most recent Presentation Patterns and Functional Thinking. He focuses on designing and building of large-scale enterprise applications. He is also an internationally acclaimed speaker, speaking at over 300 developer conferences worldwide, delivering more than 2000 presentations.