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.

46<br />

ENTERPRISE INFORMATION SYSTEMS VI<br />

structures that are difficult to change, so they may<br />

have more influence on both the architecture and on<br />

the business structure itself than in the ideal case.<br />

The fundamental principle is that the three structures<br />

align.<br />

As an aside, it is instructive to consider one<br />

popular example of misalignment: that which results<br />

from geographically distributed development or<br />

outsourcing. Geographically distributed development<br />

comes about from internal business concerns,<br />

history, corporate acquisitions and partnerships, and<br />

sometimes from simple politics. It suggests a set of<br />

structures and patterns that can be arbitrarily<br />

different from the core structures of the business.<br />

Geographic boundaries are among the most difficult<br />

ones to change: distance is a compelling force in<br />

any joint endeavour. This is the great risk of<br />

geographic distribution and outsourcing. (Several of<br />

our organizational patterns address this problem by<br />

insisting that the geographic structure follow the<br />

business structure: e.g., ORGANIZATION FOLLOWS<br />

LOCATION and ORGANIZATION FOLLOWS MARKET<br />

are two such patterns.)<br />

Software engineering—true to its name—usually<br />

views these as technological issues. It is true that<br />

technology opens new doors of opportunity in<br />

design. However, technology more often serves as a<br />

medium rather than as a form. While it extends the<br />

range of design into more useful and beautiful<br />

forms, it also extends the range of design in the other<br />

direction. Alexander notes that modern building<br />

technology has given us power to set our intuition<br />

aside and to build horrid structures. These structures<br />

lack the differentiation that owes to human design.<br />

Just as modern technology allows us to build<br />

buildings that appear to express art for its own sake,<br />

rather than for the sake of function, so modern<br />

software design technologies encourage us to use<br />

methodologies or design fads which rarely can be<br />

justified in terms of their contribution to quality of<br />

human life. Such benefits as are promised by these<br />

technologies are usually taken at face value. They<br />

usually relate more to near-term business<br />

considerations such as time to market and<br />

development cost, rather than to the amount of time<br />

it will take the user to learn to use the program, or<br />

the cost that the user will incur from the program’s<br />

human/machine interface inefficiencies. Just as<br />

modern technology allows us to build ugly<br />

buildings, modern methods, languages, and GUIbuilders<br />

allow us to build astonishingly ugly<br />

software.<br />

4 ENTERPRISE-LEVEL HUMAN-<br />

CENTERED DESIGN<br />

Software development culture is entering a phase<br />

where it is recognizing the importance of the human<br />

element. Much of the realization comes with<br />

widespread frustration with widely used software<br />

platforms. It was this notion of human-centred<br />

design that was at the heart of the Macintosh project<br />

at Apple, which in retrospect proved to be a leader in<br />

the way it gave stature to human concerns in the<br />

human interface.<br />

This is not uniquely a human interface concern.<br />

Raskin (Raskin 2000) notes that computing is all<br />

about supporting the users’ conceptual model of<br />

their workflows. Most of that relates to artefacts and<br />

information that travels between people; it is all<br />

about the structure of the users’ organization. Beyer<br />

and Holtzblatt’s great, common sense book (Beyer<br />

Holtzblatt 1999) on software design tells us how to<br />

build these conceptual models: Go and sit with your<br />

users and, as Yogi Berra would say, you can observe<br />

a lot just by watching.<br />

The great folks of software have recognized for<br />

years that understanding the structure and behaviours<br />

of the organizations that use software and<br />

the people they comprise can lead to great design<br />

(e.g., Weinberg 1980). However, the human agenda<br />

never seemed to take root. Through the 1970s and<br />

1980s, any human revolution in software seemed<br />

elusive.<br />

This perspective took on new life in the early<br />

1990s when eight leaders of the object-oriented<br />

programming community came together in a<br />

meeting in Colorado to ponder why object-oriented<br />

development hadn’t delivered on its promises of<br />

reuse and productivity. Their conclusion was that<br />

object orientation had been ignoring the<br />

relationships between objects, and that programming<br />

had become a dehumanized industry. If you believe<br />

Conway’s Law, and map the object-to-object<br />

relationships onto the groups of people that program<br />

those objects, the problem again reduces to<br />

organizational structure. That meeting crystallized<br />

the software pattern discipline.<br />

Most early patterns from this discipline<br />

continued in the computer science tradition of<br />

software architecture: focusing on recurring<br />

structures within the software itself. But a small<br />

number of people took the next step to articulate<br />

patterns in the organizations that create or use this<br />

software, and suggested focusing on that structure to<br />

cure software ills. Those works included Norm<br />

Kerth’s Caterpillar’s Fate (Kerth 1995), Bruce<br />

Whitenack’s RAPPeL (Whitenack 1995), and a<br />

collection of so-called Development Process

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

Saved successfully!

Ooh no, something went wrong!