Implementing Evolutionary Architectures
Published by O'Reilly Media, Inc.
Apply key concepts, build fitness functions, and automate governance
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. 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 online course, based on the second edition of Building Evolutionary Architectures, investigates how to build evolvable systems. It consists of three parts: the mechanics of evolutionary architecture, defining and providing examples and case studies of architectural fitness functions. This course defines fitness functions and provides a number of case studies, based on real projects, of how fitness functions aid architects in evolving and governing architecture. The second part describes the structural aspects of building evolutionary architectures--what architecture styles and coupling characteristics lead to evolvable architectures. The third section, Impact, describes how these two forces--mechanics and structure--intermix to help architects design and govern architectures that can evolve over time.
What you’ll learn and how you can apply it
By the end of this live, online course, you’ll understand:
- How to define an evolutionary architecture
- How to define a fitness function
- How incremental change facilitates building evolutionary architectures
- How governance applies to fitness functions and evolutionary architectures
- How to combine incremental change and fitness functions to automate governance
- The critical difference between adaptability and evolvability
And you'll be able to:
- Discover and define fitness functions
- Build fitness functions for a variety of architecture concerns
- Automate common governance tasks
- Apply evolutionary architecture concepts to future architectures
- Understand the evolutionary implications of migrating architectures
This live event is for you because...
- You are an experienced Software Architect, Lead Engineer, or Developer building medium-to-large scale applications, and you need to understand the evolutionary implications of migrating architectures.
- You are an experienced Software Architect, Lead Engineer, or Developer building medium-to-large scale applications, and you want to understand how to apply evolutionary architecture concepts to future architectures.
Prerequisites
- You have an understanding of basic architectural patterns.
- You have an understanding of modern software engineering practices such as continuous integration and continuous delivery.
- You have worked on several software systems either as a developer or architect.
Recommended preparation:
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Definition (20 minutes)
- Introduction to evolutionary architecture
- Fitness functions
- Incremental change
- Architecture dimensions
Mechanics: Fitness functions (40 minutes)
- Categories
- Examples
- Atomic/Triggered
- Atomic/Continuous
- Holistic/Triggered
- Holistic/Continuous
- Building fitness functions
- Break (10 minutes)
Automating Architectural Governance (50 minutes)
- Types of governance
- Internal structural checks
- Process fitness functions
- Operational fitness functions
- Tools
- BYO fitness function
- Break (10 minutes)
Structure: Designing Evolutionary Architectures (40 minutes)
- Coupling in software architecture
- Connascence and bounded context in architecture
- Patterns and anti-patterns for evolutionary architecture
- Break (10 minutes)
Impact: Combining Mechanics and Structure (50 minutes)
- Case studies of fitness functions "in the wild"
- Using fitness functions as experimental media
- Integration architecture fitness functions
- Cloud-based fitness functions
- Enterprise architecture fitness functions
- Q&A (10 minutes)
Your Instructor
Neal Ford
Neal Ford is a director, software architect, and meme wrangler at Thoughtworks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal’s authored several books, a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developer conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, Nealford.com