The Bureaucracy of Automatons

An introduction to the notes on Confucian Software.

Software and the Sage

Among the many dissimilarities between software and gentlemen of the classical Chinese Spring and Autumn Period, two in particular stand out. One existed in a pre-scientific feudal society on an agricultural technological and economic base, and the other presupposes the scientific method and a modern (or post-modern) industrial base. Secondly, the concept of virtue or potency (德) is central to The Analects, but software artifacts are, in our day and age, non-sentient. Morality requires some degree of self-awareness – of consciousness – and so software does not itself practice virtue any more than a spoon or a lawnmower.

The immediate relevance, for a developer, of the Analects, are the two other grand concerns of Confucius, which are existential fundaments of software. These are names (名), and the rites (礼).

Continue reading

Democracy With Unit Tests

I don’t listen to every episode of Freakonomics – it’s so chirpy – but Regulate This, on the disruptive approaches of tech firms monetizing underused resources owned by individuals, was excellent. It pulled together a number of different threads about innovation, regulation and consumer protection, to the point where a friend of mine was prompted to ask ”Does this presage the end of the regulationist government that has grown so steadily to protect us from any old thing?” … with all the good and bad that might imply.

So I don’t have a crystal ball, but this is an interesting swirl of forces. The basic problem with state regulation of this sort at the moment is it doesn’t scale down. It can deal with a taxi company but not renting out your back seat. It can face off against a hotel chain but not a spare room.

You also have two generations of bureaucracy and information technology facing off against each other. You have a Max Weber nineteenth century Prussian bureaucratic form of technology and organization, adapted through 20th century American progressivism, then dealing with a set of technologies and practices where a lot less of the machine is made of people, but instead code. Its a fight between two bureaucratic social elites with different traditions and texts and that is where much of the nastiness comes from.

Eg, the culture clash in the US Healthcare website rewrite … but also Nate Silver, also both Obama presidential campaigns and their use of big data and social network analysis.

Plus you have dynamics of actual consumer protection and consumer empowerment. The back seats of those cars in LA really are going to waste. My guess is for a while – like a decade or two – big government really won’t be able to deal with this sort of distribution. Big Government is the nearest shorthand for 20th century high modernist bureaucracy, that depends on lots of command and control and economies of scale. It just can’t scale down or move fast enough when put head to head with Internet-era tech. I imagine mostly an environment of benign neglect, but with horrible weird cases like suddenly living next to a popup brothel, which you can’t get the police interested in because everyone is renting out rooms on airbnb nowadays.

It was very interesting to me that New York and Chicago were big sites of regulatory pushback. They are both huge rich cities, with a lot of metro transport infrastructure, subways, buses and hotels. They have the population density economies of scale to make transport cheap already, even taxis. Whereas in, say, Brisbane, the trains cost an absolute fortune, and the taxis are basically non-existent outside of a very small square in the centre of town. Lift or Uber has a much bigger opportunity in Brisbane – or Phoenix, or Atlanta – because of the lack of competing infrastructure.

I think probably government will learn to adapt and use the new techs effectively, for better and worse, and will learn to scale down, so you can pay your 5% hotel room tax by smartphone for the three times a year you rent out your spare room. At its nicest it will look like GOV.UK, at its worst it will look like the CIA’s PRISM, and the latter will probably data mine the crap out of the former.

What about democracy and due process? There is a risk that in the rush to monetize every spare bit of capacity in our existing infrastructure, and routing around an elephantine bureaucracy with regulators that get new grads for a few years before they jump into the industries they were regulating, we screw up good processes of review and consultation just because they are slow. To me the only way around that doesn’t involve ignoring the tech is to exploit the legibility of software itself. Our regulations are code now. Well the regulations are public knowledge, right – why not the code? GOV.UK is on github (publicly hosted source control). Why not most civic infrastructure? Why not submit a patch for the local traffic light not leaving enough time for pedestrians, and argue about it in an issue system with your neighbours and the civil engineers looking after traffic design in that part of the city? It’s democracy with unit tests.

There are utopian extensions of this approach imagining using open software social and technical structures to reinvent corporations and government. One vision from Jessica Margolin and Jamais Cascio is to retool global business for resilience. The Jetpack Communist version is Terranova’s Red Stack Attack!: Algorithms of Capital and the Automation of the Common. Another vision might be using a structure like the W3C to fix climate change. I am drawn to these without being able to reconcile how they might live in the same world as gunboat diplomacy and social terror franchises like ISIS. There are visions in there, and a theory, and a kind of prototype, but not really a platform, yet.

XIV.3 When the way prevails in a system

子曰,邦有道,危言,危行。邦无道,危行,孙言。 ‘ — 论语,十四:三

The Master said, ‘When the Way prevails in the state, speak and act with perilous high-mindedness; when the Way does not prevail, act with perilous high-mindedness but speak with self-effacing diffidence.’ — Analects XIV.3 (Lau)

Confucius expresses not only a prudent guideline for ethical public service, but a principle for designing robust systems across diverse interfaces. Consider The Way prevailing in a trustable system: one you control, or one well established, open and of high quality. In these circumstances it is possible and desirable to do strict validation on subtly incorrect inputs, and to raise exceptions internally without fear of further system failure.

A bureaucracy is an information processing system of communicating agents. At the external endpoints of this system it can, through interfaces, have physical and social effects. Likewise, software is a bureaucracy of automatons. This is especially evident when the software system is decomposed into independently processing agents, as in concurrent or distributed systems. External effects depend on the system: a state may build a road, or put a man in jail; software may fly a plane, or a missile.

Such decoupled or distributed systems then have non-trivial needs for design of the communication protocol itself. This manifests, in traditional bureaucracy, as paper forms. Paper (or equivalent) is now seen as a technological pre-requisite for centralized state formation across larger geographic and demographic scales because it is an enabler for efficient central bureaucracy (eg Whitmore chapter on Dai Viet). In the time of Confucius the state ran on more unwieldy scrolls, but the problems of information flow in the state system are shared.

Facing similar problems of information design, Confucius gives similar advice to Jon Postel:

TCP implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others. RFC 761

Postel is perhaps more forgiving than Confucius, here. If a program must deal with badly formed inputs, The Way does not prevail in the system. If it tries too hard to be liberal in it’s interpretation of inputs, rather than logging an error, rejecting or ignoring the input, it is more prone to subversion. One could say the system does not act with perilous high-mindedness in maintaining its internal state.

The langsec group have a variation on the principle which bears even greater similarity: “Be definite about what you accept”. Log an error if you can, they might have added; else speak with self-effacing diffidence.