The Leverage Points in Engineering Ecosystems
SubscribeSign in
The Leverage Points in Engineering Ecosystems<br>Donella Meadows’ 12 leverage points applied to software engineering ecosystems
John Durrant<br>Dec 18, 2024
51
Share
I’ve been interested in ideas from systems thinking and complexity for some time which tends to align with my personal characteristics of not getting too caught up in detail and wanting to make sense of the larger whole. I’m more of a generalist than a specialist, drawn to the novelty of new ideas and nuance rather than clinging to a black-and-white worldview.<br>I wouldn’t describe myself as a systems thinker, but someone who tries to have an appreciation of systemic complexities, realising the non-linearity of many aspects of our world, and realising that cause and effect are often more complex than we realise.<br>Thanks for reading Human-Centric Engineering! Subscribe for free to receive new posts and support our work.
Subscribe
Systems and Complexity
It’s not easy to see how the parts of a complex system interact from a holistic perspective. We can never understand or model a complex system accurately, we can only really hope to appreciate its nature.<br>Societies, forests, human beings, and companies are all examples of complex adaptive systems. We may also think of coral reefs, ant colonies, the global economy, and social networks such as the internet as complex adaptive systems. Systems are everywhere.<br>Systems are composed of many interacting elements that self-organise to produce emergent behaviours, adapting and evolving in response to environmental changes. Teams of software engineers are complex adaptive systems too. We often see the role of a manager to take certain actions, like pulling levers, pushing buttons, or turning taps in their system of teams in order to produce desired results. But complex adaptive systems are non-linear, they’re not straightforward, and often the interventions of a well-intentioned manager (or a president/prime minister in the system of a nation-state) will produce unintended consequences.<br>We all exist in a world of complex adaptive systems and as the world gets ever more interconnected, interdependent, and ever more complex, it’s worth exploring systems thinking as a framework to help understand the nuances of our co-existence a little better.<br>Donella Meadows
Donella Meadows (1941-2001) has been hugely influential in bringing systems thinking to the masses through her book ‘Thinking in Systems’, published posthumously in 2009. This has been a popular choice as a systems thinking primer for those in software engineering who are looking for a more nuanced perspective on the many interdependent components within a software engineering ecosystem.<br>The 12 leverage points, outlined in her essay "Leverage Points: Places to Intervene in a System", offer a framework for understanding the levers we can use to influence complex systems, such as organisations, teams, or other social structures. Meadows’ framework suggests that not all interventions within a system are equally effective; some points offer greater leverage for creating lasting change than others.<br>She arranged the leverage points in ascending order of effectiveness, from the least influential to the most powerful. These points range from superficial tweaks, such as adjusting numerical parameters to altering the rules and regulations in a system, to deeper, more transformative actions, like altering the goals of the system or working with people’s attitudes and beliefs.
While the inspiration for her original essay was triggered by her observations at a North American Free Trade Agreement (NAFTA) meeting in the early 1990s, her essay was structured as a general framework for understanding and intervening in systems and so can be used for insights into the intervention points within a software engineering ecosystem that would provide the greatest leverage.<br>The 12 leverage points mapped onto a software engineering ecosystem will look something like the following.<br>Low Leverage Points: Addressing Symptoms
12. Constants, Parameters, Numbers
Parameters are fixed values within a system, like speed limits or temperature settings. Adjusting them often produces limited impact since they don’t address the system's underlying structure.<br>In software engineering, this could involve tweaking superficial metrics like lines of code produced, number of PRs, sprint velocity targets, number of unit tests, bug fix rates or error budgets in an SRE context. It would also apply to engineer wages. While these adjustments might offer some temporary improvement, they often fail to address underlying systemic issues.<br>Donella Meadows suggests that constants, parameters and numbers occupy up to 99% of our attention but there is not a great deal of leverage in them. “People care deeply about parameters and fight fierce battles over them. But they rarely change behaviour.”‘<br>11. Size/Stability of Buffers
Buffers are...