Photographer Guide· a Bicycle Guide

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.

Get the book →

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
  1. Identify the dimensions of the architecture affected by evolution (technical, data, security, operational, etc.).
  2. Define objective fitness functions for each important architectural characteristic.
  3. Wire those fitness functions into deployment pipelines to automate architectural governance.
  4. Enable incremental change through Continuous Delivery engineering practices.
  5. 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

Additional reading

PrivacyTermsSupport