The idea that architecture can support change was described by Neal Ford, Rebecca Parsons, and Pat Kua in 2017 as evolutionary architecture. How do we enable this kind of evolution?
Architectural goals and constraints change independently of functional expectations. Fitness functions describe how close an architecture is to achieving an objective goal. During test-driven development, we write tests to verify that features conform to desired business outcomes; we can also write fitness functions that measure and monitor a system’s alignment to architectural goals as they evolve.
In order for technology to deliver lasting business value, it must be adaptable. Prose enterprise architecture standards or rigid architecture frameworks often don’t have the flexibility to support constant change. Regardless of application architectures (monolith, microservices, microkernel, etc.) or business architecture, fitness function–driven development can introduce continuous feedback for architectural conformance and inform the development process as it happens rather than after the fact.
Architecture can be expressed and tested as code, in a pipeline, in the same way we express and test business capability and infrastructure as code. The concept of architecture as code is a tremendous leap for most traditional architecture and development teams, challenging long-standing perceptions and mindsets.
Paula Paul and Cassandra Shum (ThoughtWorks) share adventures in the enterprise as they take architects and engineers on a journey toward fitness function–driven development, with real-world hurdles and unexpected insights, as they rethink the connection between architecture and business value in a digital world.
- Title: Architecture as code: Objective measures of value in a changing world
- Release date: December 2019
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 0636920362142
You might also like
Technology Strategy Patterns
Technologists who want their ideas heard, understood, and funded are often told to speak the language …
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …
Microservices Patterns Video Edition
"A comprehensive overview of the challenges teams face when moving to microservices, with industry-tested solutions to …
Semantic Software Design
With this practical book, architects, CTOs, and CIOs will learn a set of patterns for the …