Thinking in Agile
Agile Aims to Enhance "Information Flow" and the "Self Organization" in a Software Development System
When I say "Agile," I am referring to the ideas derived from the Manifesto for Agile Software Development.
When I say "Software Development System," I mean the organization that develops software in response to software requirements and observations of the domain of interest.
I use the term on deliberately because this assertion is expressed through the lens of System thinking.
The Thinking in Systems book, define "Leverage Points" as places to intervene a System for great effect. They are commonly understood as places where small changes can cause significant shifts in a system's behaviour.
Two of of the most important leverage points where you can intervene to make changes in a system are:
- The Information Flows:
These include the feedback loops that regulate the system's behaviour. - Self-Organization:
The ability of a system to change itself in response to new realities.
Improving the quality, timeliness, and clarity of the information flows (e.g. through faster feedback loops) will almost inevitably enhance the performance of the system.
Additionally, by avoiding the illusion of full control and embracing the laws of thermodynamics, and the lessons of reality, evolution, history, and economics (think Adam Smith's ideas of free market and contemporary thinkers like Javier Milei), you will find that encouraging self-organiation also leads to improved system performance.
These are the key leverage points that the authors of the Agile Manifesto address in what I refer to as "Software Development Systems" (just for the purpose of this single article) though the Manifesto simply refers to "Software Development" as a practice, discipline or (I think) as "the Software Industry".
I think in essence, Agile aimed to keep the feedback loop between software developers and users as close, clear, and effective as possible, while empowering teams to make organizational changes that support this quality.
This, I believe, is the essence of "Agility" in broader terms. Something is agile if it can respond swiftly to new information, even by adapting itself.
However, I suspect that the principles outlined in the Manifesto work best for a particular subset of "systems". As some of the original signatories of the Manifesto have pointed out, "Agile is a small technique for small to medium sized software teams to build small to medium sized software projects" – Uncle Bob.
But I believe that "Agility" is still achievable and desirable even for large organizations. Whie these organizations may not strictly follow the 12 Agile principles, they still can aim to (and possibly alrady do) positively intervene in the "Information Flows" and the "Self Organization" capacities of their teams to increase Agility.