I am not a programmer of any but a rudimentary sort, and am not able to implement the ideas set out here, but I am clear about what is required. I am hoping that you may have some suggestions as to where to take this proposal.
WHERE I'M COMING FROM
I'm an architect. I studied with Chris Alexander in the late '80's, and have used patterns for 20 years or so.
In the last few years I have been thinking about complexity and complex systems, and how poorly humans are equipped to address these in any ways that are not highly reductive.
The pattern language approach is the best tool yet invented, that I am aware of, for helping us to map/model complex systems or environments. If you'll forgive any misapprehension on my part, software, although complicated, is not truly 'complex', in the way that an eco-system is [indeed it would seem to be one aim of good software to avoid such a condition!].
I distinguish between pattern recognition and elucidation (as I see it, this is the mode which the software design community has found most valuable) and 'pattern language' development, which involves mapping a complex system or environment, through the use of linked patterns, arranged hierarchically, but without imposing a 'tree-like' structure. This approach allows us to break down systems into assimilable and recognisable chunks, simple enough to be addressed, while all the time making connections and implications explicit. It is the links between the patterns that address the complexity - Alexander's 'semi-lattice' structure is ultimately irreducible, as are complex systems.
We desperately need such tools to help us to address the fundamentally complex problems of climate change.
THE PROPOSAL
My proposal is for the development of a collaborative tool that supports, in a structured way, the development of pattern languages that address real-world, complex situations. The tool need not be complex. I am not versed in preparing specifications for software, but I have made an attempt at setting out the features of such a tool:
OVERVIEW
This is a proposal for the development of a collaborative tool that supports, in a structured way, the development of pattern languages that address real-world, complex situations.
It is assumed that the reader has some understanding of patterns and pattern languages.
- GENERAL OUTLINE
- The user environment would be something like a structured wiki/ content management system.
- From top down the structure will be:
- •Pattern Language - a named project
- •Tiers - the broad structure of the pattern language, from large scale to small
- •Patterns - each belongs to a tier, but may be linked to any other pattern, regardless
- •Pattern elements - following the Alexander format, each pattern page will have a template
- •TITLE (referenced)(confidence level)
- •picture
- •context
- •STATEMENT OF PROBLEM
- •Discussion
- •CONCLUSION - couched in parametric/generic/process based approach
- •elements for which this pattern is the context
- USAGE
- The first stage is to engage with the large scale structure of the system to be modeled - developing the hierarchy of tiers (analogous to the sections in ‘A Pattern Language[APL]’). Once this has settled down, then the work of identifying and refining patterns can begin.
- The application needs to support various modes/functions
- STATUS - tiers and patterns need to able to be tentative proposals at first, then become firmer or be superseded. Some sort of status indicator is needed (this could be implemented as a version of the 1,2 or 3 star rating given to patterns in APL)
- DISCUSSION - as per wikipedia etc to facilitate conversations regarding the development of the pattern or tier.
- MODERATION - different status users to allow management if/as necessary
- GRAPHICAL REPRESENTATION - an ability to produce output formatted for ’.dot’ graphical output would be highly valuable. Graphical representations of systems are invaluable for communication of complex relationship sets.
Nothing about the proposal is particularly mould-breaking - it could be described as a structured wiki, with page templates and the now usual discussion tab, and some desirable visualisation aids.
It is my ambition that, used collaboratively, this tool could allow us to begin to build world models which can be rational and resolved at the scale of each pattern, empowering us to develop solutions to particular problems, without losing sight of the system wide implications.
If any of the above has connected with you, then the following may be interesting as a limited expansion of the thinking involved.
EXPLICATION
Humanity is in desperate need of tools to help us address complexity in a new, more holistic way. The 'successes' of the human species over the last 2/300 years (a laughably short period on which to base claims of 'dominance') are based on a particular model of design - a highly reductive one. We set ourselves very narrow problems, and solve those in a purposefully blinkered way, with active disregard for wider consequences - the motorcar being a good example.
This model has brought us to a situation in which almost any indicator of anything quantitative relating to humans is tending towards an asymptotal condition. Some sort of crash is indicated - climate change and peak oil being obvious candidates.
Our way of life will change radically, one way or another, over the next century. I would prefer this change to be more of a 'preservative transformation', than a wild ride with the four horsemen of the apocalypse.
Reductive, simplifying modes of action are highly unlikely to be effective in addressing climate change and other similar issues - it is these narrow approaches to problems which have got us into this mess in the first place - knee jerk technological responses to environmental problems will have unintended consequences.
I am confident that we as a species have the intellectual, technological - even the moral resources to rise to this challenge, but that we are desperately ill-equipped on the metaphysical/philosophical axes.
The principal weakness, as I see it, is in our ability to engage constructively with complex environments. During almost all of our evolutionary history we have been at the mercy of our environment. The history of our so-called 'progress' could be viewed as a history of an ever-more-sophisticated ability to modify our immediate environment. We apply our new techniques with the same desperate fervour that earlier cultures did theirs. We are still frightened of nature, still keen to exclude its apparent randomness from the sphere of human life.
We have now arrived at a position where (through technological ability married to sheer numbers) we are affecting the overall balance of the global environment, but we're still not in control - we have just applied fairly crude local environmental modification technologies on a mind-boggling scale, without a consideration for the consequences. It's only in the last forty years or so that it has even been possible to imagine that we are perturbing the global system.
Many people have been working on approaches to complexity in the last 25 years. The Santa Fe Institute, chaos theoreticians, Friedrich Hayek, Chris Alexander and many others have done important thinking. The internet and powerful computers form a platform which can allow previously unimaginable tasks to be undertaken.
But there has not been any sign of a paradigm shift in the general culture - responses to climate change and other complex problems tend be to simplistic technological and/or practical 'fixes', from the small scale 'replace your lamps' to the hubristic 'build a giant sunshield in space'. Even highly educated and intelligent individuals live within the mechanistic, reductive world-view - the one which has given us this 'success'.
Collaborative work in assembling patterned understandings of the many systems which interact with the world ecosystem could be a step along the road to the development of a culture which has systems thinking as a normal mode of awareness.
The proposed tool could be a step to support such work.
I would welcome any suggestions as to how to progress these ideas.
Please also see the previous post for another version of this.
1 comment:
The original proposition was made by email to Ward Cunningham. Here is part of his reply;
"I thank you for your thoughtful letter.
Yes, I agree with your analysis of the way the world frames its problems. And, yes, I believe powerful representations will be required to express solutions, and that unusual levels of collaboration will be required to discover, vet and promulgate them. I'm proud that you think wiki might be a step towards that representation. This was its intended function.
I have built a variation of wiki called wikitect. Its purpose was to capture and express the "conceptual architecture" of Eclipse, a large family of software components. Some unusual features of this software align nicely with your request.
Post a Comment