Weekly Reflection #19 - Design for Evolution
Each week, I share one insight. One piece of wisdom. One question to reflect on. (and a little Lagniappe)
Insight
Things change. Requirements change. Teams change. And yet, the systems we build have to live through all of it. One of my favorite software engineering books is Building Evolutionary Architectures. This book introduced me to one of my favorite software architecture concepts: fitness functions. These are executable checks that encode what "healthy" means for your system. If you've ever written a unit test, you've written a narrowly scoped fitness function. The book frames evolvable systems along two axes:
- mechanics: the engineering practices that make change safe (CI, deployment, testing).
- structure: designing the system so change is cheap in the first place.
Fitness functions tie the two together. They are the guardrails that let you change a system confidently without breaking it in new and surprising ways.
I used to try to design systems that anticipated every future requirement up front. Eventually, this strategy loses. Even the "perfect" design will suffer from bit rot if uncared for.
The best systems don't try to plan for all possible futures. They define what "healthy" looks like and evolve from there.
Wisdom
There are no separate systems. The world is a continuum. Where to draw a boundary around a system depends on the purpose of the discussion.—Donella H. Meadows
Reflection
"Perfect is the enemy of good." Where have you delayed shipping something good because you were still chasing the "perfect" design?
Lagniappe
- This week, Book Overflow is reading Software Architecture: The Hard Parts.
- You can check out our discussions on Building Evolutionary Architectures: part 1 and part 2. We were also lucky enough to interview three of the four authors of the book: Neal Ford, Rebecca Parsons, and Pramod Sadalage.
- I'm starting a new website for some lab experiments through Functionally Imperative over at https://func.lol
- I've been thinking a lot about consciousness, and this Ezra Klein Show interview with Michael Pollan is amazing: The More You Study Consciousness, the Weirder It Gets.
- My free Platform Engineering Office Hours, DEBUG MODE,is now monthly, on the third Thursday of the month at 11AM Central.