Review: Software Development and Reality Construction

I’ve discovered a wonderful book, Floyd et al.’s “Software Development and Reality Construction” (1992). One of the authors has made a PDF available on-line. It represents a strand of innovative thought in system design that I believe has many of the benefits of what has become “critical HCI” in the U.S. without many of its pitfalls. Is is a playful compilation with many interesting intellectual roots.

From its blurb:

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.

There are a few specific reasons I’m excited about this book.

First, it is explicitly about considering software development as a designing activity that is an aspect of computer science. In many U.S. scholarly contexts, there is an educational/research thrust towards removing “user interface design” from both the theoretical roots of computer science and the applied activity of software development. This has been a problem for recent scholarly debates about, for example, the ethics of data science and AI. When your only options are a humanities oriented “design” field, and a field of computer science “algorithms”, there is no room to explore the embodied practice of software development, which is where the rubber hits the road.

Second, this book has some fascinating authors. It includes essays from Heinz von Foerster, a second-order cybernetics Original Gangster. It also includes essays from Joseph Goguen, who is perhaps the true link between computer science theory (he was a theorist and programming language designer) and second-order cybernetics (Mutarana and Varela, which would then influence Winograd and Flores’s critique of AI, but also Niklas Luhmann, which shows up in other critiques of AI from a legal perspective). Indeed, Goguen co-authored papers with Varela (1979) formalizing Varela’s notions of autonomy and autopoiesis in terms of category theory — a foundation that has had little uptake since. But this is not a fringe production. Donald Knuth, a computer science god-king, has an essay in the book about the process of creating and debugging TeX, the typesetting language. It is perhaps not possible to get deeper into the heart of the embodied practice of technical work than that. His essay begins with a poem from Piet Hein:

The road to wisdom?
Well, it’s plain
and simple to express:
and err
and err again
but less
and less
and less.

The book self-recognizes its interesting intellectual lineage. The following diagram is included in Raeithel’s article “Activity theory as a foundation for design”, which stakes out a Marxist Vygotskian take on design practice. This is positioned as an extreme view, to the (literally, on the page) left of the second-order cybernetics approach, which he positions as culminating in Winograd and Flores.

It is a sweeping, thoughtful book. Any one of its essays could, if more widely read, be a remedy for the kinds of conceptual errors made in today’s technical practice which lead to “unethical” or adverse outcomes. For example, Klein and Lyytinen’s “Towards a new understanding of data modelling” swiftly rejects notions of “raw data” and instead describes a goal oriented, hermeneutic data modeling practice. What if “big data” techniques had been built on this this understanding?

The book ultimately does not take itself too seriously. It has the whimsical character that the field of computer science could have in those early days, when it was open to conceptual freedom and exploration. The book concludes with a script for a fantastic play that captures the themes and ideas of the conference as a whole:

This goes on for six pages. By the end, Alice discovers that she is in a “cyberworld”:

Oh, what fun it is. It’s a huge game that’s being played – all over this
cyberworld – if this is a world at all. How I wish I was one of them! I
wouldn’t mind being a Hacker, if only I might join – though of course I
should like to be a Cyber Queen, best.

I’ve only scratched the surface of this book. But I expect to be returning to it often in future work.


Christiane Floyd, Heinz Züllighoven, and Reinhard Budde, Reinhard Keil-Slawik. (1992) “Software development and reality construction.” Springer-Verlag Berlin Heidelberg.

Goguen, J. A., & Varela, F. J. (1979). Systems and distinctions; duality and complement arity. International Journal of General System5(1), 31-43.

Klein, H. K., & Lyytinen, K. (1992). Towards a new understanding of data modelling. In Software development and reality construction (pp. 203-219). Springer, Berlin, Heidelberg.

Raeithel, A. (1992). Activity theory as a foundation for design. In Software development and reality construction (pp. 391-415). Springer, Berlin, Heidelberg.