Abstract
Many key contributions to research in information systems development (ISD) have
been made by practitioners. This exploratory study aims to advance the knowledge
about practitioner researchers, which can help improve the cooperation between
academics and practitioners in ISD research. Adopting a qualitative research
strategy an exploratory case study of a practitioner researcher is carried out.
The data is collected through an in-depth interview and a sample of refereed
publications. The study shows that practitioner research is not limited to
experience papers but includes theoretical contributions as well. Writing papers
is how the practitioner researcher in the study reflects on his professional
practice, and in this sense he writes them for himself. This may explain why he
prefers theoretical papers, shows little interest in experience reports, does
not document systematic data collection, and does not emphasise reflexivity in
his papers.
Abstract
In organisations managers put formal procedures and structures in place to
ensure successful software projects. Sometimes project members secretly resist
these measures. In this paper we use examples from the literature to show that
a political perspective is helpful to analyse and understand this kind of
behaviour.
Abstract
The success of agile software development has drawn attention to coaching as
an alternative management style. In this paper we argue that coaching, with
its focus on trustful relationships, empathetic communication, mental models,
and experiential learning, is suitable to facilitate the sustainable
application of agile software development.
Abstract
In software development the most important asset is knowledge. Much of
this knowledge is tacit, and given its elusive nature, this creates a
challenge for organisations. In practice most organisational KM strategies
are codification strategies or personalisation strategies. We use this
distinction to guide a review of typical practices in agile software
development that address knowledge management. Based on this survey we
conclude that agile software development implies a personalisation
strategy.
Abstract
KM initiatives in organisations have often run into difficulties at the
implementation level. Research into the causes of these problems has
shifted attention to the human dimension of KM. Recently some researchers
have focused on personal knowledge management skills and practices to
emphasise this dimension. How are these three concepts ‘personal’,
‘knowledge’ and ‘management’ interrelated in a concept of PKM? What role
does PKM play in the context of organizational KM?
Abstract
Software engineering is a discipline with a number of contentious issues,
e.g., formal methods, software metrics, process maturity models, etc. Most
recently the dispute over agile versus plan-driven software development has
clearly shown how much disagreement there is in the community. The
traditional view of science assumes that the scientific method is
appropriate to settle disagreement of this sort. Typical of this position
are logical positivist researchers, who assume that any research question
can be answered by applying the scientific method, resulting in a body of
knowledge that is universally accepted. Despite this idealistic expectation,
disagreement is a matter of fact in software engineering. This raises some
questions. How can a body of knowledge in software engineering deal with
conflicting evidence? How can it deal with disagreement among experts that
is rooted in different, personal world-views? What do different research
paradigms, e.g., logical positivism, social constructivism, etc., mean for
a body of knowledge in software engineering? We investigate these core
questions in our paper and argue that the ongoing dispute over agile versus
plan-driven software development is closely related to their answers.
Abstract
Choosing an appropriate software development method is an important
managerial decision problem. It is desirable to base a critical decision
like this on proven knowledge. We look at the nature of this knowledge
and how it develops in software engineering. A number of fundamental
limitations to scientific enquiry in software engineering result in a
corresponding body of knowledge that is diverse, complex, incomplete,
ambiguous and inconsistent. This naturally limits the scope of formal
approaches to software method selection.
In this situation software method selection is a complex managerial
decision-making activity under uncertainty. The human mind copes with
this demanding task well in some cases and badly in others. Researchers
have identified a number of human mental processes that can have a
detrimental effect on managerial knowledge management and decision making.
We look at some of these processes and discuss how they can flaw software
method selection. Forewarned is forearmed: From our analysis we derive some
advice on how managers can guard against these fallacies.
Abstract
Successful management requires insight into cause-and-effect relationships
in organisations. Evaluation studies are an empirical instrument for the
systematic identification of cause-and-effect relationships. Therefore,
good evaluation studies can improve management, if their results are
communicated effectively. In this paper we give an overview of practical
techniques for the effective communication of evaluation results to business
executives. We consider rational, emotional and political aspects.
Abstract
Successful management requires insight into cause-and-effect relationships in
organisations. Evaluation studies are an empirical instrument for the
systematic identification of cause-and-effect relationships. Therefore, good
evaluation studies can improve management. In this paper we explain seven
practical steps that lead to a simple evaluation study. An evaluation study
is only effective, if its results are communicated well. We give special
coverage of this important issue in this paper.
Abstract
Organisations are built on the continuing acceptance of their formal
structures and procedures by their members. A software process model is
the archetype of formal organisation in software engineering and its
acceptance is a key issue in software engineering management. Investigation
into acceptance is relevant because its aims at the explanation and
prediction of human behaviour in the organisation.
In this paper we characterise acceptance as a human attitude. We study
acceptance at different levels and identify types of acceptance. The field
of software process models is characterised by controversy and we show how
this situation shifts emphasis to emotional aspects of acceptance. Based
on an elaboration of these emotional aspects we discuss a number of
practical techniques that can be used to increase acceptance of software
process models.
Abstract
Recently a number of so-called "agile" software development methods have
been proposed. Interestingly, these approaches have been met with "both
enthusiastic support and equally vigorous criticism" among experts in the
field. At present the software engineering community is split, and seemingly
irreconcilable "schools of thought" have emerged. In this paper we identify
an important characteristic of any software engineering method: its set of
tacit basic assumptions. We retrieve some important basic assumption that
underly agile software development and discuss an example to illustrate in
detail how conflicting basic assumptions can lead to fundamental disagreement
about software development methods.
Abstract
Extreme Programming (XP) is a new software development method that is
particularly popular with practitioners. XP claims to be superior to other
methods in some situations where time-to-market cycles are compressed and
evolving requirements make upfront designs unsuitable. So far scientists
have provided little theoretical or empirical evidence of XP's effectiveness.
In this paper we show that the concept of organisational culture provides an
appropriate conceptual framework for the analysis of XP. This crucial
insight provides a completely new perspective on XP and its effectiveness.
We conclude that the concept of organisational culture is a fundamental part
of the scientific basis for XP. Therefore, many aspects of XP should be
reassessed on the backcloth of organisational culture. This new perspective
promises huge potential for the clarification of XP, its improvement,
research into its effectiveness, and research into its applicability.
Abstract
Extreme Programming (XP) is a new software development method (SDM)
that claims to be superior to other methods in some situations that are
characterised by vague requirements and rapid change. XP has quickly
gained a remarkable degree of acceptance in parts of the software
engineering community. Interestingly, it has provoked a vivid and often
controversial exchange of opinions, ranging from enthusiastic support to
vigorous criticism. In this paper we look at possible sources of such
fundamental disagreement. We use general systems theory as an
integrative theoretical framework to analyse SDMs and expose their
underlying, often implicit assumptions. We discuss some examples where
the assumptions made by XP are fundamentally different from the
assumptions made by most other SDMs. These fundamentally different
assumptions indicate fundamentally different mental models. Mental models
are central to systems thinking because they have a strong influence
on our perception of reality and our behaviour. If they act as unconscious
filters that limit our perception to what we expect, they can seriously
impede our ability to learn. We conclude that mental models play a
crucial role in the introduction of XP.
Abstract
In the late 1990s a number of so-called "agile" software development methods
have been proposed to overcome problems experienced with more traditional
methods. These new agile methods have led to a controversal discussion
within the software engineering community. This has illustrated the need
for an integrating theoretical framework to clarify the distinguishing
aspects of agile software development methods. In this paper we use general
systems theory to characterise software development methods. We demonstrate
that general systems theory allows a clear and meaningful characterisation
of essential aspects of agile methods.
Abstract
Since the late 1990s a number of so-called "agile" software development
methods have been proposed to overcome problems experienced with more
traditional approaches. This has led to a controversial discussion within
the software engineering community illustrating the need for an integrating
theoretical framework to clarify the concept of agile software development
methods. In this paper we use general systems theory to characterise
software development processes. Using the Unified Software Development
Process and Extreme Programming as examples we demonstrate that general
systems theory allows a clear and meaningful characterisation of agile
methods.
Abstract
In this paper we apply the concept of quality to work teams. We argue that
teams exhibit characteristics that are useful for the assessment and
prediction of their performance. We identify six quality attributes of
teams: goals, structure, communication, trust, cohesiveness, and norms.
These characteristics are largely the result of the team formation process.
Often it is possible to match certain team characteristics to particular
phases of the team formation process. Our approach is firmly grounded in
research in the field of organisational behaviour and provides some insight,
understanding, and guidance for people interested in high quality teams.
Managers are often focused on deadlines and budgets only. Unfortunately,
at the time deadlines slip and budgets overrun, the damage is already done
to a large extent. Increased awareness of team processes and team
characteristics can help managers to identify problems at an earlier stage,
before this damage has occurred. The early detection of potential problems
has two important benefits. First, it leaves more time to react. Second,
there is probably less damage already done.
Abstract
In the design and implementation of any information system identifiers
are used to designate concepts. Typical examples are names of classes,
variables, modules, database fields, etc. A terminological model is a
set of identifiers together with a set of abstractions and a set of links
between identifiers and abstractions. Naturally, terminological models
embody important knowledge of a system, and therefore they play an
important role during the development of information systems. In this
paper we propose a metamodel for terminological models that is based
on category theory as conceptual and notational framework.
Abstract
Extreme Programming (XP) is a new software engineering process model that
has attracted much attention recently. XP claims to offer "ridiculously
simple solutions" to avoid many serious software engineering problems.
In this paper we analyse XP using the classical model of management
functions, namely planning, organising, staffing, leading, and controlling.
XP declares a set of 12 official practices. Our exposition shows that in
fact XP uses many more unofficial practices. These unofficial practices
address subjects in management science that are known to be far from simple.
If these unofficial practices are taken into account, then XP may still
offer solutions, but they are definitely not "ridiculously simple".
Abstract
Models are important artefacts that support human understanding and
communication. Often software development involves specialists from a variety
of fields, e.g. mathematicians, engineers, economists, software designers,
and programmers. This may result in different models, and communication across
discipline boundaries requires to establish links between these models. In
this paper we investigate this issue in the case of software development for
vehicle routing and scheduling software. We concentrate on three artefacts: a
mathematical specification of requirements, an object-oriented software
design, and program code written in Java. Obviously these artefacts do not
exist in isolation during software development. We demonstrate how the
Object Constraint Language can be used to establish links between these
three artefacts.
Abstract
Design patterns have been eagerly adopted by software developers in recent
years. There is ample evidence that patterns can have a beneficial impact
on software quality, but in some cases patterns have been inappropriately
applied due to a lack of experience. This paper reports on a large commercial
project where the uncontrolled use of patterns has contributed to severe
maintenance problems. As a result a substantial reengineering effort was
undertaken, that led to the identification of a number of inappropriately
applied patterns. At first glance the elimination of these patterns appears
to be desirable, but often they are tightly coupled to other software
artefacts, so that their removal is economically not viable.
Abstract
In this paper we present a simple management framework built on the classic
model of management functions. We apply this framework to Extreme
Programming(XP), a new software engineering process model that has attracted
much attention recently. We identify a number of issues where XP might
benefit from a review of research done in other disciplines, e.g. management
science. XP is often characterised as people-centric by its proponents.
Therefore it comes as a surprise that XP does not address the management
functions of staffing and leading as core practices. We propose some possible
directions for future research into that issue.
Abstract
Coding standards are a popular tool in practical software quality management.
This paper starts out with an account of experiences that we have made during
the definition and use of coding standards in a number of commercial software
projects of varied sizes at different companies. We point out typical
shortcomings of existing coding standards, which lead to problems in their
practical application. We analyse these problems on the basis of established
software engineering concepts. This analysis leads to the identification of
the generic structure of coding standards. This formal approach delivers
important insights, leading the way to coding standards that are focused,
concise, and rooted in the general software engineering theory.
Abstract
In the design and implementation of any information system identifiers are
used to designate concepts. Typical examples are names of classes, variables,
modules, database fields, etc. For such systems of identifiers, concepts,
and links between them, the term "terminological model" is introduced.
Surprisingly, notwithstanding the pervading influence of terminological
models, very little research has been devoted to them. In this paper a
rigorous mathematical metamodel of terminological models is proposed.
The backbone of the model is Formal Concept Analysis, an evoling area of
applied mathematics. The proposed model has been developed and used at a
German company from the financial industry in several projects. This
practice-oriented origin of the model gives rise to the hope that this
work can help to bridge the gap between theory and practice in information
systems engineering. Therefore an extensive part of this work deals with
practical problems and their solutions.
Abstract
This experience report is based on a software project in the financial industry.
The major problem of this project was the specification of algorithms. The
paper describes the development of an application-specific formal specification
language that was implemented through a framework architecture in the C++
programming language. To develop this specification language the established
semi-formal notation of domain experts was elaborated and consolidated. As a
result a formal specification language at an abstraction level appropriate for
the application domain was obtained, that proved to be valuable during
requirements engineering.