Evolutionary Design

Evolutionary Design


In a dynamic world we cannot assume we can design up front, because the context is changing faster and faster. Then we need to start with a minimum design and adapt it while growing and improving as we go. Evolutionary Design can help us.


Evolutionary Design is an approach to incrementally grow a system while observing growth patterns and focusing on normalizing, optimizing and maximizing the growth.


  • What is Evolutionary Design
  • Organizational Evolutionary Design
  • 1. Evolutionary Design: Normalizing Growth
  • (Soon) Evolutionary Design – Behavior Slicing
  • (Soon) Evolutionary Design – Focus on Problem, not on Solution
  • (Soon) Evolutionary Design – Transformations with Levels of Abstraction
  • (Soon) Evolutionary Design – Transformations with Levels of Coupling
  • (Soon) Evolutionary Design – Inductive and Deductive
  • (Soon) Evolutionary Design – Selection Pressure
  • (Soon) Evolutionary Design – Solution Navigation
  • (Soon) 2. Evolutionary Design: Optimizing Growth
  • (Later) 3. Evolutionary Design: Maximizing Growth




  • “Evolutionary Design is like helping your plants grow, knowing what measures to take so they will be fruitful”
  • “When evolving the design of a system we observe growth patterns that simplify the resulting system”
  • “TDD as if you Meant It doesn’t guarantee full test coverage, you need to have tools and use them to check your work”
  • “Taking only one decision at a time is Taking Baby Steps for Evolutionary Design”
  • “First normalize, then optimize and only then maximize growth.”
  • “Evolve rather than change”
  • “If you are rigid, your software system will be rigid”



If you want to receive an email when I write a new article, subscribe here:

Subscribe for new articles