Computer science

isotopp image Kristian Köhntopp -
September 7, 2021
a featured image

Lilith Wittmann asked on Twitter:

Why do we have so much dangerous software in Germany?

Because we don’t have the competency anywhere (administration, enterprise or science) to understand the complexity of software.

My take was :

Computer science is easy. It is the science of Zeroes and Ones, and it does not get any more complicated anywhere.

Computer science piles abstractions on top of each other, though, 30 layers deep and with non-linear interactions. That creates a different kind of complexity that is also harder to handle.

As you grow older, you learn:

Computer science is the science of boxes and arrows between them. Zeroes and Ones hardly matter.

The boxes are still trivial, but problems come from the dependencies. If the dependencies symbolize “communication between systems” things get truly awful.

Communication and consensus are lossy and hard to do, and until recently, were untestable.

As you grow even older, you learn:

Computer science is the science of crystallized processes. Code is law.

Processes are contracts between people that regulate who talks when to whom about what and why. Programs for human distributed systems, “companies”.

Computer science takes processes and create a machine-readable form of them. Interactions between people are mediated through code and automated. That can be good, but requires that you understand the process and why it is what it is.

Pizza, People, Projects and Processes has some fundamental things about processes.

“The german government fails at digitization” means from this point of view that the system has lost the ability to understand its own processes and to change them in a controlled way.

It is ossified and critical organisational knowledge is not available.