Goodreads helps you keep track of books you want to read.
Start by marking “Building Evolutionary Architectures: Support Constant Change” as Want to Read:
Building Evolutionary Architectures: Support Constant Change
Enlarge cover
Rate this book
Clear rating
Open Preview

Building Evolutionary Architectures: Support Constant Change

by
3.74  ·  Rating details ·  562 ratings  ·  62 reviews
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past 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 ...more
Paperback, 190 pages
Published October 13th 2017 by O'Reilly Media
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Building Evolutionary Architectures, please sign up.

Be the first to ask a question about Building Evolutionary Architectures

Community Reviews

Showing 1-30
Average rating 3.74  · 
Rating details
 ·  562 ratings  ·  62 reviews


More filters
 | 
Sort order
Start your review of Building Evolutionary Architectures: Support Constant Change
Emre Sevinç
Mar 04, 2018 rated it liked it
This book is a very high-level overview of the current thinking and challenges in modern software architecture and design. If you can stand the overuse and overstretching of terms from physics and biology such as "quantum", "quanta", "fitness function", etc. you can have a general idea about what it means to design for changeability.

If you subscribe to the idea that the software architecture means "the parts that are difficult to change", you already know how important to it is to design for re
...more
Jared Davis
Dec 13, 2017 rated it did not like it
I do not enjoy writing bad reviews, and less so for a book that I've only partially read, but I believe it's warranted in this case. Lots of people will encounter Building Evolutionary Architectures in their professional life -- either as current or as aspiring software architects and/or team leads -- and they'll make decisions based on what they learn ( or misunderstand ). So I think it's fair to pan the book with the understanding that I just want people building software and managing projects ...more
Mihnea
Apr 14, 2020 rated it really liked it  ·  review of another edition
Revolves around fitness functions, the evolvability of systems, and other "-ilities" across multiple dimensions of architecture layers, company political layers, and also time layers, referring to having fast time-to-market for cost optimization.
An interesting note is the mention of Conway's law: "Organizations design systems that mirror their own communication structure.", which is more and more evident by the examples and use cases presented in the book.
Franck Chauvel
Nov 20, 2017 rated it liked it
Neil explains how to use continuous delivery and other modern engineering practices to build architectures that better sustain time and avoid rotting.

I think this text explains well how various practices and tools fit together (DDD, CD, testing, etc.) but does not dive into any. I don’t know if the analogy with evolutionary computing and its fitness functions really helps those unfamiliar with it. What I found less clear is how to decouple those fitness functions from the code so as to enable ev
...more
npacenop
Mar 09, 2018 rated it it was ok
Shelves: scicomp, non-fiction
Let me first say that I've still got a deep respect for the authors, even though I didn't particularly enjoy this book.

I've been tracking the work of the authors (and their peers) for some time now and am somewhat invested in the field of evolutionary architecture myself. That being said, I was somewhat disappointed that there were rather only a few new ideas in there for me. The whole book felt more like a unstructured taxonomy on current buzzwords.
Ricardo Cavalcanti
The book builds on top of ideas from Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation and Building Microservices: Designing Fine-Grained Systems, feeling almost like a continuation.

This book is an agile take on classic software architecture work. The idea of fitness functions as a way to evaluate the architecture as it is being built is very interesting.

It feels a bit short. I'm looking forward to a "Building Evolutionary Architectures: Fieldbook" w
...more
Geert
Oct 04, 2018 rated it it was ok
Metaphors aside, the basic message of the book is good, though not new. It just scratches the surface. If you want in depth stuff, read other books.
I found the examples redundant.
Adam Sipos
Nov 18, 2017 rated it liked it
Shelves: technical
A couple of good ideas but I was expecting more.
Steve Fenton
Jun 13, 2018 rated it really liked it
Firstly, this is an interesting read and there are several concrete ideas that I know I'm going to use. The writing style makes it easy to read (see below) and the concepts are supported by clear diagrams and descriptions.

I recommend this book to any developer interested in the bigger picture.

I can't end this review without mention of the disastrous proof reading in this, the first edition (October 2017). It is practically impossible to catch every mistake when preparing a book for release, but
...more
Osvaldo Santana
Apr 13, 2019 rated it really liked it
Shelves: ebook, owned
The beginning of this book is barely boring and repetitive. They try to explain the concept of fitness functions in several ways but it's a simple concept: automated testing for for architectural aspects of your systems. You define the main aspects of your system and create automated tests to ensure this characteristics. After 40% of the reading the things becomes more "practical" and authors propose some strategies to implement this kind of tests.
Muhammad Khan
Aug 02, 2019 rated it it was amazing
A great attempt at packaging the latest state of the art, software engineering practices with a focus on building "agile" architectures.
A must read for anyone working in software, at any level.
Victor
Oct 05, 2017 rated it liked it
Shelves: read-tech
This book gives a high level overview of building evolutionary architectures. An evolutionary architecture supports guided, incremental change across multiple dimensions.

Changes are guided by fitness functions that check if the most important architectural characteristics are on target. Examples vary from coding standards to performance, security.

Incremental changes cover both building and deploying software. The authors emphasize the importance of a deployment pipeline if you want to make inc
...more
Sten Vesterli
May 22, 2018 rated it really liked it
Even though the main idea of this book is fatally flawed, it is still a good book on IT architecture.

The flawed concept is the idea of a "fitness function" that automatically calculates the quality of an IT architecture. If it were possible to build such a function, it could be included in your build pipeline, you would notice and could prevent your architecture from degrading. The authors present the idea and benefits, but fail to argue convincingly how this can be done in practice.

The good p
...more
Maria
Feb 19, 2018 rated it liked it
Shelves: work-stuff
I'm not 100% who the target audience is for this book. I was also very disappointed by some of the terrible scientific analogies, in particular when they use quanta!

But anyway, aside from that I appreciated the writing. There was a lot of spelling mistakes but I noticed that an effort had been made to use gender neutral language. I also though that including examples at the end of each chapter was a good idea.

On the whole though, aside from giving concepts new names I'm not sure how much I learn
...more
Tbueno
Mar 09, 2018 rated it liked it
The book contains good content, but it feels much more like a compendium that a book with new ideas.

This book is basically a summary of https://www.goodreads.com/book/show/1... and https://www.goodreads.com/book/show/8.... If you have read both these books, "Building Evolutionary Architecture" will bring no novelty to your knowledge about modern software architecture.

The premise of "Evolvability " as one of the "ities" (scalability, security, etc..) we should be concerned with in an architectu
...more
Nadim Rafehi
Oct 26, 2017 rated it really liked it
Well written with a lot of useful and insightful information, however it's somewhat lacking in exploring concrete examples of fitness functions.
Frederic
Mar 06, 2018 rated it really liked it  ·  review of another edition
by far the most useful tool out of this book is the idea of automated fitness functions that yield metrics on each effective and desired property of the architecture, running with the rest of the tests.
Remo Biagioni
Apr 26, 2020 rated it did not like it  ·  review of another edition
This was a hugely disappointing book. The concept of evolutionary architecture is not new: transition architectures are baked into TOGAF. The one piece of brilliance in this book is to identify 'fitness functions' from the architecture and make those testable - indeed introducing those tests into the automated test suite. This idea is covered well in chapters one and two - though perhaps with a bit tighter editing in could have fitted in a single chapter. The remainder of the book purports to be ...more
Manu Pk
Mar 21, 2020 rated it really liked it
Shelves: tech
The book speaks about fitness functions, to solve this concern. An architectural fitness function provides an objective integrity assessment of some architectural characteristics. So, in a system there may be many characteristics that we want to measure, so you would write separate fitness functions for each of them. In the book, a fitness function is not defined in a concrete way but rather in an abstract form of graphs, tests or any other methods by which we know that our system is doing good ...more
Toni Tassani
Jan 28, 2019 rated it really liked it
Shelves: safari
"An evolutionary architecture supports guided, incremental change across multiple dimensions".
The authors suggest three aspects:
- Incremental Change, and they refer to Continuous Delivery and Hypothesis Driven Development
- Fitness Functions, an objective function to summarise how close a prospective solution is.
- Appropriate Coupling, and to discuss coupling the authors introduce the concept of Architectural Quantum: an independently deployable component with high functional cohesion.

Authors di
...more
Vinayak Hegde
Mar 31, 2018 rated it liked it
Shelves: tech-programming
This is quite a good book written by someone who has deep experience in building several systems. Many of the ideas as well the experiences in building systems resonated with me. The idea of fitness functions was good. Also liked the transpose of different types of architecture and their pros and cons.

Also one important idea that is not expressed in software enough is the coupling of architecture, culture and team structure. This is dealt at length here. However some of the prose felt repetitiv
...more
Szymon
Apr 20, 2019 rated it really liked it
It is not a very technical book, and I was aware of that when I started reading it. It is a very high-level view on designing evolvable software architectures, either microkernels, microservices or fain-grained modularized monoliths. It briefly explains how to protect your architecture design with fitness functions, what are the antipatterns and pitfalls we should avoid making, and what are the principles of building constantly and continuously changing software. It is more like a theoretical in ...more
Koen Wellens
Mar 16, 2018 rated it liked it
Shelves: 2018, non-fiction
Building Evolutionary Architectures is criticised because of its overuse of biological terms. I get that. They do it a lot. However, if you understand what they’re going for, it doesn’t botter you that much. What did bother me was the fact that at some points the book was selling stuff. Either other books from the authors or even products from the company they work. That was a bummer.

There was also a lot of repetition in this book. In the end, there wasn’t that much in it that was new to me. I d
...more
Christopher Brodt
Sep 08, 2019 rated it liked it
Pretty good overview of modern day software architecture landscape. A succinct definition of Evolutionary Architecture might be "An architecture that supports continuous, incremental change". This is achieved through "fitness functions" to evaluate software architectures. These functions encompass traditional measures of software quality: coupling/cohesion, test coverage but there are others related to security or performance that may focus on a system interaction level.

Overall, well written and
...more
David
This is an excellent book that crystalizes definitions and approaches to designing software systems that are amenable to change. Many of the concepts captured in this book have been practiced by experienced software engineers for many decades, but the discipline of evolvable software architecture has been lost since the explosion of the Internet ushered in fast and furious development. The authors do a great job of steering clear of discussing technology and instead focus on the essence of archi ...more
William Anderson
While I agree with everything discussed, and what is outlined, I believe this book has spectacular title but more encompasses what has become standard practices in monitoring, analytics, and dev / devops. Taking to heart practices from eXtreme Programming, (re)reading "The Pragmatic Programmer: From Journeyman to master" and having an established and consistent CI and moving towards CD are the real recommendations. Ultimately then defining Evolutionary Architectures as ones that change based on ...more
Todd Webb
Nov 16, 2017 rated it it was amazing
Neal provides a useful overview of how to think about building evolutionary architectures, including currently used techniques. He is careful not to suggest one-size-fits-all and describes various approaches and contexts in which different approaches might fit. Because the book is based on experiences working with different organizations, it is not surprising that the suggestions and guidelines match well with what I've seen first hand. I particularly appreciated the inclusion of organizational ...more
Hildeberto
Dec 30, 2019 rated it it was ok
It's a tedious read, with subjects thrown in the reader's face with not enough ground. You basically have to trust author's professional experience to believe what they say. The book alone doesn't do the job. They invented a new term - fitness function - that is hard to digest. They are basically talking about tests, different types of tests, just to make sure changes don't break things. To prove that they don't need to come up with a new term. By using existing terms they would simplify a lot t ...more
Mike Gunderloy
Aug 08, 2018 rated it really liked it  ·  review of another edition
There are a lot of good points here about how to build large software systems that can withstand business change - though more of the points seem to be about what NOT to do. The actionable advice is a somewhat smaller piece of the book. The best part is the reminders that monoliths are not always bad; there are tradeoffs to be made. Ford has sweeping experience across many software trends, and it's nice to see microservices placed in the broader context.
Vishal
Feb 02, 2018 rated it liked it
A good summary on how to think about (and build) evolvable architectures. A lot of the advice boils down to "Microservices!" but they do mention some instances when it's not the best solution. Also, I wish some of the topics had been discussed in more detail, like database evolution.

The narrative is a bit hard to follow for the first 4-5 chapters, but all of it builds up to a really good Chapter 6. Whether that chapter is worth the whole book is really up to you.
« previous 1 next »
topics  posts  views  last activity   
Goodreads Librari...: This topic has been closed to new comments. Paperback version needs updating 11 45 Oct 05, 2017 09:54AM  

Readers also enjoyed

  • Clean Architecture
  • Building Microservices: Designing Fine-Grained Systems
  • Accelerate: Building and Scaling High-Performing Technology Organizations
  • Domain-Driven Design Distilled
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  • Site Reliability Engineering: How Google Runs Production Systems
  • Designing Data-Intensive Applications
  • Test Driven Development: By Example
  • Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
  • 97 Things Every Software Architect Should Know: Collective Wisdom from the Experts
  • Monolith to Microservices: Sustaining Productivity While Detangling the System
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Team Topologies: Organizing Business and Technology Teams for Fast Flow
  • A Philosophy of Software Design
  • Refactoring: Improving the Design of Existing Code
  • Extreme Programming Explained: Embrace Change (The XP Series)
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
91 followers
Neal Ford is Software Architect and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, instructional materials, magazine articles, courseware, video/DVD presentations, and author and/or editor of 5 books spanning a variety of technologies. He focuses on designing and ...more

News & Interviews

Author and illustrator Alice Oseman is known to her long-time fans for her young adult novels about—as she calls them—"teenage disasters," start...
107 likes · 9 comments
“This manifests in two ways. First, many senior developers start writing the infrastructure that other developers use, rather than using existing (often open source) software. We once worked with a client who had once been on the cutting edge of technology. They built their own application server, web framework in Java, and just about every other bit of infrastructure. At one point, we asked if they had built their own operating system, too, and when they said, “No,” we asked, “Why not?!? You built everything else from scratch!” Upon reflection, the company needed capabilities that weren’t available. However, when open-source tools became available, they already owned their lovingly hand-crafted infrastructure. Rather than cut over to the more standard stack, they opted to keep their own because of minor differences in approach. A decade later, their best developers worked in full-time maintenance mode, fixing their application server, adding features to their web framework, and other mundane chores. Rather than applying innovation on building better applications, they permanently slaved away on plumbing.” 0 likes
“DBAs who rarely genuinely restructure schemas build an increasingly fossilized world, with byzantine grouping and bunching strategies. When DBAs don’t restructure the database, they’re not preserving a precious enterprise resource, they’re instead creating the concretized remains of every version of the schema, all overlaid upon one another via join tables.” 0 likes
More quotes…