Back Room Front Room 2
Back Room Front Room 2
Back Room Front Room 2
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