Digifesto

Tag: software development

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:
Err
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.

References

Christiane Floyd, Heinz Züllighoven, and Reinhard Budde, Reinhard Keil-Slawik. (1992) “Software development and reality construction.” Springer-Verlag Berlin Heidelberg. https://doi.org/10.1007/978-3-642-76817-0

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.

Is there hypertext law? Is there Python law?

I have been impressed with Hildbebrandt’s analysis of the way particular technologies provide the grounds for different forms of institutions. Looking into the work of Don Ihde, who I gather is a pivotal thinking in this line of reasoning, I find the ‘postphenomenological’ and ‘instrumental realist’ position very compelling. Lawrence Diver’s work on digisprudence, which follows in this vein, looks generative.

In my encounters with with work, I have also perceived there to be gaps and discrepancies in the texture of the argument. There is something uncanny about reading material that is, perceptually, almost correct. Either I am in error, or it is.

One key difference seems to be about the attitude towards mathematical or computational formalism. This is chiefly, I sense, truly an attitude, in the sense of emotional difference. Scholars in this area will speak, in personal communication, of being “wary” or “afraid”. It’s an embodied reaction which orients their rhetoric. It is shared with many other specifically legal scholars. In the gestalt of these arguments, the legal scholar will refer to philosophies of science and/or technology to justify a distance between lived reality, lifeworld, and artifice.

Taking a somewhat different perspective, there are other ways to consider the relationship between formalism, science, and fact, even when taking seriously the instrumental realist position. It is noteworthy, I believe, that this field of scholarship is so adamantly Latourian, and that Latour has succeeded in anathematizing Bourdieu. I now see more clearly how Science of Science and Reflexivity, which was both a refutation of Latour and a lament of how the capture of institutional power (such as nation-state provided research funding) is a distortion to the autonomous and legitimizing processes of science, are really all one argument. Latour, despite the wrongness of so much of his early work which is now so widely cited, became a powerful figure. The better argument will only win in time.

Bourdieu, it should be noted, is an instrumental realist about science, though he may not have been aware of Ihde and that line of discourse. He also saw the connection between formalism and instrumentation which seems to elude the postphenomenologist legal scholars. Formalism and instrumentation are both a form of practical “automation” which, if we take the instrumental realists seriously (and we should) wind up enabling the body, understood as perception-praxis, to see and know in different ways. Bourdieu, who obviously has read Foucault but improves on him, accepts the perception-praxis view of the body and socializes it through the concept of the habitus, which is key to his analysis of the sociology of science.

But I digress. What I have been working towards is the framing of the questions in the title. To recap, Hildebrandt, in my understanding, makes a compelling case for how the printing press, as a technology, has had specific affordances that have enabled the Rule of Law that is characteristic of constitutional democracy. This Rule of Law, or some descendent of it, remains dominant in Europe and perhaps this is why, via the Brussells Effect, the EU now stands as the protector of individuals from the encroaching power of machine-learning powered technologies, in the form of Information and Communication Infrastructure (ICI).

This is a fine narrative, though perhaps rather specifically motivated by a small number of high profile regulatory acts. I will not suggest that the narrative overplays anybody’s hand; it is useful as a schematic.

However, I am not sure the analysis is so solid. There seem to be some missing steps in the historical analysis. Which brings me to my first question, which is: what about hypertext? Hypertext is neither the text of the printing press, nor is it a form of machine learning. It is instrumentally dependent on scientific and technological formalism: the HyperText Markup Language (HTML) and the HyperText Transfer Protocol are both formal standards, built instrumentally on a foundation of computation and networking theory and technology. And as a matter of contemporary perception and praxis, it is probably the primary way in which people engage in analysis of law and communication about the law today.

So, what about it? Doesn’t this example show a contradiction at the heart of this instrumental realist legal scholarship?

The follow-up question is about another class of digital “languages”: software source code. Python, for example. These, even more than HyperText, are formalism, with semantics guaranteed by a compiler. But these semantics are in a sense legislated via the Python Enhancement Proposal process, and of course any particular Python application or software practice may be designed and mandated through a wide array of institutional mechanisms before being deployed to users.

I would look forward to work on these subjects coming from Hildebrandt’s CUHOBICOL research group, but for the fact that these technologies (which may bely the ideology motivating the project!) are excluded by the very system of categories the project invokes to classify different kinds of regulatory systems. According to the project web site (written, like all web sites, in HyperText), there are three (only three?) kinds of normativity: text-driven normativity, based in the printing press; data-based normativity, the normativity of feedback once based in cybernetic engineering and now based in machine learning; and code-based normativity. The last category is defined in terms of code’s immutability, which is rather alien to anybody who writes software code and has to deal with how it changes all the time. Moreover, the project’s aim is to explore code-based normativity through blockchain applications. I understand that gesturing at blockchain technology is a nice way to spice up a funding proposal. But by seeing normativity in these terms, many intermediate technologies, and therefore a broad technical design space of normative technology, are excluded from analysis.

on courage in the face of failure developing bluestocking

It would be easy to be discouraged by early experiments with bluestocking.

sb@lebenswelt:~/dev/bluestocking$ python factchecker.py "Courage is what makes us. Courage is what divides us. Courage is what drives us. Courage is what stops us. Courage creates news. Courage demands more. Courage creates blame. Courage brings shame. Courage shows in school. Courage determines the cool. Courage divides the weak. Courage pours out like a leak. Courage puts us on a knee. Courage makes us free. Courage makes us plea. Courage helps us flee. Corey Fauchon"
Looking up Fauchon
Lookup failed
Looking up shame
Looking up news
Looking up puts
Lookup failed
Looking up leak
Lookup failed
Looking up stops
Lookup failed
Looking up Courage
Looking up helps
Lookup failed
Looking up divides
Lookup failed
Looking up shows
Lookup failed
Looking up demands
Lookup failed
Looking up pours
Lookup failed
Looking up brings
Lookup failed
Looking up weak
Lookup failed
Looking up drives
Lookup failed
Looking up free
Looking up blame
Lookup failed
Looking up Corey
Lookup failed
Looking up plea
Lookup failed
Looking up knee
Looking up flee
Lookup failed
Looking up cool
Looking up school
Looking up determines
Lookup failed
Looking up like
Looking up us
Lookup failed
Looking up creates
Lookup failed
Looking up makes
Lookup failed
Building knowledge base
Querying knowledge base with original document
Consistency: 0
Contradictions: []
Supported: []
Novel: [(True, 'helps', 'flee'), (True, 'helps', 'us'), (True, 'determines', 'cool'), (True, 'like', 'leak'), (True, 'puts', 'knee'), (True, 'puts', 'us'), (True, 'pours', 'leak'), (True, 'pours', 'like'), (True, 'brings', 'shame'), (True, 'drives', 'us'), (True, 'stops', 'us'), (True, 'creates', 'blame'), (True, 'creates', 'news'), (True, 'Courage', 'shame'), (True, 'Courage', 'news'), (True, 'Courage', 'puts'), (True, 'Courage', 'leak'), (True, 'Courage', 'stops'), (True, 'Courage', 'helps'), (True, 'Courage', 'divides'), (True, 'Courage', 'shows'), (True, 'Courage', 'demands'), (True, 'Courage', 'pours'), (True, 'Courage', 'brings'), (True, 'Courage', 'weak'), (True, 'Courage', 'drives'), (True, 'Courage', 'free'), (True, 'Courage', 'blame'), (True, 'Courage', 'plea'), (True, 'Courage', 'knee'), (True, 'Courage', 'flee'), (True, 'Courage', 'cool'), (True, 'Courage', 'school'), (True, 'Courage', 'determines'), (True, 'Courage', 'like'), (True, 'Courage', 'us'), (True, 'Courage', 'creates'), (True, 'Courage', 'makes'), (True, 'us', 'knee'), (True, 'us', 'flee'), (True, 'us', 'plea'), (True, 'us', 'free'), (True, 'Corey', 'Fauchon'), (True, 'makes', 'plea'), (True, 'makes', 'free'), (True, 'makes', 'us'), (True, 'divides', 'weak'), (True, 'divides', 'us'), (True, 'shows', 'school')]

But, then again, our ambitions are outlandish. Nevertheless, there is a silver lining:

sb@lebenswelt:~/dev/bluestocking$ python factchecker.py "The sky is not blue."
Looking up blue
Looking up sky
Building knowledge base
Querying knowledge base with original document
Consistency: -1
Contradictions: [(True, 'sky', 'blue')]
Supported: []
Novel: []