Abstract
Most of the software discipline has come to honor the role of architecture to organize software development. The software pattern discipline has taken up the architectural metaphor quite literally, borrowing its key notions from Christopher Alexander, an innovative master builder of houses, neighborhoods, and towns. However, the software industry has missed the obvious: that architecture is a secondary concern that precipitates from the structure of the enterprise that builds it. Getting the architecture right means getting the enterprise structure right: it is certainly a necessary and potentially sufficient condition for achieving most of the goals that software engineering holds out for architectural activity.
Like most metaphors, the architectural metaphor breaks down somewhere. Unlike houses, whose structure tends to reflect the activities of the end users of the product, the structure of software exists more to serve those who build it than those who use it. This parallel has been shifting, but not on the software side: modern buildings, driven more by technology that make it possible to create 100-foot spans on the ground floor of a skyscraper, pay homage to the technology to be used in construction, and to the design techniques used to support that technology. Software, a largely technological field, has had this outlook almost from the beginning. As an industry focused on technology, it is no surprise that our software pattern discipline has taken up a largely technical agenda. Our current direction in patterns avoids the most central foundation of the pattern discipline: to build systems that are beautiful, morally profound, and “habitable” for the people they touch.
Yet there is hope: as a strong parallel to the structural concerns of software that are found in software architecture, organizational patterns give a voice to the crucial structural constructs of software development enterprises. It is these structures of human relationships, rather than the technological underpinnings, that drive architecture. That fact has long been known to the industry as Conway’s Law, but most managers view Conway’s Law more as a Dilbertesque joke than as a sober planning principle.
Organizational patterns are a major stride for creating the generative structure of the business—the structure of the enterprise itself—that gives rise to such other important structures as the system architecture and, by inference, the system’s human interface. The first major pattern language of software organizational structure has been completed after a decade of research. There is much more that can be done—not just by organizational specialists, but also by “software people” of every job and description.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alexander, C., and A. W. F. Huggings. “On Changing the Way People See.” Perception and Motor Skills 19, Southern University Press, 1964, pp. 235–253.
Alexander, Christopher. The Timeless Way of Building. New York: Oxford University Press, 1979.
Alexander, C. “The Origins of Pattern Theory, The Future of the Theory, and the Generation of a Living World.” In IEEE Software Special Issue on Architecture Design 16(5), September 1999.
Alexander, C. The Nature of Order: Book One: The Process of Creating Life. Berkeley, CA: The Center for Environment Structure, 2002.
Beyer, Hugh, and Karen Holtzblatt. Contextual Design. San Francisco: Morgan Kauffman, 1998.
Close, F. Lucifer’s Legacy: The Meaning of Asymmetry. Oxford: Oxford University Press, 2000.
Cockburn, A. Prioritizing Forces in Software Design. In Vlissides, J., Jim Coplien and Norm Kerth, eds., Pattern Languages of Program Design II. Reading, MA: Addison-Wesley, 1996.
Conway, Melvin E. How do Committees Invent? Datamation 14(4), April 1968.
Coplien, J. “A Development Process Generative Pattern Language.” In Coplien, J., and D. Schmidt, eds., Pattern Languages of Program Design. Reading, MA: Addison-Wesley, 1995.
Coplien, J. Multi-paradigm Design for C++. Reading, MA: Addison, Wesley, 1998.
Coplien, J., and N. B. Harrison. Organizational Patterns of Agile Software Development. Upper Saddle River, NJ: Prentice-Hall, 2004.
Cunningham, W. “EPISODES: A Pattern Language of Competitive Development.” In Vlissides, J., Jim Coplien and Norm Kerth, eds., Pattern Languages of Program Design II. Reading, MA: Addison-Wesley, 1996.
Grinter, R., and J. Herbsleb. “Architectures, Coordination, and Distance: Conway’s Law and Beyond.” IEEE Software, Sept/Oct 1999, pp. 63–70.
Kerth, N. “Caterpillars Fate: A Pattern Language for Transforming from Analysis to Design.” In Coplien, J., and D. Schmidt, eds., Pattern Languages of Program Design. Reading, MA: Addison-Wesley, 1995.
Kroeber, A. Anthropology: Culture, Patterns and Process. New York: Harcourt, Brace and World, 1948.
Naur, P. and B. Randell, eds. Proceedings of NATO Software Engineering Conference. Garmisch, Germany, 1968.
Raskin, J. The Humane Interface: New Directions for Designing Interactive Systems. Reading, MA: Addison-Wesley, 2000.
Swieringa, J., and A. Wierdsma. Becoming a Learning Organization: Beyond the Learning Curve. Reading, MA: Addison-Wesley, 1992.
Weinberg, Gerald M. Software Psychology. Cambridge, MA: Winthrop Publishers, 1980.
Whitenack, B. “RAPPeL: A Requirements Analysis Pattern Language for Object-Oriented Development.” In Coplien, J., and D. Schmidt, eds., Pattern Languages of Program Design. Reading, MA: Addison-Wesley, 1995.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer
About this paper
Cite this paper
Coplien, J.O. (2006). Organizational Patterns. In: Seruca, I., Cordeiro, J., Hammoudi, S., Filipe, J. (eds) Enterprise Information Systems VI. Springer, Dordrecht. https://doi.org/10.1007/1-4020-3675-2_6
Download citation
DOI: https://doi.org/10.1007/1-4020-3675-2_6
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-3674-3
Online ISBN: 978-1-4020-3675-0
eBook Packages: Computer ScienceComputer Science (R0)