One of the joys of teaching graduate school is getting to interact with bright young HCDE PhD students. Recently, I’ve been able to spend quality time with Drew Paine, a software engineering graduate of Rose-Hulman Institute of Technology.
Drew reminded me of the book Social Thinking – Software Practice by Christiane Floyd that was first introduced to me by Wolf-Gideon Bleek when he was on his sabbatical at UW. When reading this book I had my own Chris Alexander existential crisis as I encountered the following paragraph:
David Socha and I wrote about this moment in our paper “Is designing software different from designing other things?” when I realized the missing ingredient in getting my students to do high quality designs:
“Over the course of my career, I (Skip) alternated between line management jobs in software engineering and working as an organizational consultant helping large and small organizations develop visions, missions, strategies and innovative product designs. In the process of consulting and graduate school teaching, I tried to pass on what I’ve learned about designing successful software products and systems. While my customers and students generated better designs, they did not generate innovative designs like I’ve accomplished over my career. I knew there was something missing from my framework of design, but I couldn’t pinpoint it.
“Then I had a Chris Alexander  moment while reading Floyd’s article. Alexander realized that the reason his students weren’t producing great designs is that he left two important aspects out of his Pattern Language – color and asymmetry. Similarly, I left out of my teaching the foundations of organizational development, change and design. Yet at least half of the work of every successful product design that I’ve done has included innovative organizational design and interventions.”
Design Patterns: Elements of Reusable Object-Oriented Software was an important breakthrough for the software development community by drawing from the work of Chris Alexander. However, the gang of five was very myopic as is typical of software developers and they only brought over the most micro level of what Chris had done. Chris designed from the micro level – how to design a window through many levels to the meta level with how to design a geographic region. The Software Design Patterns folks stopped at the level of designing a window.
Chris has gone through three stages of evolution in his writing – analysis, synthesis, and the deeper nature of order (the equivalent in the design field of what Watson and Crick did with discovering the structure of DNA).
The key works from Chris Alexander are:
- Analysis Phase
- Notes on the Synthesis of Form – this book is Alexander’s PhD thesis. In spite of the title his focus was on analysis.
- Structured Planning by Charles Owen of the Institute of Design. Chuck spent his professional life building on the formulas in Alexander’s book and correcting them to actually work. The programs RELATN and VTCON are the implementation of Alexander’s idea.
- Synthesis Phase – Alexander’s Trilogy
- Timeless Way of Building – this book provides the overall philosophy of the pattern language and introduces the notion of the “quality without a name.” This elusive quality is what sets apart buildings which are alive and lead to healthy living from those that dampen the human spirit.
- A Pattern Language: Towns, Building, Construction – the multi-layered visual language of the patterns for construction are detailed in this book.
- The Oregon Experiment – this book represents that application of the pattern language at the scale of a university (U of Oregon) and a city (Eugene, OR). On a side note, while our two daughters were in graduate school at the U of O, we enjoyed the parks and trails that came out of Alexander’s work.
- Deep Order Phase – The Nature of Order – Stepehen Grabow in his book, Christopher Alexander: The Search for a New Paradigm in Architecture, describes Alexander’s 20 year search for a deeper order when he discovered that his Pattern Language was missing key elements like color and asymmetry. The result of the search is this incredible four book series on the nature of order.
- The Nature of Order: An Essay on the Art of Building and the Nature of the Universe, Book 1 – The Phenomenon of Life
- The Nature of Order: An Essay on the Art of Building and the Nature of the Universe, Book 2 – The Process of Creating Life
- The Nature of Order: An Essay on the Art of Building and the Nature of the Universe, Book 3 – A Vision of a Living World
- The Nature of Order: An Essay on the Art of Building and the Nature of the Universe, Book 4 – The Luminous Ground
While we were studying Alexander’s work and entertaining Wolf-Gideon Bleek, the topic of the automatic discovery of patterns in software arose. Bleek pointed us to some work on Software Tomography that his colleagues were working on. I loved the name and the images it conjured up. So we took a look at the software and realized that if we fed software code into Attenex Patterns we could do a much better job than the Sotograph software at finding links.
So I had my wonderful architects, Eric Robinson and John Conwell, spend a couple of days seeing what Attenex Patterns could do. We were amazed at what came out. In a matter of hours we discovered hundreds of bugs that had been in the software for quite a while which were the result of code reuse throughout the hundreds of thousands of lines of code. Yet another innovation we did that never saw the light of day because software development tools were not our target market (tongue very firmly planted in cheek).
As I shared these two different sets of visual analytics tools, I imagined the study of organizational tomography (Attenex Patterns with the visual analytics associated with semantic networks, social networks, event networks, geographic networks and financial transaction networks) and software tomography with the same tool. Then you can truly see software as an organizational intervention AND all the implications.
This combination of the ability to analyze texts and the ability to analyze the software that is making the digital media come alive is what Kate Hayles in her new book How We Think: Digital Media and Contemporary Technogenesis is trying to envision. Now it is just that small little matter of programming to make it happen.
Thanks Drew Paine, for reminding me of these other threads that need to be a part of the “content with context” tool.
Skip — IMHO, your “analysis,” “synthesis,” “deep order” sequence is a continuation of the tried & true “waterfall” methodology of software design. And we know that it was very useful at a certain time and place. But fast forward to today’s digital age, where software scrums and agile development reign — both incremental development and fast failure are now possibilities. Can’t we find something more flexible & responsive?
Pingback: Seeing Organizations – How do you teach? | On the Way to Somewhere Else