My title is the result of being struck by lightening so to speak from reading the following paragraph on the inside front jacket cover of Christoper W. Alexander et al’s A Pattern Language: Towns, Buildings, Construction that refers to the complete Center for Environmental Structure series of which A Pattern Language is the second volume (emphasis mine):
At the core of these books is the idea that people should design for themselves their own houses, streets, and communities. This idea may seem radical (it implies a radical transformation of the architectural profession) but it comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people.
Mr. Alexander’s influence on the pattern movement in software engineering is well documented and I became aware of his contribution while reading the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design. (I recently bought the second edition and am looking forward to its maturing value.) However, since I have yet to read any of his writing cover-to-cover, I did not know about this central thought of self-design.
As with a lot of truths in the traditional world of architecture, I believe that this applies to the software world as well. Users intrinsically know what causes them to use one program over another and why some programs leave them feeling better about themselves (e.g. a greater sense of accomplishment, a greater sense of empowerment, of productivity, etc.). Tapping into this knowledge will be important to the product line I’ve architected for EMC Software Group and specifically its Documentum product brand.
We already support our users via a rich set of preferences that I like to call “training wheels.” For example, where are unique functions are patterned after common metaphors or experiences, but do have subtle differences, the preferences system will present a dialog telling them of the success of what they requested and how doing a similar function in the product involves a different menu item, context, etc. (of course with “Don’t show me this again” available at all time, along with a preferences reset-to-default function just in case re-learning is desired).
However, this new software will operate within containers that already capture the notion of software design by users (e.g. ability to dock windows differently, show/hide entire toolbars, whole menus, individual toolbar buttons, individual menu items, etc.). Offering users lattitude in their software experience increases the potential for the resulting experience to be satisfying. It also reduces the chance of misunderstanding user intent, which is one of the harder problems in designing highly usable software. The default software can be configured in the perceived 80-20 or 90-10 manner, but users in the 20 or 10 camps can modify the default UI so that they, too, enjoy a highly satisfying experience with our software.
The complete three volume Center for Environmental Structure series is as follows:
- Volume 1 (foundation): The Timeless Way of Building
- Volume 2 (working document): A Pattern Language: Towns, Buildings, Construction
- Volume 3 (implementation of theory): < The Oregon Experiment