Metaphors are common in the discussion of project management, software development, and agile methods. Metaphors are simple, intuitive and appeal to the reader by making a connection between the author and the reader through a common language mechanism. Metaphors appear to be an essential to understanding new topics. Topics many times conjectured to be new. Topics sometimes made more complex than needed.
The problem with metaphor is it's interpretation many times depends on the cultural context that generates the metaphor in the first place. More critically, the metaphor - while understandable to the reader - may not actually be the correct metaphor for the problem at hand, may not actually be correct at its basis, or simply is wrong.
Does This Metaphor Have Anything to Do With Managing Agile Projects?
Good question. On the surface there are words like "non-linear" - yep people are many times non-linear. The metaphor of "she went non-linear on me when I told here I didn't want to be her boyfriend any more." The term "couple system" - yep people systems are certainly coupled - in some many ways.
But then the issue of what metaphor to use. Can physics and biological metaphors be used? They are, but they suffer from fundamental errors in connecting the dots. Linear and non-linear systems have been studied since the invention of calculus. Every physics students is told in their freshman years of high scholl that the world is composed of second non-linear partial differential equations, but we'll be studying the linear ordinary differential questions first to understand the principles. Same for biology and chemistry. Start with the linear, move to the non-linear. If you leave the physics, biology, chemistry, mathematics track at the linear stage, you may have missed to history, principles, and practices of the actual mathematics used in these sciences. When they appear again in metaphors around social sciences = complex adaptive systems principles (not the theory, just the metaphorical principles) it seems to be "new all over again."
It's this rediscovery of the established that provides the basis in the social science connection to agile.
Back to the Metaphor Problem
Metaphors introduce a fundamental trade off between the generation of insights and the possibility of misappropriation. The extension of genetics to eugenics owed much of its popularity in the United States and in Germany to its use of culturally resonant metaphors. The use of metaphorical language in molecular biology—with its references to information, signaling, translation, editing, etc.—has contributed substantially to its breathtaking success during the past 50 years.
The trouble is that metaphorical abstractions all too easily become concrete objects and substitute for specific, describable processes.Many of the metaphorical references in the current agile literature mask both the complexity of the metaphor example (double pendulum for example) and the simplifying approaching to what is conjectured to be complex.
For example the notion that software development using "water fall," (as a metaphor, since it's not allowed in the DoD) can be replaced with software development using agile result in dramatic (my emphasis) improvements in success (all unsubstantiated in the scientific sense of double blind experiments in a controlled environment)(I know that is too strict a condition, but there is work needed if the process improvement is to be made outside self contained projects - like inside the government).
Rather agile software development method contribute little to the solution - if proper processes are applied - to the REAL problems of software development:
- Over optimistic assessments of the unknowns
- Use of deterministic estimating process rather than calibrated probabilistic approaches
- Inadequate data elicitation of the underlying risks
- Improper cost distributions for future work
- Overly aggressive management commitments
- Cost estimates based on poor project definition
- Inadequate allocation of budget
- Inadequate management of cost contingencies
- Ineffective procurement process that encourage unrealistically low bids
While agile software development provides verifiable improvements in the production of working products (Technical Solution in the CMMI paradigm) - by the very nature of short cycle 100% working outcomes - the large issues (shown above) of software intensive projects go unaddressed.
Agile software development is one of many tools needed to Increasing the Probability of Success for software (or for that matter any) project. Our failure to recognize this and by into the metaphorical examples that conjecture chaos can only be controlled with agile, will not solve the problem. It will only delay the solution. The solution requires the integration of discipline around the conditions listed above PLUS software development based on iterative and incremental production of working products.