Hammers, Nails, Windows, Doors and Teaching Great Design Leslie J. Waguespack, Jr., Ph.D. LWaguespack@Bentley.edu Computer information Systems Department, Bentley College Waltham, Massachusetts 02154-4705, USA Abstract The earliest notions of quality, computer-based information system design revolved around reducing downtime and eliminating “programming mistakes.” The development life cycle of many systems lasted half-decades. Today information system stakeholders expect development life cycles measured in months and adaptation or realignment of computer-based functionality in a few weeks, if not days. Achievements like these require an extreme level of coordination and integration in the modeling used to assimilate, analyze and represent the various aspects of the information system throughout a system’s life span. Teaching information systems professionals to conceive and model systems to meet these challenges requires a new perspective on what great design is about. What characteristics do models need to achieve these efficiencies? How are these models judged in reaching stakeholder satisfaction? What constitutes a good model, a great model? And what processes need to be in place to achieve good, even great models? For at least the last fifty years software engineering has wrestled with these questions. The innovation in this writing is that we cast these questions in a new light – introducing a treatment of system knowledge within a single, unifying theory of modeling quality drawing on an experience of physical system architecture. This paper explores the qualities that define good, even great design as characterized by a leading theorist of physical architecture and the patriarch of pattern languages and design patterns, Christopher Alexander. We map his concepts to design principles for information system models depicting: requirements, analysis, design, implementation, business and business processes. Keywords: modeling, design, quality design characteristics, information systems education, art and physical systems architecture, teaching great design 1. INTRODUCTION The education and formation of system professionals who are adept at developing effective and efficient information systems has been a major quest of computer science, management information systems and systems engineering for at least the last half-century. The role of designer in systems development has been characterized as artist, craftsman, scientist, and engineer. The development tools and methods of these IS disciplines are myriad and (for the most part) are well understood in their application. However, these disciplines do not consistently develop designers who produce predictably excellent results. The recipe for good choices in time, place, tool and task are not understood so well. Preparing excellent designers and building effective and efficient information systems remain a challenge. Fred Brooks in 1987 framed the challenge in “No Silver Bullet: Essence and Accidents of Software Engineering.” In the face of all the advances in software engineering to that time Brooks noted that the performance of systems designers was not reliably excellent or well understood. Brooks writes… Whereas the difference between poor conceptual designs and good ones may lie in the soundness of design-method, the difference between good designs and great ones surely does not. Great designs come from great designers. Software construction is a creative process. Sound methodology can empower and liberate the creative mind; it cannot inflame or inspire the drudge. The differences are not minor--they are rather like the differences between Salieri and Mozart. Study after study shows that the very best designers produce structures that are faster, smaller, simpler, cleaner, and produced with less effort. [...] The differences between the great and the average approach an order of magnitude. (Brooks 1987) Perhaps any lack of satisfaction with the overall success of system design or system designers lies in a lack of clarity as to what constitutes “success.” And thus perhaps what designers lack in their preparation is a reference for assessing their design choices not in their distinct, minute detail, but in their integration in the composition of the system as a whole. For this reference our exploration turns outside the aforementioned I.S. disciplines to gain a new perspective on building and understanding things as they fit into the “world.” 2. BUILDING BUILDINGS AND SYSTEMS The quest for synergy between building systems and the life that goes on around and through them motivates the work of Christopher Alexander, architect and philosopher. His early seminal works on architectural principles (pattern languages, in particular) have influenced not only buildings and civic planning, but also the construction of software and systems. To explore the nature of great design we draw extensively from his more recent writings explaining the underlying organizational principles that address fundamental concepts of natural order leading to his pattern language of building. Alexander describes the goal of building as achieving “life” through a structure preserving process of transformation. In this paper Alexander’s underlying principles are applied to modeling and constructing information systems. It is Alexander’s characterization of “life” that proposes the definition of successful information system development that we seek – a vision of “Great Design.” 3. CHRISTOPHER ALEXANDER’S NATURE OF ORDER Christopher Alexander is an oft-referenced catalyst for the concept of patterns in programming languages and design. (Coplien et al. 1995; Gamma et al. 1995; Coad 1992) Alexander himself sets forth his theory of good architectural design and its pursuit via architectural patterns in three books published in the latter half of the 1970’s. (Alexander 1975, 1977, 1979) In a follow-up to his three-volume architectural exposition he published a four-volume treatise on The Nature of Order that extensively examines his underlying theory and philosophy of wholeness and the properties of life in systems. (Alexander 2002a, 2002b, 2005, 2004) (Hereafter referred to as Book I, Book II, Book III and Book IV.) We examine Alexander’s theory with the goal of correlating the principles and concepts of his treatise on living structure with the practice of modeling, analysis and design of information systems. Although his central focus as an architect is on physical design as in buildings and construction, his theory goes to the heart of the process of creating systems that are effective and efficient. Alexander’s series of four books, The Nature or Order, follows some twenty years after his earlier works on architectural patterns, A Pattern Language and The Timeless Way of Building. These two books are almost always cited as the genesis for the concept of patterns found in object-oriented systems engineering – most notably in Gamma et al. (1995) and Coplien et al. (1995). In The Nature of Order, Alexander decomposes the conclusions and directives of those earlier works in a methodical explanation of their genesis in the principles that he names the living structure. He accomplishes this by extensive excursions into contemporary theory and research reported in chemistry, physics, astronomy, biology, art and engineering. Alexander’s use of the term life is manifold drawing on its characteristics of evolution and growth, on its characteristics of nurture and interdependency, and on its fragility. In Book I and Book II Alexander identifies “pattern” as a fundamentally informative characteristic of life. He draws out this theme as both a means of defining the existence of life in a structure and as a means (in patterned creations) of forming what he calls living structures. As he explains, “living structures are the result of a structure preserving process of becoming.” (Alexander 2002b, p.4) As these assertions are explored and explained, Alexander defines life as it is manifest in physical architecture, its measurable characteristics and the stepwise transformations that make up any process that is capable of producing living structure. The discussion that follows maps Alexander’s theory and philosophy of building and architecture onto development and information system architecture. It would be convenient to say that his thinking can be directly applied without any “interpretation” however, his writings are rather clearly fixed on the physical architecture of rooms, buildings, towns, and cities. Although he cites work in information systems that have drawn on his vision of architecture, he is clearly preoccupied with a strong disaffection of what he calls a “mass psychosis, a half century of lifeless architectural design and construction.” (Alexander 2002a, p.6) His intention seems clearly focused on rehabilitating the practice of architecture in physical construction. Nonetheless, we shall show that the principles that Alexander develops to study life in buildings are entirely applicable to the modeling, design and implementation of information systems. 4. ORDER, COMPLEXITY AND HUMAN PERCEPTION In Alexander’s discussion of order he settles on an understanding based primarily on process, that the arrangement of things is based upon their arrival at relative positions influenced by forces that guide their movement or evolution. (Alexander 2002a, p.8) The forces result from the relative location or context in which an element resides. Continuously influenced by these forces order emerges and is preserved over time, space or change as elements systematically conform as constituent components of a whole. Arrangements that fail to achieve wholeness (falling outside the equilibrium of these forces) will not have sufficient stability to persist. In time they must and will realign and in the meantime appear to exhibit disorder. In the millennia of human existence and evolution the wholeness evidenced by the persistent arrangements has formed what humans have come to understand as “natural.” In the world around us we understand this as a result of the “laws of nature” and hence we perceive the world around us to be almost universally “natural” (with the probable exception of many human constructions). A key concept in Alexander’s theory is that order is a dynamic concept rather than static. Although humans often experience a large number of components or relationships as complexity, multiplicity does not naturally result in disorder. Neither does order naturally result from a small number of parts or relationships. It is not multiplicity that results in disorder, but rather an inability to comprehend an evolutionary, organizing and explicative path of change from one arrangement to another and so forth and so on. As a result human attempts to create and sustain orderly systems must rely on devising or (in Alexander’s terms) “discovering rules for system construction” that preserve the clearly visible, orderly composition and unfolding transformation of system and parts. Systems (natural or human-made) that entail this concept of order are said to have life. (Alexander 2002a, p.33) And thus Alexander argues that methods of constructing living systems will always be based on techniques that preserve the natural order of living structure. Alexander’s research over thirty years with observers of architecture reports a remarkable fact that is corroborated by researchers in related fields. Given any two systems presented as visual images to the same population of observers the vast majority of those observers (in excess of 80%) will agree on which of the two systems exhibits a greater degree of life. (Alexander 2002a, p.71) Alexander concludes that within a certain sphere of culture there are almost universally held conceptions of order which are evidenced by the feelings of life experienced by observers viewing images, structures, rooms, buildings, roads or landscapes. He further asserts that this concept extends to any space in which objects and their relationships may be observed. Can Alexander’s theories be translated for constructing models of information systems that exhibit life? It would appear so! If 1) Alexander’s “any space” extends beyond building physical artifacts to “building” conceptual artifacts and 2) the same principles of order govern models of systems constructed in a conceptual space, then 3) models of information systems possess the same relative degrees of life attributable in physical buildings and architecture. The task of confirming the assertion that models of information systems have life begins by considering the underlying principles of Alexander’s concept of order. 5. WHOLENESS AND CENTERS Alexander’s explanation of life in structures would seem to most readers to be more of a poetic rather than a scientific argument. Alexander’s concept of life asserts that reality lies not on either end of a philosophical continuum with poetry and science at either end, but with a realization that poetry and science are simply different views of the same reality. Life arises from a system of constituents that contribute to a shared identity and purpose, a concept Alexander names wholeness where each part’s structure and function flows into a continuity of the whole. (Alexander 2002a, p.80) Each of these contributing parts Alexander calls a center, “a distinct set of points in space, which, because of its organization, because of its internal coherence, and because of its relation to its context, exhibits centeredness, forms a local zone of relative centeredness with respect to the other parts of space.” (Alexander 2002a, p.84) The term center reflects a need for focus, to identify a coherent concept; and first, how that concept contributes by itself to the whole of a system of parts and second, how that concept works together in concert with the centers around it to contribute to the whole. In a phenomenon Alexander calls a “field effect” each center impacts the whole in a way similar to a gravitational field sending out waves of influence to all the centers within its range of influence, interacting with neighbors and the collection that composes the whole. (Alexander 2002a, p.119) Alexander’s conception of wholeness and centers is grounded in the geometry of space and its physical attributes of position and distance. To apply Alexander’s concepts of physical structure to information systems they must first be translated from a language of physical space to a language a cognitive space where physical position and distance correspond to concepts and consonance in “fields” populated by abstractions rather than shapes. The term choice serves well for that translation of Alexander’s term center into this cognitive space. 6. CHOICES AS CENTERS An information system is a collection of organizing choices. Some of those choices designate the stakeholders’ understanding as to the purpose of the system. These are sometimes called requirements. Some of those choices designate the operations that explain the behavior of the system. These are sometimes called functional requirements. Some of those choices designate information that records the history of system activities and accumulates information as it goes forward. These are sometimes called data requirements. Some of those choices designate points where the activities that go on outside the system come in contact with the system and are called interfaces. Some of those choices designate representations that will characterize elements in the implementation of the system. These are sometimes called design decisions. Traditionally these choices are taken at different times and reflect a conviction toward organizing activities that eventually result in a working information system. A collection of the kinds of these choices and a particular sequence of activities that produces them is sometimes called a development methodology. In modeling and information systems these choices are exactly Alexander’s centers. And in Alexander’s terms the degree to which these choices contribute to the whole (system) determines to what degree the system has life. Choices are the centers that lie at the root of life in information systems. Choices address different levels of system abstraction at different points or stages in system development. A choice by nature admits to alternatives and the prospect of reconsideration when an unfolding context of experience and understanding merits it. Alexander uses this term, unfolding, repeatedly to explain the evolution of an architectural conception toward a useful, intensification of life. In this sense, a living information system design unfolds revealing a continuity of structure and function, and consonance with the context within which it is intended to serve. 7. WHOLENESS AND CENTER PROPERTIES Wholeness (as Alexander describes it) is a “field” of interrelationships between centers in a “space” where the interaction of the centers resonates with the “self” of the “observer.” Alexander defines wholeness as follows: I propose a view of physical reality which is dominated by the existence of this one particular structure, W, the wholeness. In any given region of space, some sub-regions have higher intensity as centers; others have less. Many sub-regions have weak intensity or none at all. The overall configurations of the nested centers, together with their relative intensities, comprise a single structure. I define this structure as “the” wholeness of that region. (Alexander 2002a, p.96) Wholeness is palpable. For a system comprised of strong centers the wholeness “feels strong.” To say that a system has “life” is to say that the system’s wholeness resonates with the observer. The fact that a majority of observers consistently share the same relative feeling of life (as in the image experiments with Alexander’s students) results from the observers’ shared culture, a communal understanding about what order is in their world. The “feeling of life,” the wholeness of systems, derives from identifiable (and in some cases quantifiable) properties that define each and every center and its relationships in the whole. Alexander identifies fifteen properties of centers that contribute to the degree of life experienced by an observer. In Alexander’s list the properties are expressed in terms of architectural visualization although he says that these properties are equally applicable to “actions:” Quantum mechanics asserts, via the mathematics, that particles are physically affected in their behavior by the wholeness of the space in which they move. … [Wholeness] is not restricted to buildings or works of art, but is valid and essential even in those parts of the world we have historically believed to be mechanical in nature. (Alexander 2002a, p.467) The table in Appendix A lists the fifteen properties in Alexander’s architectural vision of centers with his description of each. (Alexander 2002a, pp.239-241) 8. MAPPING ALEXANDER’S WHOLENESS AND CENTER PROPERTIES TO IS MODELING Assessing the intensity of life in an information system requires a determination of what wholeness means in that context. This section presents a mapping of the fifteen properties of centers onto modeling and information systems. Recall that above Alexander’s centers are translated into the concept of choices in the cognitive space of information systems and so it is with the fifteen property descriptions that follow. Each property in the list below is first defined in Alexander’s architectural terms and then expressed in terms of modeling choices. To complete the translation each property is aligned to the information systems design principle to which it may be most closely associated. 1. Levels of Scale: A way that a strong center is made stronger partly by smaller strong centers contained in it, and partly by its larger strong centers that contain it. Choices in information system modeling are often manifest through some arrangement of modularization. Modules regularly organize and enclose a concept representing a chosen characterization of knowledge or understanding about the system behavior being modeled. As the natural human process of problem solving often engages “divide and conquer” as a means of converting a question into “bite-sized pieces,” so modules define both the pieces and how they interrelate in both the decomposition and composition of a system. In this vein Levels of Scale describes the effectiveness with which the “bite-size pieces” subdivide the problem into manageable parts. Are the parts naturally and recognizably distinct? Are the criteria and process of splitting a part into pieces self-evident and readily repeatable? Are the parts readily disposed to recombination? These last two questions reflect on the ability of the partitioning criteria and process to be used at different levels of abstraction. In essence, do they “scale-up” or “scale-down” to meet the “divide and conquer” intent at various levels? Do progressive aggregations of the same divisions reflect recognizable similarities? Restated differently, can the observer “zoom in” and “zoom out” and still retain a useful, relative perspective? Effectiveness also relates to how the pieces combine to span the full range of concerns that the original concept entailed. Does the composition of the pieces effectively represent the concerns manifest in the whole (wholeness is the core goal)? An information systems modeler values and strives for the design principle of stepwise refinement. 2. Strong Centers: Defines the way that a strong center requires a special field-like effect, created by other centers, as a primary source of its strength. In models of information systems choices in some modular form support one another in a collective. While their distinctiveness accents the coalescence of a single concept, they serve as constituents in the collective that accomplishes their corporate task of forming the whole. Well-defined choices reinforce the distributed contribution to the whole by removing the concerns central to each choice from those that surround it. In concert with the Levels of Scale property, Strong Centers brings focus to each choice as a clear, distinct, and discernible decision point in understanding and representing the whole. An information systems modeler values and strives for the design principle of cohesion. 3. Boundaries: The way that the field-like effect of a center is strengthened by the creation of a ring-like center, made of smaller centers that surround and intensify the first. The boundary also unites the center with the centers beyond it, thus strengthening it further. In a collective of system choices the distinctness and modularity of each individual choice combine much like the bounding function of a cellular membrane in biology. The boundary holds the module’s choice (or collection of choices) separate and distinct while presenting the module as locally complete in itself to the system collective. Interfaces describe module cooperation at their boundaries. Interfaces breach the boundary that results from the single-minded focus of modules as strong centers to reveal the interaction they provide in the collective to support the whole. The module’s separateness is balanced by a straightforward and intelligible description of “what” (defined by its interface) that choice does to cooperate with the collective around it. An information systems modeler values and strives for the design principle of encapsulation (or information hiding). 4. Alternating Repetition: The way in which centers are strengthened when they repeat, by the insertion of other centers between the repeating ones. When choices cooperate to achieve a result greater than their individual purpose there is an amplification of life. The interoperation of modules with distinct purposes and functions fulfills the organizing principle of modularization. Furthermore, the participation of individual modules in different arrangements of cooperation reuses and re-tasks them to achieve more than a single purpose within the whole. The rearrangement in fact enables more function than the sum of the choices. Modules (choices) that are conceived to be reused and re-tasked offer the potential that a system’s function can be expanded even after the modules have been crafted. An information systems modeler values and strives for the design principle of extensibility. 5. Positive Space: The way that a given center must draw its strength, in part, from the strength of other centers immediately adjacent to it in space. In a system of modules reflecting the properties of Levels of Scale and Alternating Repetition as described above some choices are crafted to always work in combination with others to achieve their collective purpose. Such a module depends at the outset of its conception on the subordinate cooperation of its neighbors. Its function is primarily to organize or coordinate the contribution of the subordinates to a purpose for which individually they may be ignorant; reflecting a separation of concerns. In this manner the Levels of Scale can be extended to levels of management and dynamic direction toward the purpose of the whole. An information systems modeler values and strives for the design principle of modularization. 6. Good Shape: The way that the strength of a given center depends on its actual shape, and the way this effect requires that even the shape, its boundary, and the space around it are made up of strong centers. At this juncture in translating Alexander’s concept of wholeness onto modeling information systems, Good Shape brings us to point of examining the core of the concept, choices themselves. Together the collective of choices constitutes the knowledge and understanding of the system under consideration. Relevant, complete, clear and concise are the characteristics of choice quality, its Good Shape. Relevant choices reflect the knowledge and understanding of stakeholders. If stakeholders are overlooked or uncooperative, or even ignorant then knowledge and understanding will be incomplete. Clear choices communicate without doubt or confusion. Concise choices are free of extraneous or suspect knowledge or understanding. Although all four characteristics are critical to quality, asserting concise choices may be the most difficult. This results from the individual human experience of stakeholders. To the extent that many if not most information systems are conceived to replace the physical or cognitive activities of humans it is only natural for humans to describe their understanding of the system in terms of their own behavior in achieving its ends. The difficulty arises in the fact that some, if not most, of human behavior follows from habit or convenient, partially pre-existing choices, any or all of which are extraneous to defining the system goals, the essential whole. The difficulty lies not so much in the presence of these extraneous behaviors but in the failure to distinguish them from the germane, the essential understanding of the choice. (Brooks 1987) Left unchallenged, these accidents of implementation are mistaken for essential understanding and bore their way into the collective of choices; erroneously influencing the evolution of choices that follow. Although the pursuit of wholeness does not presume to guarantee perfection, to knowingly tolerate discernible errors of choice denies respect for quality. An information systems modeler values and strives for the design principle of correctness. 7. Local Symmetries: The way that the intensity of a given center is increased by the extent to which other smaller centers that it contains are themselves arranged in locally symmetrical groups. Discernible structure is an important part of clarity. The extent to which the composite structure of a choice is readily apparent enhances the observer’s ability to understand and to recall the details of the given choice. This property interoperates with Levels of Scale and Positive Space to reinforce the perception of naturalness and order that exists in a cooperative grouping of choices. Although there is merit in hiding information from clients of choices as in the discussion of Boundaries above, this does not extend to the modeler and builder. During operation and deployment encapsulation promotes autonomy and separation of concerns. During conception and design the purpose and composition of choices must enjoy transparency exposing the “patterns” and “weave” of their interconnectedness. Simple symmetry like record or file structures regularize the collection and organization of information in implementation as well as design. More sophisticated mechanisms (e.g. inheritance and polymorphism) express symmetries that span the definition and the evolution of families of structure realizing a remarkable fidelity to Alexander’s conception of unfolding. Symmetry is a core enabler of component reuse. An information systems modeler values and strives for the design principle of transparency. 8. Deep Interlock and Ambiguity: The way in which the intensity of a given center can be increased when it is attached to nearby strong centers, through a third set of strong centers that ambiguously belong to both. Choices that interoperate with super-ordinate choices to support a combined purpose tend to recede into the “shadows” as they perform their role largely anonymously. Acting as they do in Alternating Repetition, they may combine to form new choices of function or behavior that subsume their individual identities. The fact that their local function may be reused or re-tasked renders their individual purposes as somewhat ambiguous as they are equally effective in multiple partnerships of whole support. An information systems modeler values and strives for the design principle of composition of function. 9. Contrast: The way that a center is strengthened by the sharpness of the distinction between its character and the character of surrounding centers. There is no particular advantage in multiple choices accomplishing the same purpose. If two choices address the same purpose but in different manners it would be beneficial to separate the “mannerism” from the “purpose” and merge the purposes where possible; thus eliminating redundancy of purpose and the potential for conflicting understanding (e.g. in most data modeling paradigms this property is the foundation for the discriminating function of the primary key). Choices that address the same purpose inevitably cause confusion either by the evidence of one absent the other or in the apparent conflict of their explanations within the whole. Clarity of distinctiveness diminishes confusion and simplifies learning and thus understanding. An information systems modeler values and strives for the design principle of identity. 10. Gradients: The way in which a center is strengthened by a graded series of different-sized centers that then “point” to the new center and intensify its field effect. The practice of iterative decomposition (or iterative aggregation) has the effect of folding the understanding of a great amount of detail into a telescoping structure. That permits selective exhibition at whatever level of detail is appropriate. It is often the case that a great confidence in system understanding at one level of detail need not depend on complete exposure of the underlying levels. Layering is an important tool in complexity management in analysis, in design, in implementation and in documentation of complex systems. Layering in the practice of modeling information systems can occur from various perspectives as well as various levels of module structure. Along with Levels of Scale, Gradients enable the elaboration of detail appropriate to the needs of particular observers. An information systems modeler values and strives for the design principle of scale. 11. Roughness: The way that the field effect of a given center draws its strength, necessarily, from irregularities in the sizes, shapes and arrangements of other nearby centers. In information systems roughness reflects the perceptibility of access to a full range of system service via clearly defined interfaces. When the system is matched to the expectations of the stakeholders (particularly users) the range and granularity of interface options reflect the nature of the needs of the stakeholders to use the system in accomplishing their individual (and sometimes specialized) tasks. Although stakeholders may have widely varying needs for system interaction and patterns thereof, the system’s interface texture should provide recognizable and collectively accessible services to their individual purposes. An information systems modeler values and strives for the design principle of user friendliness. 12. Echoes: The way that the strength of a given center depends on similarities of angle and orientation and systems of centers forming characteristic angles thus forming larger centers, among the centers it contains. Despite the distinctiveness of each choice in a system there should be a degree of harmony in the way those choices are exposed to stakeholders. Patterns of purpose found in collections of choices should be reflected in recognizable patterns of interface that reward familiarity in one context of interaction with ease of recognition in another. Similarities and parallels that reside in purpose should be reflected explicitly in interfaces. Standards, guidelines and frameworks can be effective tools for exposing symmetry of purpose at the interfaces. An information systems modeler values and strives for the design principle of patterns. 13. The Void: The way that the intensity of every center depends on the existence of a still place – an empty center – somewhere in its field. The primary value in most information systems is not in the knowledge that is embedded in their construction (as dear as that may be), but rather it lies in the knowledge that may be gained from applying it to the resolution of some stakeholder question after deployment. It is the question, the void of knowledge in the future, to which the system is directed that determines the system’s value. The strength of a center (in this case a choice) derives from the value of the question it will answer, the knowledge it will deliver, or the direction it indicates when it is applied to the intentions of the stakeholders. From the user stakeholders’ perspective, in computer software terms, this property is closely connected to the characteristic of programmability. Rather than being targeted to a single, narrow question or purpose, a programmable system provides its user with the means to dynamically re-target as the events of the world unfold in the user’s time. The challenge of providing programmability in a choice is two-fold: 1) to what range and extent should re-targeting be enabled and 2) how much investment should be required of the user to accomplish the re-targeting? (Waguespack & Schiano 2003) The developer stakeholders may wish to take choices that are specifically intended to support a range of purpose achieved primarily by aggregating various collections rather than multiplying choices. This might be described as “component-based design.” An information systems modeler values and strives for the design principle of programmability. 14. Simplicity and Inner Calm: The way the strength of a center depends on its simplicity – on the process of reducing the number of different centers which exist in it, while increasing the strength of these centers to make them weigh more. A choice achieves simplicity when it accomplishes its purpose without extraneous detail or embellishment. Although some details may be extraneous to the purpose at hand and appear to be benign, they still have an effect. To eschew extraneous detail is to avoid unwanted (unexpected) side effects that inevitably reveal themselves and foment confusion. The baggage of extraneous detail or embellishment also leads to unwanted and unnecessary choice maintenance. Change is the enemy of calm. There is ample change in the real world. Why add to it for no good reason? (See accidents of implementation above.) An information systems modeler values and strives for the design principle of reliability. 15. Not Separateness: The way the life and strength of a center depends on the extent to which that center is merged smoothly – sometimes even indistinguishably – with the centers that form its surroundings. As this discussion of wholeness revolves around the concept of system life, it is only fitting to recognize that a system is a habitat for all the choices that compose it. The degree to which each choice “peacefully coexists” in the system depends on its contribution to the strength of the whole. In modeling this can be affected by style, by perspective, by dialect and even by tools above and beyond the core limitations of knowledge and understanding. As each choice is added into, deleted from, or modified in the collection its radiating influence must be revisited, reconsidered, to assess the resulting affect on the whole. In the end, the difference between step and misstep in the unfolding process is whether the wholeness is increased or decreased. A decrease in wholeness regresses away from effectiveness and efficiency. An increase in wholeness progresses toward effectiveness and efficiency. Missteps will inevitably have to be undone if progress is to follow. An information systems modeler values and strives for the design principle of elegance. 9. EXAMINING THE MAPPING FROM CENTER PROPERTIES TO MODELING PRINCIPLES In Alexander’s table in Appendix B he depicts his determination of property reinforcement. (Alexander 2002a, p.238) A row depicts a property where each asterisk indicates those properties upon which that row’s property meaning or intensity relies. For example Levels of Scale relies on Strong Centers, Boundaries, Good Shape and Contrast. The last column at the right is appended to recount the modeling principle corresponding to each of the properties from the enumerated discussion above. The translation of center properties to modeling principles is necessarily an interpretation. Alexander’s language and precise terminology is intended for the academics and professionals of physical architecture. And as such the metaphors and subtleties of that discipline are not perfectly congruent with information systems or computer science. The correlations are however, compelling! Alexander explains the properties and interdependencies depicted in Appendix B over an entire volume of his treatise, The Nature of Order. (The reader is encouraged to explore Alexander’s explanations first hand.) In lieu of that level of detail, it is instructive to expand the representation of the Appendix B table’s contents and consider how each property interrelates to the others by enumerating the related properties. It is further interesting to see how the design principle mappings also expose intriguing nuances of design. The table in Appendix C “unpacks” the encoding of Appendix B transcribing it into words and replacing the asterisks with their corresponding center properties and design principles. The reader may wish to pause at this point and reflect on Appendix C to consider the terms and relationships; perhaps reviewing their personal experience of building information systems to consider if the mappings offered here capture any of their own philosophy or insight in answering the question, “How do you assess a great design?” 10. BUILDING INFORMATION SYSTEMS WITH LIFE Just as Christopher Alexander’s ultimate goal is to enlighten architects and improve their products for society’s sake, incorporating the wholeness theory into our pedagogy of systems development can have similar benefits to society’s information systems. The following discussion explores a process informed by the theory of wholeness and life. One of Alexander’s primary arguments is that process is key to the success of bringing about systems with life. He sums up his argument as follows: Our current view of architecture rests on too little awareness of becoming as the most essential feature of the building process. Architects are much too concerned with the design of the world (its static structure), and not yet concerned enough with the design of the generative processes that create the world (its dynamic structure). (Alexander 2002b, p.4) The building of a house or office building or an information system is the result of thousands (perhaps tens of thousands) of decisions. Each of these decisions may result in more or less life in the resulting structure. Any hope that the product achieves significant life depends on the compounding effects of good decision after good decision. Alexander argues that good decisions form a stepwise unfolding where each transformation step intentionally attempts to enhance the whole by applying a transformation that intensifies one or more of the fifteen properties of centers forming the wholeness. A transformation can change the number of center(s) (choice(s)) or alter the property(s) of existing one(s). The key is continuous awareness of the fifteen design principles and how each transformation affects the life of the whole. 11. APPLYING ALEXANDER’S GENERATIVE BUILDING PROCESS Christopher Alexander’s theory and philosophy of building to achieve life through a structure preserving transformation process resonates across the breadth of software engineering principles that have evolved over the past several decades. More importantly it resonates with the more recent focus of attention on systems as reflected in business models, business process models and business process reengineering independent of software design or programming. In a fundamental sense, Alexander’s approach focuses on the “why” of the building process. He continuously redirects decision-making energy to the question, “How does each decision increase life in the system by fulfilling the stakeholders’ evolving concerns?” and “What does life mean to these stakeholders?” Much of the progress of systems and software engineering has served to make systems more “objectively” sound, but is that sufficient if their “subjective” soundness is in question? Alexander argues that when the “why” is left separate from the “what” and the “how,” the system may work but it will lack life, “ ... mistakes of adaptation, ways in which the [system] fails to do what it is supposed to do, fails to meet the needs of the people who use it, or is more awkward, more annoying, less useful, than it is supposed to be.” (Alexander 2002b, p.198) Alexander’s theoretical and philosophical conception of building for life offers a fixative, applying proven software engineering principles that achieve effective and efficient systems not only in “objectivity,” the “mechanics of system implementation,” but also in “subjectivity,” the harmony with the “why” of the system’s stakeholders. This “glue” is not a new principle, but rather it is a clarified vision of where, when, how and why to incorporate software engineering principles in the system building process. This “clarified vision” does not directly require that teachers change what they teach to build information systems, but rather to change how they think about what they teach and where their students must focus. 12. COMPLEXITY AND THE IMPROBABILITY OF WORKING SYSTEMS The statistics of system reliability readily show that the multiplication of parts exponentially decreases the probability that the whole will be reliable – unless there is a compensating exponential increase in the reliability of each individual part. So how then is it possible to engineer a working system with more than a few dozen parts? Consider, for example, that in order to produce a system of 100 parts with 90% reliability each part must be at least 99.89% reliable. Put another way, if the system were to be expected to perform correctly 9 out of 10 times, each and every part would have to fail fewer than 11 times out of every 10,000 tests! Then how is it in the natural world all around us there are working biological and ecological systems with literally millions of parts? Alexander’s answer to this question is “generated structures.” All the well-ordered complex systems we know in the world, all those anyway that we view as highly successful, are GENERATED structures, not fabricated structures. (Alexander 2002b, p.180) The first definition offered by the New Oxford American Dictionary, 2nd Ed. for “fabricate” is “to falsify, to fake, cook; invent, make up” as if to emphasize that building in any other way than generating may result in the appearance of the desired outcome, but will at best only achieve an illusion of a viable system. Alexander notes in reference to information systems that some computer scientists have proudly told him that computer programs are the most complex objects ever designed by humans. He responds as follows. If indeed the programs are so complex, then it is likely that they, too, will be potentially subject to hundreds of thousands, perhaps millions of egregious mistakes of adaptation. Here I am not only talking about “bugs” – failures which stop a program from running altogether. I am talking about mistakes of adaptation, ways in which the program fails to do what it is supposed to do, fails to meet the needs of the people who use it, or is more awkward, more annoying, less useful, than it is supposed to be. ...[I]t is fair to say that truly successful programs can only be generated; and that the way forward in the next decades, towards programs with highly adapted human performance, will be through programs which are generated through unfolding, in some fashion comparable to what I have described for buildings. (Alexander 2002b, p.198) So what about complexity; how is it overcome? The complexity that defeats comprehension does not result from the number of parts found in the construction or the number of steps that make up a process. The complexity that defeats comprehension results from the lack of a discernible path in the unfolding system structure. In order for an observer to understand a system they must be able to “see” how the parts interrelate and interoperate in the structure or process. More succinctly, how the parts contribute to the wholeness of the system must be evident. Exposing this “path” has always been at the foundation of problem solving mechanisms and techniques evolved over the ages to deal with complexity. That is the focus, even the purpose, of the fifteen design principles aligned with Alexander’s fifteen properties of the centers of wholeness in systems with life. Herein lies the key to great design, the vision, the talent and/or the taught skill – Perceive the wholeness and the impact of individual design decisions on the system as a whole – not only in the static present but, in the dynamic unfolding of the stakeholders’ perspectives of life; in the system they will live with. 13. CONCLUSION Teaching “Great Design” in information systems is a virtuous and elusive goal. There seem to be fewer and fewer opportunities for students (or practitioners) to develop a “sense of great design” on their own through practicum and repetition. Honestly, many academic IS programs must relent to curriculum guidelines or local politics settling for goals of basic programming knowledge with the latest tools and the most general of business system concepts. This paper explores a means to incorporate a “sense of great design” into existing pedagogy regardless of the paradigm (entity-relationship, object-oriented, aspect-driven, extreme, etc.). Realign the modeling focus. Focus on why to use the tools – not the tools themselves. Alexander’s work in physical architecture frames learning about hammers, nails, windows and doors in a big picture of systems and the life nurtured when they are applied in a harmonious vision of wholeness. The goal of an effective pedagogy for developing great system designers cannot be fulfilled in this writing. This is but a step in unfolding a mindset for building living structures. But it is a step, I believe, an important step in the right direction. 14. ACKNOWLEDGEMENTS Thanks to my colleagues in Computer Information Systems at Bentley College for their insightful discussions and comments. Thanks also to the computing faculty at the University of South Alabama who provided an opportunity for and contributed to some the earliest discussions of this work. Thanks to the ISECON community for continuing to support a venue where ideas and discussions of information systems education can be aired and debated. 15. REFERENCES Alexander, Christopher; Silverstein, Murray; Angel, Shlomo; Ishikawa, Sara, and Abrams, Denny (1975) The Oregon Experiment, New York: Oxford University Press. Alexander, Christopher, Ishikawa, Sara, Silverstein, Murray, Jacobson, Max, Fiksdahl-King, Ingrid and Angel, Shlomo (1977) A Pattern Language, New York, NY: Oxford University Press. Alexander, Christopher (1979) A Timeless Way of Building, New York, NY: Oxford University Press. Alexander, Christopher (2002) The Nature of Order An Essay on the Art of Building and the Nature of the Universe: Book I - The Phenomenon of Life, Berkeley, California: The Center for Environmental Structure. Alexander, Christopher (2002) The Nature of Order An Essay on the Art of Building and the Nature of the Universe: Book II - The Process of Creating Life, Berkeley, California: The Center for Environmental Structure. Alexander, Christopher (2004) The Nature of Order An Essay on the Art of Building and the Nature of the Universe: Book IV - The Luminous Ground, Berkeley, California: The Center for Environmental Structure. Alexander, Christopher (2005) The Nature of Order An Essay on the Art of Building and the Nature of the Universe: Book III - A Vision of a Living World, Berkeley, California: The Center for Environmental Structure. Brooks, Frederick P. (1987) "No Silver Bullet: Essence and Accidents of Software Engineering," Computer, Vol. 20, No. 4 (April) pp. 10-19. Coad, Peter (1992) “Object-Oriented Patterns,” Communications of the ACM, 35, 9 [September]: 152-159. Coplien, James and Schmidt, Douglas, Eds. (1995) Pattern Languages of Program Design, Reading, Massachusetts: Addison-Wesley. Gamma, Erich, Helm, Richard, Johnson, Ralph and Vlissides, John (1995) Design Patterns: Elements of Reusable Object-Oriented Software, Reading, Massachusetts: Addison-Wesley. Waguespack, Leslie J. Jr., with William T. Schiano (2003) “Component-Based IS Architecture,” In IS Management Handbook, 8th Edition, Chapter 42, Auerbach, pp. 531-543. Appendix A Alexander’s Properties of Centers Property Description 1. Levels of Scale A way that a strong center is made stronger partly by smaller strong centers contained in it, and partly by its larger strong centers that contain it. 2. Strong Centers Defines the way that a strong center requires a special field-like effect, created by other centers, as a primary source of its strength. 3. Boundaries The way that the field-like effect of a center is strengthened by the creation of a ring-like center, made of smaller centers that surround and intensify the first. The boundary also unites the center with the centers beyond it, thus strengthening it further. 4. Alternating Repetition The way in which centers are strengthened when they repeat, by the insertion of other centers between the repeating ones. 5. Positive Space The way that a given center must draw its strength, in part, from the strength of other centers immediately adjacent to it in space. 6. Good Shape The way that the strength of a given center depends on its actual shape, and the way this effect requires that even the shape, its boundary, and the space around it are made up of strong centers. 7. Local Symmetries The way that the intensity of a given center is increased by the extent to which other smaller centers that it contains are themselves arranged in locally symmetrical groups. 8. Deep Interlock and Ambiguity The way in which the intensity of a given center can be increased when it is attached to nearby strong centers, through a third set of strong centers that ambiguously belong to both. 9. Contrast The way that a center is strengthened by the sharpness of the distinction between its character and the character of surrounding centers. 10. Gradients The way in which a center is strengthened by a graded series of different-sized centers that then “point” to the new center and intensify its field effect. 11. Roughness The way that the field effect of a given center draws its strength, necessarily, from irregularities in the sizes, shapes and arrangements of other nearby centers. 12. Echoes The way that the strength of a given center depends on similarities of angle and orientation and systems of centers forming characteristic angles thus forming larger centers, among the centers it contains. 13. The Void The way that the intensity of every center depends on the existence of a still place – an empty center – somewhere in its field. 14. Simplicity and Inner Calm The way the strength of a center depends on its simplicity – on the process of reducing the number of different centers which exist in it, while increasing the strength of these centers to make them weigh more. 15. Not Separateness The way the life and strength of a center depends on the extent to which that center is merged smoothly – sometimes even indistinguishably – with the centers that form its surroundings. Appendix B Alexander’s Properties of Centers Associated to Modeling Principles Alexander’s Property 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Modeling Principle 1 Levels of Scale * * * * Stepwise Refinement 2 Strong Centers * * * * * * Cohesion 3 Boundaries * * * * * * Encapsulation 4 Alternating Repetition * * * * * * Extensibility 5 Positive Space * * * * * * * * Modularization 6 Good Shape * * * * * * * * Correctness 7 Local Symmetries * * * * Transparency 8 Deep Interlock and Ambiguity * * * * * * Composition of Function 9 Contrast * * * * * * Identity 10 Gradients * * * * * * * Scale 11 Roughness * * * * * * User Friendliness 12 Echoes * * * * * * Patterns 13 The Void * * * * * * Programmability 14 Simplicity and Inner Calm * * * * * Reliability 15 Not Separateness * * * * * * * Elegance Appendix C Alexander’s Properties of Centers Associated to Modeling Principles (unpacked) Alexander’s Property relies on properties: Modeling Principle relies on principles: 1 Levels of Scale Strong Centers Boundaries Good Shape Contrast Stepwise Refinement Cohesion Encapsulation Correctness Identity 2 Strong Centers Alternating Repetition Local Symmetries Contrast Gradients The Void Not Separateness Cohesion Extensibility Transparency Identity Scale Programmability Elegance 3 Boundaries Strong Centers Alternating Repetition Local Symmetries Deep Interlock and Ambiguity Contrast Gradients Encapsulation Cohesion Extensibility Transparency Composition of Function Identity Scale 4 Alternating Repetition Strong Centers Positive Space Good Shape Deep Interlock and Ambiguity Contrast Not Separateness Extensibility Cohesion Modularization Correctness Composition of Function Identity Elegance 5 Positive Space Levels of Scale Strong Centers Boundaries Good Shape Local Symmetries Contrast Roughness The Void Modularization Stepwise Refinement Cohesion Encapsulation Correctness Transparency Identity User Friendliness Programmability 6 Good Shape Levels of Scale Strong Centers Positive Space Good Shape Deep Interlock and Ambiguity Gradients Echoes Simplicity and Inner Calm Correctness Stepwise Refinement Cohesion Modularization Correctness Composition of Function Scale Patterns Reliability 7 Local Symmetries Levels of Scale Positive Space Contrast The Void Transparency Stepwise Refinement Modularization Identity Programmability 8 Deep Interlock and Ambiguity Alternating Repetition Positive Space Contrast The Void Composition of Function Extensibility Modularization Identity Programmability 9 Contrast Boundaries Positive Space Deep Interlock and Ambiguity Gradients The Void Not Separateness Identity Encapsulation Modularization Composition of Function Scale Programmability Elegance 10 Gradients Levels of Scale Strong Centers Local Symmetries Contrast Roughness Echoes Not Separateness Scale Stepwise Refinement Cohesion Transparency Identity User Friendliness Patterns Elegance 11 Roughness Strong Centers Positive Space Good Shape Gradients Roughness Simplicity and Inner Calm Not Separateness User Friendliness Cohesion Modularization Correctness Scale User Friendliness Reliability Elegance 12 Echoes Levels of Scale Good Shape Local Symmetries Gradients Roughness Not Separateness Patterns Stepwise Refinement Correctness Transparency Scale User Friendliness Elegance 13 The Void Levels of Scale Boundaries Positive Space Local Symmetries Contrast Simplicity and Inner Calm Programmability Stepwise Refinement Encapsulation Modularization Transparency Identity Reliability 14 Simplicity and Inner Calm Local Symmetries Deep Interlock and Ambiguity Echoes The Void Not Separateness Reliability Transparency Composition of Function Patterns Programmability Elegance 15 Not Separateness Boundaries Positive Space Deep Interlock and Ambiguity Gradients Roughness The Void Simplicity and Inner Calm Elegance Encapsulation Modularization Composition of Function Scale User Friendliness Programmability Reliability