All Software Architecture, All the Time
June 10-13, 2019
San Jose, CA
Please log in

Building evolutionary architecture

Neal Ford (ThoughtWorks)
Monday, June 10 & Tuesday, June 11,
9:00am - 5:00pm
Location: 211 A / 211 B
Average rating: ****.
(4.67, 3 ratings)

Participants should plan to attend both days of training course. Note: to attend training courses, you must be registered for a Platinum or Training pass; does not include access to tutorials on Tuesday.

Neal Ford offers a new perspective on evolving architecture, showing you how to make “evolvability” a first-class “-ility” in your software projects.

What you'll learn, and how you can apply it

By the end of this two-day training course, you'll understand:

  • The concepts of building architectures that support constant change, both from business and disruptive technology changes
  • The role of engineering practices such as continuous delivery and DevOps and how they apply to evolutionary architectures
  • How to discover, define, and execute fitness functions to preserve architectural characteristics as the system evolves
  • How to analyze business problems to discern architectural characteristics
  • How code reuse impacts evolvability
  • How enterprise architecture must evolve

And you'll be able to:

  • Use ATAM utility trees to define and track architectural characteristics
  • Define deployment pipeline stages to apply fitness functions
  • Choose architectural patterns based on business, nonfunctional requirements, and inherent evolvability
  • Compare and contrast the evolvability of disparate architectural patterns and styles
  • Define automated governance activities
  • Protect a variety of architecture characteristics to prevent degradation over time

For a variety of reasons, parts of software systems resist change, becoming more brittle and intractable over time. However, the world we inhabit has exactly the opposite characteristic: the software development ecosystem exists in a state of dynamic equilibrium. New tools, techniques, approaches, and frameworks constantly impact this equilibrium in unanticipated ways. While this creates a headache for brittle systems, it also provides the ultimate solution. Over the last few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. An evolutionary architecture supports building systems that allow architects and developers to make sweeping changes to the most important parts of their systems with confidence.

Neal Ford offers a new perspective on evolving architecture, showing you how to make “evolvability” a first-class “-ility” in your software projects. Neal walks you through a logical framework for identifying and protecting parts of the architecture that evolve, which helps you determine the important dimensions, define fitness functions to ensure compliance, and use incremental change engineering practices such as deployment pipelines and other continuous delivery practices to automatically verify fitness. Along the way, he covers practices that allow architects and engineers to build continual architectures that evolve cleanly without the need for a crystal ball. You’ll leave able to build systems that support ongoing change, armed with the confidence that the important qualities won’t degrade.


Day 1

  • Introduction to evolutionary architecture
  • Identifying architectural dimensions
  • Exercise: Find “-ilities” using architecture katas
  • Fitness functions
  • Types of fitness functions
  • Dimensions of fitness functions
  • Categories of fitness functions
  • Exercise: Write fitness functions for code quality and afferent/efferent coupling

Day 2

  • Exercise: Define fitness functions for important dimensions
  • Incremental change for evolutionary architecture
  • Exercise: Create a deployment pipeline plan to apply fitness functions
  • Understanding architecture patterns
  • Exercise: Define architecture patterns via katas
  • Ongoing discovery and maintenance of fitness functions
  • The intersection of enterprise and evolutionary architecture
  • Exercise: Automate governance
  • Selling evolutionary architecture to the business

About your instructor

Photo of Neal Ford

Neal Ford is a director, software architect, and meme wrangler at ThoughtWorks, a global IT consultancy that thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. Neal focuses on designing and building large-scale enterprise applications. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal has authored magazine articles, seven books (and counting), and dozens of video presentations and has spoken at hundreds of developers conferences worldwide on the topics of software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website at He welcomes feedback and can be reached at

Twitter for neal4d

Conference registration

Get the Platinum pass or the Training pass to add this course to your package.