This document discusses evolutionary architecture, which supports continual and incremental change across multiple dimensions. It describes how architectures like microservices and decentralized data/governance can evolve. Natural selection and experimentation are key, using A/B testing and fitness functions to determine what changes are better. Lessons learned include following Conway's Law, having accurate fitness functions, and starting with necessary infrastructure and small experiments. Evolutionary architecture is the next step after microservices.
33. Lesson 1:
Conway’s Law
"organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations."
Stepping back a bit and looking into the real world, made me see things from a surprisingly comparable perspective.
How about the evolution of life? Which were the reasons for some life’s variations to outlive others? Since I am not a biologist, nor a scientist, the explanations I gave myself were quite trivial but also highly convincing. Certainly, there are multiple variations, multiple species and let’s even say versions of life. Further there are generations, thus continuation and incrementation.
Evolution is not a sudden change, but rather the conclusion of the capability to adapt to explicit circumstances within our world’s directly affecting environment. The ability to improve and learn with every generation gave me a strong hint. What if software and its architecture could follow the same rules? There is a vast number of obvious attributes one could extract from this real wold’s scenario and apply to software architectural thinking.
Architect suffers from less pressure to choose the correct choice