Partial profile · Technical Reference — full narrative profile planned
Building Evolutionary Architectures Automated Software Governance, 2nd Edition
Software architectures can be deliberately designed to evolve gracefully over time by combining automated governance through fitness functions, incremental change enabled by Continuous Delivery, and appropriately decoupled structural design.
This is a hands-on technical/engineering book — we're building it into Stepcode (tool-by-tool how-to), with a profile to follow.
What it’s about
Building Evolutionary Architectures argues that in a world of constant technological and business change, treating architecture as a fixed, up-front artifact is a losing strategy. Instead, the authors—veteran ThoughtWorks technologists—show how to build systems that support guided, incremental change across multiple dimensions. The core innovation is the 'fitness function': an objective, automatable mechanism (borrowed from evolutionary computing) that continuously verifies important architectural characteristics, turning ad hoc governance into automated, testable guardrails wired into deployment pipelines. Combining engineering mechanics (fitness functions, deployment pipelines, incremental change) with structural principles (appropriate coupling, connascence, bounded contexts, architectural quanta, contracts), the book gives architects a holistic method to prevent 'bit rot,' respond to unpredictable ecosystems, and align teams (via Conway's Law) so architecture can keep pace with change. Rich with real-world case studies from a fictional-but-real 'PenultimateWidgets,' it is a practical roadmap for making evolvability a first-class architectural concern.
The through-line
- Who it’s for
- A software architect (or anyone making architectural decisions) who wants to build systems that age gracefully and can adapt to constant business and technology change.
- The problem
- Software architectures degrade over time (bit rot) and cannot keep pace with rapid business and technology change, while manual governance fails to police the myriad moving parts. The architect feels anxious and defensive about change—torn between the fear of breaking a fragile system and the pressure to deliver new capabilities quickly.
- The plan
- Identify the dimensions of the architecture affected by evolution (technical, data, security, operational, etc.).
- Define objective fitness functions for each important architectural characteristic.
- Wire those fitness functions into deployment pipelines to automate architectural governance.
- Enable incremental change through Continuous Delivery engineering practices.
- Structure the architecture and teams for appropriate coupling using bounded contexts, quanta, and loose contracts.
- The payoff
- The architecture evolves confidently across multiple dimensions without breaking important characteristics. · Governance is automated, giving continual assurance that quality, security, and design principles hold. · Teams respond quickly to business and technology change, gaining competitive advantage through fast cycle time and advanced capabilities like hypothesis-driven development.
See our guide
Related profiles we’ve built
- Designing Data-Intensive Applications →
- The Phoenix Project →
- Building Microservices, 2nd Edition (Early Release, Raw and Unedited) →
- Beginners Guide to Google Apps Script 1 - Sheets (Step-By-Step Guides to Google Apps Script) →
- Excel 2019 Power Programming with VBA →
- Facts and fallacies of software engineering →
- Going GAS From VBA to Google Apps Script →
- Google Apps Script, 2nd Edition Web Application Development Essentials →
Additional reading
- Continuous Delivery · Jez Humble and Dave Farley
Provides the foundational engineering practices, especially the concept of the deployment pipeline, that are prerequisites for implementing the 'incremental change' aspect of evolutionary architecture.