The Strong Legalism of Code
Interpreting the Rule(s) of Code by Laurence Diver was a recent episode of Future of Coding, discussing a paper by the same name, which discusses the strong legalism inherent in code. It claims that code by its very nature, by its strong “rulishness”, is far more legalistic than actual law.
This episode and the content of the paper hit a nerve. It came at the same time as being subjected to the vagaries and constraints of software in a bank and the helplessness of the people working with it to be able to change it or make it do what they want to. All because this particular case – although perfectly valid and desired by the staff – hadn’t been considered beforehand and was therefore impossible to accomplish within the confines of the program.
Imagine an older, completely analog version of this process: if a person deems the request valid and either had (or was given) the authority to approve it, they could simply annotate the necessary documents and other people in other parts of the process would take it into account.
This option often disappears as we increasingly digitise these workflows and use software that is rigid and cannot cover all possible cases and also does not explain why it cannot accommodate them. This increasing legalism is an insidious phenomenon that we should be aware of and we should consider when building new systems.
Laurence Diver goes into more detail about the reasons why code tends to exhibit certain legalisms, what forces drive programmers in one direction or another and how we might try to think about code and the process of producing it in ways that mitigate the risk for strong legalism. In the conclusion he summarises his findings as follows:
In constitutional democracies we tend to want to resist the blanket heteronomy of rules passed down from sovereign legislators. Not only do we require that such rules exhibit certain basic legitimising characteristics, but we also aim for procedural safeguards that allow us to interpret and contest them in practice. We should take the same stance against producers of code that directly constitutes, limits, and structures so much of our environment, behaviour, and actions. One promising way to do this is to critically interrogate its text, during the process of production, from the perspective of legality and the rule of law.
Ivan and Jimmy in the podcast have an insightful discussion about the implications of the paper for how we build new software. Specifically, how we can write better environments or tools that allow for more malleable, less legalistic software.
This particular episode cemented The Future of Coding as my new favorite podcast. Highly recommended.