The Helium project started life as the final project of Gregory Rawlins' graduate level Applied Design Patterns software engineering class. After an extremely rigorous introduction to the principles of Design Patterns and Extreme Programming, the students were given a chance to test their wings by spending two weeks refactoring Hydrogen, an alpha release of the KnownSpace kernel. (05)
http://hydrogen.knownspace.org/ (06)
That two weeks resulted in: (07)
http://www.burningchrome.com/~cdent/649/ass5/turnin/refactorings.htm (017)
Students in the class were offered a choice of final project. Some students, sufficiently enamored of the KnownSpace way, chose as their project to continue working on the KnownSpace kernel: taking the alpha, Hydrogen, to beta, Helium. (019)
In many ways the Helium project can be held up as example of the power of Extreme Programming, Design Patterns and the general notion of Pattern Languages. Similarly these ideas can be held up as powerful examples of Doug Engelbart's ideas of augmentation, co-evolution and networked improvement communities, all of which can find a philosophical and cognitive home in embodied cognition, analogical reasoning, and a phenomenological approach to human-human and human-tool interaction. (020)
KnownSpace is a set of ideals, a software architecture, a plan for a future information management application, and a kernel for running information management applications. In each of these areas it espouses flexibility, reusability and a strong sense of human-centered design. If KnownSpace ever reaches apogee it will act as a giant, exceptionally flexible, external memory device for individuals and groups. If KnownSpace stalls in flight, it will still have been a success because of the values it can demonstrate. (021)
It is into this latter context that the Helium team has placed itself. KnownSpace has been around for several years, building up steam, gathering together enough fuel to get off the ground. In each of several launch attempts the gravity of habit has been too much: the ground rumbles, ideas are born, but orbit never achieved. (022)
Helium is the tiger-team, self-selected but sent nonetheless, with purpose to make things go, to show what's possible and shoot KnownSpace (the ideals, the architecture, the plan) out the door to places where someone, hopefully many, will see, use and improve it. (023)
Such a task, in any situation, is complicated and difficult. With only two months of free evenings and five and a half people, help is needed. For the Helium team help comes in several forms: (024)
The long term goal of KnownSpace, as described by Rawlins is the creation of (032)
a free and open computational environment robust enough and flexble enough, and understandable enough that nearly everyone could add to it, modify it, share their work over it. instead of working on toy problems because that's all you can reach starting from scratch each time, eventually the world as a whole could begin to work on something really hard---ideally, a problem that's in front of everyone all the time anyway, so i chose information management, a problem i've struggled with since the 80s. and still struggle with today. (Helium list email, 2002) (033)
This, even for motivated people is a goal that is too large. The Helium team chose instead to focus more closely on an implementation of KnownSpace that demonstrates possibilities and shows the way to the final goal. (034)
That demonstration, the focused goal, is a simple email navigation tool. The tool: (035)
By demonstrating the patterns of the KnownSpace kernel, architecture and ideals the team hope to encourage others to use the same patterns. (059)
Motivation is key. Even with focused goals the task is enormous and requires a great deal of motivation. This comes from belief in the goals. There is no secret to motivation. It has to be there, at least as a seed, and be given a chance to flourish. It cannot be created. A shared understanding of the goals and the values of the project goes a long way to maintaining motivation. (060)
Effective technology can help to remove the barriers and tangles that can cause motivation to flag and shared understanding to dissolve. Technology is not just computer based tools. It is tools of all sorts and the processes used to take advantage of them. (061)
The Helium team took inspiration for team tools and process from their previous refactoring project, from previous work experience and the extant Extreme Programming literature. They took what fit, building from a few assumptions: (062)
These assumptions led to several tool implementations: (073)
and several process implementations: (090)
There were a few notable discoveries after these systems had been in place for a while: (095)
The Helium team has met most of their goals. As such they can be said to be a very high performance team. They set complex goals and achieved them in a short amount of time. The details above of their methods are perhaps less important than the general concepts which drive those methods. (098)
The entire process has been predicated on an awareness of flexible but reliable structuring patterns found in language, social interaction, software design, and tool use. The patterns provide a way of embedding reminders in the environment that act as clues to behavior. In some sense the patterns are simply habits but they work as habits because they are patterns that are generally applicable that have been extracted from the environment. (099)
For example, "think out loud" became an important pattern for the Helium team. Initially this simply meant that if a team member was thinking about something related to the project it was probably worthwhile to share it on the mailing list or in the chat so it could be refactored, refined and remembered. With time, however, it became clear that thinking out loud was also a guideline in other contexts: (0100)
Similarly, being flexible and reusable is not simply a pattern for Simpleton interaction in KnownSpace. It is also a mantra for coding in any context. Furthermore, it is a good idea for team interaction. If all members of a team are able to step in and flexibly do what the others do, the team cannot be blocked if a team member is unavailable. (0105)
This interplay between technological use of patterns and social use of patterns is a good example of the co-evolution espoused by Doug Engelbart. In his augmentation model of tool use and performance there is a cycle of constant review and improvement of both the tools and the humans using them. Patterns provide a method whereby we can structure tools and ourselves and evaluate tools and ourselves in a reflexive dance of improvement. (0106)
The Helium team augmented themselves with Patterns and other tools but did not then sit idly using them. The Patterns were evaluated for fit and modified and merged as necessary. So too were the team members. When things did not work, they were changed, when things did work, they were recognized and selected for refinement and reuse. (0107)
There is a sense that there is a great deal of overhead involved in maintaining these patterns of behavior. It is true that attention must be paid and work done, but once the structures are in place in the environment and available to be relied upon they support an efficiency of work that far and away justifies the time used in their establishment and refinement. (0108)
Patterns, as described here (one might also say tools, augmentation aids or stygmergic strutures), are both places to hang large segments of consciousness to enable clarity of work as well as metaphoric landmarks that breed the associative discoveries of analogical reasoning. In a sense, then, they can both creatively muddy the cognitive water as well as clear it up. (0109)
When the Helium team moves out into the world they will have been augmented with the patterns they found in the processes they used, the designs they created and the code they wrote. (0110)
When the Helium code and ideas move out in the world they will be paradigmatic examples of worthwhile patterns that are embedded within. (0111)
Those patterns will provide ways of seeing, comparing and knowing that are expansive, flexible and constructive, much in the same way the eventual application at the apogee of KnownSpace will provide new ways of seeing, comparing and knowing. (0112)
Early KnownSpace pages (most philosophical of the available work): http://www.cs.indiana.edu/~rawlins/website/entry.html (0114)
Hofstadter, D. (2001). Epilogue: Analogy and the Core of Cognition. In _The Analogical Mind: Perspectives from Cognitive Science_. Gentner, D., Holyoak, K. & Kokinov, B. eds. Cambridge, MA: The Mit Press. (0115)
Bardini, T. (2000). Bootstrapping: Douglas Engelbart, Coevolution, and the Origins of Personal Computing. Stanford, California: Stanford University Press. (0116)
Clark, A. (1997). Being There: Putting Brain Body and World Together Again. Cambridge: MIT Press. (0117)
A summary of a mailing list that discussed the Bardini and Clark books. An attempt to draw ties between embodied cognition and augmentation. I think we've done it here. http://www.burningchrome.com/~cdent/index.cgi?word=110 (0118)
A paper I wrote on tool use that doesn't get addressed much in this, but I meant to get to it, maybe in a revision: http://www.burningchrome.com/~cdent/arts/my/1.1.wiki (0119)