Skip to main content

Über dieses Buch

The present book is based on the conference Software Development and Reality Construction held at SchloB Eringerfeld in Germany, September 25 - 30, 1988. This was organized by the Technical University of Berlin (TUB) in cooperation with the German National Research Center for Computer Science (GMD), Sankt Augustin, and sponsored by the Volkswagen Foundation whose financial support we gratefully acknowledge. The conference was an interdisciplinary scientific and cultural event aimed at promoting discussion on the nature of computer science as a scientific discipline and on the theoretical foundations and systemic practice required for human-oriented system design. In keeping with the conversational style of the conference, the book comprises a series of individual contributions, arranged so as to form a coherent whole. Some authors reflect on their practice in computer science and system design. Others start from approaches developed in the humanities and the social sciences for understanding human learning and creativity, individual and cooperative work, and the interrelation between technology and organizations. Thus, each contribution makes its specific point and can be read on its own merit. But, at the same time, it takes its place as a chapter in the book, along with all the other contributions, to give what seemed to us a meaningful overall line of argumentation. This required careful editorial coordination, and we are grateful to all the authors for bearing with us throughout the slow genesis of the book and for complying with our requests for extensive revision of some of the manuscripts.






This is a book about human questions in computer science. Questions such as: What are we actually doing in our work? What assumptions do we rely on? What claims can we really meet? How do we view human beings in relation to computers? What is the impact of the computer in use? How can we promote quality? What kind of social changes do we bring about? To what extent is information technology conducive to human development? The authors of this book share the conviction that a deeper understanding of these issues is essential for guiding responsible action in science and design. In working on this book, we have proceeded from the assumption that there can be no single theoretical framework providing answers to the set of the questions raised above. All of us approach them from our own perspectives, shaped by our experience in life, by our work and through our interaction with others. We realize that even the way we select and formulate our questions reflects our particular perspective, while you, the reader, proceed from yours. We would like to encourage you to pursue your own questions and to promote discussions in your own personal context.

Christiane Floyd, Heinz Züllighoven, Reinhard Budde, Reinhard Keil-Slawik

Thinking About Computer Science


1.1. Human Questions in Computer Science

In this introduction to our book, my aim is to provide a common platform for the chapters that follow. I will outline the main issues at stake, as I see them, in order to motivate the variety of themes taken up later on, and to show how they are connected. In contrast to subsequent chapters, I will not give comprehensive references to background literature here, but confine myself to bringing out a few seminal publications, which were inspirational to many authors of this book. I will start by commenting on the motto “Software Development and Reality Construction” which was coined as a suggestive phrase to indicate the range of questions relevant to us.

Christiane Floyd

1.2. Learning from our Errors

I’ve always believed that one of the best ways to learn is by a process of trial and error. Indeed, one of my favorite poems is the following ‘grook’ by Piet Hein: The road to wisdom?Well, it’s plainand simple to express:Errand errand err againbut lessand lessand less

Donald E. Knuth

Living Computer Science


2.1. The Technical and the Human Side of Computer Science

A scientific discipline, like any other field of human activity, is shaped by various factors such as individual achievements and discoveries, social context, economic pressure and, last not least, fashion and trends. For most disciplines, it is not too hard to give a comprehensive description of their essence, for instance, “computer science deals with principles and practice of construction, programming and application of digital computers”. A deeper understanding, however, has to cover origins, history, folklore and so on, and cannot be gained without taking into account all the aforementioned influential factors.

Klaus-Peter Löhr

2.2. Hermeneutics and Path

Hermeneutics is the study of interpretation, particularly the interpretation of linguistic texts, but also of human experience in general, since this can be seen as both “textual” and “linguistic” in appropriately broad senses of these words.

Joseph A. Goguen

2.3. Computing: Yet Another Reality Construction

For the past twenty-five years I have been working as a Computer Scientist, for the last fifteen I have put a considerable amount of effort into the study and practice of Buddhism, under the general direction of Trungpa Rinpoche, a Tibetan Buddhist teacher. These two points of view are not easy to reconcile, although both have the same basic attitude of “try it and see if it works”. But all of us have a work life and a personal life to live, sometimes separate, but sometimes mingling, with intrusions of kindness into the office or of electronics into the home. The boundary, like all frontiers has its pains, so it seemed worthwhile to try to dissolve it a little and accept an invitation to write something about all this. Perhaps the Buddhist point of view will seem foreign or unacceptable to you, but it may be worthwhile to remember that there is more than one way of looking at our computing world.

Rodney M. Burstall

2.4. How Many Choices Do We Make? How Many Are Difficult?

I have been asked to write about some of the choices I have had to make as a scientist — choices relating to social responsibility. This is a very dangerous task, since it may easily become a tale of a battle between evil and good, with oneself as the hero. In fact, I do not know how to avoid that trap: there have been battles with very much to lose, and one had to mobilize a strong belief in the cause one was fighting for.

Kristen Nygaard

2.5. From Scientific Practice to Epistemological Discovery

Nothing doesn’t exist. That is theFirst Definition of Plex — a scientific philosophy whose aim is understanding our understanding of the nature of nature. Plex does not attempt to understand nature itself but only our understanding of it. We are included in nature as we do “our understanding”, both scientific and informal, so we must understand ourselves, as well — not just what we think we are, but as we really axe, as integral, naturalbeingsof nature. How one “understand”s and even who “we” are as we do “our understanding” necessarily is left completely open, for all that must arise naturally from the very nature of nature.

Douglas T. Ross

On Reality Construction


3.1. Self-Organization and Software Development

Heinz, since I first sought you out in my quest for epistemological foundations of software development, I have enjoyed finding myself in continuing communication with you. In the course of our conversations off and on, my original topic has gradually evolved and taken shape between us. But we have also touched on more fundamental issues such as the nature of human understanding and our dialogical involvement with others. I have learned with great profit to appreciate your ideas and apply them to my fields of interest.

Heinz von Foerster, Christiane Floyd

3.2. Software Development as Reality Construction

I would like to present a view of software development as an insight-building process in terms of multiperspectivity, self-organization and dialogue, drawing on epistemological ideas that have emerged from the discourse in Rational Constructivism.

Christiane Floyd

3.3. The Idea that Reality is Socially Constructed

Constructivism, the idea that reality is socially constructed, has recently invaded the field of software development. Producing software, designing computer applications, installing systems, reorganizing work patterns, are all constructive activities which, more or less directly, contribute to changing the world we live and work in. A clear understanding of the idea of reality construction is then a way to understand what one is really doing as a software developer. Such an understanding should be easy to obtain in view of the current popularity of the idea. It is not. The main reason for this is that most proponents of constructivism today brandish it as a weapon in a humanistic campaign against technology. Doing this they not only fail to see the truly technological nature of the idea of reality construction and the vital roles played by technology in all constructions of reality, but they also manage to alienate many of the practitioners whose practice they want to enlighten.

Bo Dahlbom

Learning to Know


4.1. Scientific Expertise as a Social Process

In a research project in the sociology of science I study knowledge strategies used by experts in acquiring and changing complex and innovative knowledge.1 The goal is to analyze problem solving strategies in real-world contexts and to describe the forms of their social organization.

Klaus Amann

4.2. How to Communicate Proofs or Programs

Why is formalization so much fun to do or to talk about, and so boring to listen to? How excited most of us get when we prove a new theorem or develop a program, or even more when we explain it to someone else! The “someone” may be a fellow researcher, or a class of students, or the audience at a conference. But do we show the same excitement if we are the someone, but are not ourselves involved in the question, or at least active in the field? Why do students shun mathematical lectures? Why do we fall asleep during a talk? With writing and reading papers it is not so different. Or am I the only one who loves to do mathematics, but tries to avoid reading the papers of others?

Dirk Siefkes

4.3. Making Errors, Making Sense, Making Use

The relationship of science to design work in a technical area, for example the design of software and its documentation, is one of those things that gets murkier as one examines it more closely. What is very clear and simple, however, is why we want to describe a close relationship between science and design. Our concrete goal is to design better solutions, better software, better instruction. But we neither wish to nor expect that we can achieve this concrete goal through trial and error, through intuition or through magic: We expect that we will have to understand how we do what we do in design, so that we can do it deliberately and repeatedly in diverse and novel situations. Moreover, we want to be able to externalize our understanding of design practice to be able to teach it to others and to work with it directly to improve it.

John M. Carroll

4.4. Artifacts in Software Design

“A scientific discipline emerges with the — usually rather slow! — discovery of which aspects can be meaningfully ‘studied in isolation for the sake of their own consistency’.”1 This statement made by E.W. Dijkstra was meant to express a specific desire, namely, to achieve basic improvements in software development by means of mathematical tools and concepts allowing us to express algorithms and data structures in an increasingly precise, unambiguous, consistent and complete manner. The question is, however, whether isolated mathematical properties provide the only — and a sufficient — basis for establishing a scientific discipline.

Reinhard Keil-Slawik

Computer Science and Beyond


5.1. The Denial of Error

This paper claims that the modern world has developed a kind of arrogance which is damaging the very projects that it seeks to sustain: in proposing methodologies to guarantee the absence of error, we deny the incredible richness of our own experience, in which confusion and error are often the seeds of creation; in this way, we limit our own creativity.

Joseph A. Goguen

5.2. Towards a New Understanding of Data Modelling

This paper reviews the fundamental assumptions of current data modelling approaches in the light of the recent debate on conflicting research paradigms. The following four questions are used to identify paradigmatic assumptions about the ontology, language, epistemology and social context of data modelling: (1) What is being modelled? (2) How well is the result represented? (3) Why is it valid? (4) How are data models used in practice? It is concluded that the pursuit of these four questions amounts to a new research programme in data management and that the appropriate metaphors for data modelling are not fact gathering and modelling, but negotiation and law-making.

Heinz K. Klein, Kalle Lyytinen

5.3. A Reappraisal of Information Science

This chapter emphasizes the informaiionistic view of science, and especially of information science. The view accepts the scientifically based cumulative information base as the main goal for science, combining in a natural and balanced manner the theoretical aspiration for truth, the search for applied knowledge and emancipation from old, false conceptualizations. Its philosophical roots are in modified scientific realism and research empiricism (of information science) mainly in the context of a Nordic coeffort.

Pentti Kerola, Jouni Similä

Understanding the Computer Through Metaphors


6.1. Perspectives and Metaphors for Human-Computer Interaction

Computers are becoming omnipresent in the work place. People spend large portions of their time in interaction with computers. Consequently, the design of application systems and in particular of human-computer interaction (HCI) has become a major factor of influence on work contents and working conditions. The design of ergonomic and humane, of adequately demanding and socially acceptable work requires a deep understanding and respect for the properties, capabilities and limitations of the individual. In this context the design of a human-computer interface becomes a late step in a design process that starts with the distribution of tasks among organizational units and among people and the distribution of functions between humans and machines before it arrives at such questions as machine and interaction design2.

Susanne Maaß, Horst Oberquelle

6.2. Software Tools in a Programming Workshop

When we began, some years ago, building a programming environment for the logical programming language Prolog, the goals we had in mind were predominantly technical ones. Our basic aim was to combine the logical and object-oriented programming styles and to compile a set of tools for constructing Prolog software in a uniform environment. Once we felt we had found satisfactory solutions to the problems involved, we released the programming environment for use by other development groups. We were astounded to find that the external use of our environment led to a number of unexpected problems. We then began not only to eliminate technical errors and inconsistencies, but also to reflect on how it was possible for these problems to arise. The conclusion we reached was that we needed to find answers to a number of questions which went well beyond the original technical problems: What are the building blocks of a programming environment and how can they be “invented”?What is a good building block and how can it be smoothly integrated into an environment?How does an operational building block become an integral part of the developer’s daily work?What are we doing when we develop a programming environment and what are we doing when we work with it?

Reinhard Budde, Heinz Züllighoven

6.3. Soft Engines — Mass-Produced Software for Working People?

We will investigate how the notion ‘software engine’ may become a useful metaphor for the computer science community, which would reflect the actual status of software practice and which may be understood as a guideline for software development.

Wolfgang Coy

6.4. Artificial Intelligence: A Hermeneutic Defense

The field of Artificial Intelligence (AI), from its very beginnings in the 1950s, has been criticized for its name as well as its ambition. Most of the debate concerns the possibility of artificial intelligence and presumes there is indeed some thing which is intelligence; the only question has been whether or not artificial systems can be built which exhibit, or have, this thing. That is, the debate has remained for the most part within the rationalistic tradition. In this section, I would like to explore two alternative approaches to this issue. The first considers the consequences of viewing artificial intelligence as another metaphor for computing. That is, perhaps certain kinds of computing systems can be usefully viewed as being like intelligent beings in some significant way. An immediate consequence of this view, of course, would be a lowering of the aims and ambitions of the field. The claim that a system displays something like intelligence is surely much weaker than the claim that it is intelligent.

Thomas F. Gordon

Designing for People


7.1. Shared Responsibility: A Field of Tension

Why is it problematic for computer scientists and domain experts to share responsibility for a system development project, even when shared responsibility is a goal for the project?

Gro Bjerknes

7.2. A Subject-Oriented Approach to Information Systems

The subject-oriented approach is introduced in order to emphasize the role of human subjects in the use of information technology. Subject-orientation brings clarity to the question of control and responsibility. The tasks performed by means of information technology become an inherent part of the user’s job. The implications of this ecological principle are explored, in particular with regard to the organization of work.

Markku I. Nurminen

7.3. Anticipating Reality Construction

The arguments formulated below are based on the assumption that software development is to be viewed as a work process and can thus be seen as part of the social reproduction process with its historical background. This assumption is useful. It enables us to compare software development with other work processes, and to better understand the characteristics common to all and the ones that are specific to software development.

Fanny-Michaela Reisin

7.4. On Controllability

Controllability is regarded as an essential requirement for the design of interactive systems as well as for user-interface design. A system is said to be controllable if the user can influence the selection and sequence of application programs as well as the flow of data and control.

Wolfgang Dzida

7.5. Work Design for Human Development

In the following sections we present human criteria for the design of working and learning processes to promote human personality development. Taking a global view of this problem means abandoning models which equate human beings with machines or computers. In their place, we propose a perspective on human beings and organizations that is based on the theory of evolution and the psychology of action. From this perspective, we formulate three general principles of evolution, and from them derive nine aspects which are of importance in designing working and learning processes that are conducive to personal development. Finally, we present a guideline designed to enable work tasks to be evaluated in relation to these aspects.

Walter Volpert

Epistemological Approaches to Informatics


8.1. Truth and Meaning Beyond Formalism

Logic and formal semantics have been enormously helpful in understanding programs and programming languages, and in automating some aspects of the programming process. Therefore computer scientists have good professional reasons to be interested in truth and meaning construed in a narrow technical sense, through symbolic logic and formal semantics.

Joseph A. Goguen

8.2. Informatics and Hermeneutics

Not only the historical development of informatics as a scientific and technical discipline but also its core problems are, prima facie, far removed from philosophical developments arising from soft sciences such as hermeneutics, and closer to logic or the philosophy of science. Is the relationship between informatics and hermeneutics of any mutual relevance? What happens when we reflect hermeneutically on the foundations of informatics? Winograd and Flores have made the attempt, and one result was their insight into “the non-obviousness of the rationalistic orientation” of informatics. Consequently, they found themselves “deeply concerned with the question of language”1.

Rafael Capurro

8.3. Language and Software, or: Fritzl’s Quest

A linguist surveying the challenging peaks and valleys of the computational cognitive science landscape was awed by the forceful arguments and brilliant solutions offered by various teams of guides to the problem of traversing this impressive terrain. The AI team turned up with its helicopters, the software engineers offered their snowcats, the philosophers brought along a variety of skis designed for a dizzy slalom ‘alpine’ or a circuitous debate ‘de fond’. And the local travel agent (Frame Problems, Inc.) had a special offer of three styles of planning: the checklist plus rules of thumb (risking accidents), the exhaustive step-by-step chart (with the risk of never finishing) and the list of things that don’t have to be taken along (with the risk of never starting).

Dafydd Gibbon

8.4. Activity Theory as a Foundation for Design

In this chapter, epistemological questions will be analyzed as everyday problems that present themselves to people doing any kind of work, including household and other unpaid forms of work. The constant change in the organization and content of such work processes during several identifiable historical stages is acknowledged and taken into account by providing a series of genetic concepts for the construction of an idealized picture of human societal and personal development. This originally Marxist philosophy must be, and is, complemented by recognizing that the cultural dimensions of humanity cannot be found in work processes only. Therefore, in a genetic unfolding of concepts, the more basic category of human activity has to be explicated first. A most important insight along this way is understanding language and other sign systems as instruments for social and personal self-regulation that are socially constructed, again in several historical stages.

Arne Raeithel

8.5. Reflections on the Essence of Information

I wish to proceed from the thesis that automation and life, as well as automation and social organization, have to be recognized as a genuine unity of common features and differences.

Klaus Fuchs-Kittowski



During the conference at Schloß Eringerfeld, there evolved a sense of community between people presenting respective approaches and attempting to arrive at a common understanding of them. We experienced what Gordon Pask calls “the discrete embrace of conversation”. But we must try to carry this spirit over into our everyday working life.

Christiane Floyd, Heinz Züllighoven, Reinhard Budde, Reinhard Keil-Slawik


Weitere Informationen