08.01.2013 Views

Back Room Front Room 2

Back Room Front Room 2

Back Room Front Room 2

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Generative Pattern Language patterns by this author<br />

(Coplien 1995).<br />

Others would soon follow. In the following year,<br />

Alistair Cockburn published Prioritizing Forces in<br />

Software Design (Cockburn 1996) at the same time<br />

that Ward Cunningham’s EPISODES pattern<br />

language appeared (Cunningham 1996). The former<br />

would become one of the foundations of the Agile<br />

Alliance, and the latter would become one of the<br />

foundations of Extreme Programming. Both of these<br />

foundations drew from similar principles that could<br />

be found in their counterparts of the previous year,<br />

and that would continue to be found in their<br />

successors. Unlike computer science design, which<br />

was master-planned according to some method,<br />

these techniques gave room to emergence: to design<br />

the same way that nature grows. Whereas computer<br />

science tried to employ formalism to omnisciently<br />

predict outcomes, these approaches embraced<br />

feedback. The dichotomy continues: controlling<br />

versus responsive, revenues versus costs,<br />

technology-centred versus people-centred.<br />

Of course, both cost and revenues matter in real<br />

development; formalism has its place; truly mature<br />

processes may be repeatable and predictable.<br />

However, in the 1980s the pendulum had swung too<br />

far in the favour of the technological perspective.<br />

Patterns in general, and organizational patterns in<br />

particular, restored some balance to the objectoriented<br />

design community. While the architectural<br />

pattern folks wrote patterns of the structure of<br />

software, the organizational patterns folks wrote<br />

patterns of organizational structure. The human side<br />

of computing and technical side of computing had<br />

finally found a common language to express the<br />

common structure they each had been gazing at from<br />

their own perspective for decades.<br />

The computer science path to design looks to<br />

mathematics, type theory, notations and methods to<br />

attain excellence. The human-cantered way looks to<br />

organizational structure and to the behaviours of<br />

people in those organizations. Great software<br />

design, if any different from organizational design,<br />

is too closely linked with it to be considered a<br />

separate discipline.<br />

5 PATTERNS<br />

If patterns had just been a notation or a language that<br />

allowed programmers and organizational people to<br />

communicate, that would have been one thing. But<br />

there is more to patterns than that, and what the<br />

deeper foundations portend for organizational<br />

structure and software development may be key to<br />

ORGANIZATIONAL PATTERNS<br />

the human component of our discipline. It is<br />

important to explore these foundations.<br />

5.1 Structure in Design<br />

Design is all about solving problems by building<br />

something, and building has a lot to do with<br />

composition. In fact, most of our facilities for<br />

interacting with the world around us are based on<br />

structure and perception of structure. Human<br />

perception itself is based on structure, symmetry,<br />

and patterns (Alexander Huggings 1964). The core<br />

of what humans find beautiful isn’t perfect<br />

symmetry: the fine structures of design are slightly<br />

asymmetric. This is no accident; there is no perfect<br />

symmetry in nature, and understanding the<br />

foundations of this nature of nature owes much to<br />

modern advances in physics (Close 2000). Physicists<br />

have a word they use to describe the configurations<br />

that result from these “broken symmetries:”<br />

patterns. Such deep stuff of the structure of the<br />

Universe underlies Alexander’s design worldview:<br />

Nature, too, creates beautiful structures which<br />

are governed by repeated application of<br />

structure-preserving transformations. In this<br />

connection, I think it is useful to remark that<br />

what I call structure-preserving transformations<br />

are very closely related to what has become<br />

known as “symmetry breaking” in physics.<br />

(Alexander 2002: p. 63)<br />

5.2 Structure of Organizations<br />

If these ideas underlie the structure of nature, they<br />

should underlie the structure software systems that<br />

interact with “nature” or the cultural structures that<br />

emerge from nature. You might object and say that<br />

culture is too far removed from nature for patterns to<br />

propagate to that level but, no: it’s patterns all the<br />

way down. The classic texts on the structure of<br />

cultures use an almost perfectly analogous notion of<br />

pattern to describe even the architecture of human<br />

organizations:<br />

Patterns are those arrangements or systems of<br />

internal relationship which give to any culture its<br />

coherence or plan, and keep it from being a mere<br />

accumulation of random bits. They are therefore<br />

of primary importance. (Kroeber 1948: p. 119)<br />

5.3 It’s All About Change<br />

47<br />

Evolution has had a long time to produce a perfect<br />

human culture, but it doesn’t seem to have fared

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

Saved successfully!

Ooh no, something went wrong!