What Does it Mean to Poke a Complex System?
A little bit of follow up...
In How Can We Build Better Complex Systems? Containers, Microservices, And Continuous Delivery I had a question about what Mary Poppendieck meant when she talked about poking complex systems.
InfoQ interviewed Mary & Tom Poppendieck and found out the answer:
Mary & Tom Poppendieck: Complex Adaptive Systems Theory is useful for thinking about scaling software – especially software that is intertwined with products, markets and businesses. The entire software-intensive business system is clearly a complex system. One of the things we learn from complex adaptive systems theory is that leaders of successful systems constantly adjust the balance between agency (self-organization) and connectedness (interdependence of agents) depending on the context. This speaks to your first question about the balance between autonomy and cooperation.
Complex systems that grow and survive over time are adaptive, and that adaptation occurs in a particular manner. A steady stream of small experiments – many of which do not work out – cause the people responsible for the system to gradually discover better ways of doing things. Small experiments are necessary because even if the complex system is deterministic, we know that tiny variations in input conditions (e.g. the flap of a butterfly wing) can cause large variations in the system response.
Big changes to complex systems are guaranteed to have an effect – but predicting what it will be is virtually impossible, because no person or team can understand the intertwined dependencies. Therefore anyone who values predictability and safety should understand that the only way to achieve stability it to try small things, observe the consequences, and adapt the system to deal with them. The idea that today’s systems are predictable and that big, well-planned changes are a good idea has long since proven to be wishful thinking. We need to understand that just as in war, in complex systems, planning is useful, but plans are useless.