Building Evolutionary Architectures • Rebecca Parsons, Neal Ford & James Lewis • GOTO 2023

Discover how to build evolutionary architectures that adapt to change, prioritize cohesion and coupling, and leverage guided evolution, microservices, and continuous delivery to drive innovation and growth.

Key takeaways
  • Evolutionary Architecture: A mindset shift from planning to adaptability, recognizing that systems will change over time and accepting that they will not be perfect.
  • Fitness Functions: A way to analyze and prioritize architectural characteristics, such as cohesion and coupling, to ensure they remain important and easy to change.
  • Cohesion: The degree to which components work together towards a common goal, making it easier to change individual components without affecting the overall system.
  • Coupling: The degree to which components depend on each other, making it harder to change individual components without affecting the overall system.
  • Guided Evolution: A approach to evolutionary architecture that involves defining objectives, identifying the most important architectural characteristics, and making informed design decisions.
  • Architectural Quantum: A scope that needs to be defined and addressed, as it is a key aspect of evolutionary architecture.
  • Conessence: A concept that describes the degree to which components are closely related, making it easier to change individual components without affecting the overall system.
  • Microservices: A style of software architecture that involves breaking down a system into smaller, independent components, but still requires careful consideration of cohesion and coupling.
  • Continuous Delivery: An approach to software development that involves automating the deployment of code changes to production, allowing for faster iteration and adaptation.
  • Meta-Learning: The ability of AI systems to learn from their own learning experiences, enabling them to adapt and improve over time.
  • Self-Organizing Systems: Systems that can adapt and self-organize without the need for explicit design or guidance.