
2 CONSTRAINED MODELS OF A
POSSIBLE FUTURE
We begin by considering some high-level notions of
what is happening when, typically, a client engages
a developer to design, implement, deploy and
operate (at least initially operate) a system to support
a chunk of the client’s business, ultimately business
with its customers. We make very general remarks
here that should not be taken to abstract some
specific approach to software development. Also, we
will tend to use the term “organization” and
“business” without regard to whether there is a
financial-profit motivation for such entities.
What is really going on when a business decides
it needs a new IT system and commissions a
developer to build and deploy the system? First the
business will have identified a need. It does not
matter how poorly researched and costed or vaguely
stated the need is, the business, usually a person with
a vision of the future business, has said it must have
an IT system,
α
. Implicitly what is being said is that
the business wants to have changed from its current
situation, K, to a new situation, P, and to do so it
needs an
α
. So, wanting a new system, wanting
α
,
means wanting to change – wanting a new business
based on the current business.
All IT systems, especially their software
component, represent a model of the business and
processes of an organisation. Imagine a range of
business models for a firm, each model being
represented by a letter of the alphabet. If a mature
company operating according to model K, wants to
move from K to P by introducing
α
, the essential
elements for making P a reality must be captured in
the system
α
. In other words,
α
must provide, as
best as possible within time and budget constraints,
an essential model (McManemin & Palmer, 1984) of
the business P (not of the original business K). So,
whatever methods software developers use to work
out what model captures the essence of P, whether
they use SSADM, OOAD, XP, Scrum, software will
be implemented and deployed to represent just some
part of the world of the anticipated, future business
P, even though it was first envisaged in the world of
business K. In other words: as people in our
community know, but sometimes don’t talk enough
about, there is a lot going on when software is being
developed. Pretending we know exactly how a
business system will turn out is at best being
optimistic, and getting from the starting point (K, as
a business was) to the end point (P, as the business
wants to be) is often very, very tricky.
There are systems, often dominated by the
mathematics of science or engineering, whose
requirements can be fully stated in advance of
design, coding and testing (e.g. various forms of
control systems) but IT systems that are concerned
with business or complex organizational behavior
are rarely of this sort. So, what frequently happens is
that on the way from K to P, the business visionaries
typically realise that P, is not where they want to end
up at all. At some point it is realised that Q is the
place to aim for, then R seems the obvious end point,
and so on. Agile software developers know this and
act to accommodate the inevitable change. The
question is why is it so clear in agile development
and so concealed in so-called traditional approaches.
However, the development process is not just
about getting from one model of some part of a
business to another. The interactions with people is
profound and complex. Often these disrupt a
business because the change represented in an IT
system are unwelcome by many of those affected.
The commissioning, development, deployment,
operation and use of software-intensive systems
means change to a business – regardless of whether
the introduction of a new system, or major
modifications to an existing system are to take place.
This is again because the IT system is a model
representing the business and processes of an
organisation, albeit a grossly simplified, possibly
distorted model. This can be seen even in the most
simple situation. For example, if a successful (non-
chain) main street retailer introduces a system to
monitor and manage inventory levels, it will be
because of a reason – maybe the retailer has realised
that too much of its capital is tied up in stock. If the
situation were acceptable no change would be
needed: the need for change gives rise to the IT
system. To develop or procure a system to manage
inventory will require some model of what the
business is going to be (after the introduction of the
new system). However, even if those promoting the
change understand it, members of an organisation
that are affected by it may not really understand the
motivation for change.
One explanation of this type of situation
characterises work environments in terms of
“ordered dimensions” and “unordered dimensions”.
Change, including that enabled or accelerated by IT,
shifts the ordered dimensions of an environment so
that they become unordered. In ordered dimensions
people function within known and/or predictable
environments; in unordered dimensions they
function within chaotic/unpredictable environments
(the effects of which can be magnified by personal
change). In response to chaotic/unpredictable
environment people seek identify new patterns of
behaviour to follow, make sense of it depending on
previous experience and knowledge, and respond
towards finding new order. IT systems tend to make
all this harder, because for most people it obfuscates
GROUNDING AND MAKING SENSE OF AGILE SOFTWARE DEVELOPMENT
235