Information Technology Reference
In-Depth Information
applications programmable (Eisenberg, 1995),
and supporting the evolution of generic applica-
tions into domain-specific ones (Mørch, 1996).
The European end-user development network of
excellence (http://giove.cnuce.cnr.it/eud-net.htm)
has further developed these initiatives, studied the
processes in detail, and proposes the following
general definition of EUD: End user development
is a set of methods, activities, techniques, and
tools that allow people who are nonprofessional
software developers, at some point to create or
modify a software artifact .
Recent studies and system building efforts
(e.g., Fischer, Giaccardi, Ye, Sutcliffe, & Me-
handjiev, 2004; Nardi, 1996) have shown there
is a growing need for new methods, activities,
techniques, and tools for end user development.
This is motivated by increased user diversity in
organisations employing advanced information
systems and a tendency in software houses to
produce generic (multipurpose) software pack-
ages for a wide range of application domains.
By user diversity, we mean users with different
cultural, educational, training, and employment
backgrounds. They are novice and experienced
computer users, ranging from the young to the
mature, and they have many different abilities
and disabilities (Costabile, Foglia, Fresta, Mus-
sio, & Piccinno, 2004). Generic means systems
that can be configured to different organiza-
tional needs (Bansler & Havn, 1994) and can,
for example, provide different user groups with
different access rights to shared objects (Stevens
& Wulf, 2002). In this chapter, we use the term
“generic” synonymously with “multipurpose.”
A multipurpose computer application is an ap-
plication with multiple functions, and one of the
functions is EUD. The integration of EUD with
conventional applications is motivated by EUD
as a method for development that attempts to
bring programming closer to the users, so that
they can participate in the adaptation and further
development of the applications in the context
of use. Two approaches to this are (1) high-level
(user oriented) programming languages and (2)
the components approach.
Creating high-level (user oriented) program-
ming languages and related methods, activities,
techniques, and tools to bridge the gap between
using and creating or modifying a software ap-
plication is no panacea. Indeed, the gradual steps
from using an application to programming it are
sometimes referred to as climbing a “program-
ming mountain” (Fischer & Girgensohn, 1990;
MacLean, Carter, Lövstrand, & Moran, 1990;
Mørch, Stevens, Won, Klann, Dittrich, & Wulf,
2004b; Trigg & Moran, 1987). The increase in
knowledge required for an end-user developer
to move one step up this mountain should be
proportional to complexity of the task to be ac-
complished with the system, and should take
into account the benefits the task can provide to
end users (including the pleasure of accomplish-
ment and the satisfaction of learning to modify a
computer application). Otherwise, the task should
be left to professional developers. Tools such as
customization forms, templates for frequently
performed tasks, and easy-to-use programming
languages like spreadsheet macros and scripting
languages support EUD activities as a form of
higher-level programming. These activities share
characteristics with customization (Mackay, 1990)
and local development (Gantt & Nardi, 1992).
The components approach to EUD differs
from the “programming approach” in that end
users interact with components in visual builders
to select, modify, and connect components using
high-level operations rather than writing program
code in a text editor. However, components must
be programmed before they can be deployed in
visual builders; they might even be end-user
programmable, making it difficult to draw a
straight line between the two approaches. The
important distinction for the purpose of EUD is
the size of the programs and the complexity of
the programming task. A component is part of an
application and thus not a complete application
program. Therefore, the task of programming or
Search WWH ::




Custom Search