08.01.2013 Views

Back Room Front Room 2

Back Room Front Room 2

Back Room Front Room 2

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ORGANIZATIONAL PATTERNS<br />

Beyond Technology to People<br />

James O. Coplien<br />

PROG Group, Vrije Universiteit Brussel, PO Box 4557, Wheaton, IL 60540, USA<br />

Email: JOCoplien@cs.com<br />

Keywords: Pattern language, software development, architecture, anthropology, ethnography, Christopher Alexander.<br />

Abstract: Most of the software discipline has come to honor the role of architecture to organize software development.<br />

The software pattern discipline has taken up the architectural metaphor quite literally, borrowing its key<br />

notions from Christopher Alexander, an innovative master builder of houses, neighborhoods, and towns.<br />

However, the software industry has missed the obvious: that architecture is a secondary concern that<br />

precipitates from the structure of the enterprise that builds it. Getting the architecture right means getting the<br />

enterprise structure right: it is certainly a necessary and potentially sufficient condition for achieving most of<br />

the goals that software engineering holds out for architectural activity.<br />

Like most metaphors, the architectural metaphor breaks down somewhere. Unlike houses, whose structure<br />

tends to reflect the activities of the end users of the product, the structure of software exists more to serve<br />

those who build it than those who use it. This parallel has been shifting, but not on the software side: modern<br />

buildings, driven more by technology that make it possible to create 100-foot spans on the ground floor of a<br />

skyscraper, pay homage to the technology to be used in construction, and to the design techniques used to<br />

support that technology. Software, a largely technological field, has had this outlook almost from the<br />

beginning. As an industry focused on technology, it is no surprise that our software pattern discipline has<br />

taken up a largely technical agenda. Our current direction in patterns avoids the most central foundation of<br />

the pattern discipline: to build systems that are beautiful, morally profound, and “habitable” for the people<br />

they touch.<br />

Yet there is hope: as a strong parallel to the structural concerns of software that are found in software<br />

architecture, organizational patterns give a voice to the crucial structural constructs of software development<br />

enterprises. It is these structures of human relationships, rather than the technological underpinnings, that<br />

drive architecture. That fact has long been known to the industry as Conway’s Law, but most managers view<br />

Conway’s Law more as a Dilbertesque joke than as a sober planning principle.<br />

Organizational patterns are a major stride for creating the generative structure of the business—the structure<br />

of the enterprise itself—that gives rise to such other important structures as the system architecture and, by<br />

inference, the system’s human interface. The first major pattern language of software organizational<br />

structure has been completed after a decade of research. There is much more that can be done—not just by<br />

organizational specialists, but also by “software people” of every job and description.<br />

1 INTRODUCTION<br />

Architecture is one of the longest-standing and<br />

widely known metaphors in computer science. Most<br />

software engineering communities—whether in<br />

software production, computer science education, or<br />

software management—harbour deeply held<br />

intuitions about its importance. Awe of architecture<br />

(and not, perhaps surprisingly, for either<br />

requirements or for coding) has propelled the<br />

popularity of notations such as UML, the<br />

I. Seruca et al. (eds.), Enterprise Information Systems VI,<br />

© 2006 S pringer. Printed in the Netherlands.<br />

43<br />

43–52.<br />

methodologies that embed them, and the tools that<br />

express them.<br />

Each software development organization has its<br />

own architectural principles. Such principles as<br />

coupling and cohesion and modularity are almost<br />

universal, and other principles such as the Laws of<br />

Demeter are peculiar to such design styles as object<br />

orientation.<br />

Are these true principles, or just shadows of a<br />

deeper and more important principle that has come<br />

to be ignored?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!