Contents

Metaphors and Mental Models

My last gig was as a software developer with a company that had an enormous monolithic application that handled billions of dollars a year for hundreds of thousands of clients. That system was complex, important, and ever-changing. Maintaining and improving it was the work of hundred of developers and dozens of teams. It would have been impossible for any of us to understand the entire codebase and this lack of omnipotence was the source of predictable problems. While we each had detailed understandings of our own domains, we had to communicate these understandings to people who didn’t need the details. They needed an abstraction. These communications often took the form of metaphors and mental models. One team might explain their system as a pipeline. Another might abstract their system as a service counter. These metaphors were fundamental for teams to work together and preserving, refining, and communicating these metaphors occupied a fair bit of the senior engineering team’s time1.

Metaphors in Court

I have been wrestling with the most common metaphors that I hear in case management court. They are similarly being leveraged to communicate about a complex system that needs abstraction when used in an appearance that might only last 20 seconds. While these metaphors might be fit for that purpose, they are terrible for explaining or exploring any of the underlying complexity. The problems come when the abstraction is used to explore the parts of the system that have been abstracted away. Fixing a system that you believe to act like a pipe is hard when underneath, it acts very differently.

One of the frequently used abstractions in the Ottawa court house for the pretrial process is one of a train or a trolley2. The refrain: “we need to get this trolley back on the tracks” is pervasive from both the Crown and the bench. It’s an easy abstraction to understand. The train (case) starts at the beginning and needs to make it to the end. There might be diversions or derailments, especially fitting in Ottawa these days, but the train must continue tirelessly in the direction of completion, whatever completion means. Any deviation or delay is seen as the train stalling on the track and cannot be tolerated.

It makes sense to leverage this metaphor when addressing a particular case in a busy case management court. It’s a projection of a complex system that’s been reduced to the view of a single case. This is the right unit of measure when addressing one case. But if you’re trying to reason about the system at large it falls apart. Trains don’t often interact with each other and they rarely compete for resources besides the track they roll upon. Cases on the other hand compete for lawyer time, court time, and court staff. Cases rarely move linearly from start to finish, and these deviations are not unexpected derailments; they happen in just about every case of any complexity.

Another projection to a single cases is a dog on a leash. “I’d like to keep this matter on a short leash.” is a frequent refrain. I don’t like it. It provokes uncomfortable imagery and gives the impression the that Crown is dragging a case through the system to a particular place. It’s not a good look for a dispassionate and moderate Crown. Another side effect is that these cases are often given much shorter adjournments as a result. Whether or not this short leash helps progress cases more quickly is hardly clear.

A more colourful metaphor for the process has emerged out of Ontario courts for describing the struggles that the system has had dealing with the backlog of cases that concentrated during the COVID-19 pandemic:

[17] ... The backlog is the mathematical result of the cascading systemic impact of 
cancelled scheduled hearing dates and deferred scheduling of future hearing dates 
occurring during the periods of total physical closures of court operations plus other 
periods of only partial re-opening where fewer hearings than normal were able to be 
processed.  The resulting backlog is in the process of being worked through but, 
like the proverbial *pig in the python*, it will take some time before it can be 
considered to be fully digested. 

There’s two things worth note. This isn’t a projection of the system from the perspective of a single cases but has a more systemic view. It’s a reasonable way of describing the consequences of cascading systemic failures. These failures the consequences of a mass of cancellations during the COVID-19 pandemic. It communicates this without introducing the complexity of that underlying system simplifying it down to a rather different pipe.

A Clockmaker’s Shop Instead?

This project is studying the process that starts when the charges are laid through to completion. Coming up with an abstraction that helps talk through the complexity while ironing out some of the unneccessary wrinkles has been a struggle. The value would be that it would simplify writing about consequences, such as cascading failures, without abstracting away the non-linear nature of the scheduling problem. The best I have been able to come up with is a factory floor or, more whimsically, a bespoke antique clockmaker’s shop. In a clockmaker’s shop3 there might be a number of workers working on indivudal components in parallel. Maybe there is a particular artisan gear carver that works in the corner and everyone depends on her work. Identifying this person as a critical piece of the system is easier to understand with this picture than trying to wedge the idea of a critical path into a model based on trains, digestion, or dog-walks. When there are shortages of parts or people then production falters, throughput drops, and the quality of the resulting clock inevitably suffers.

This sort of metaphor helps make consequences clear. Wasting the judge’s time has consequences beyond a late lunch break for the clerk. It holds up a whole courtroom. Doublebooking cases or cases collapsing on the courtrooms steps are easier to explain as major problems. Having a window in the building installed to dump a third of the clocks in the dumpster because you know you don’t have capacity is a much more dramatic visualization for the current state of affairs in Ontario then a couple of trains stopping in Slough instead of Reading. Having a reasonable metaphor makes it easier to write about the quality of the results in concrete fashion. With the train metaphor, for instance, the goal seems to be to run those trains on time and damned be the quality of the journey. A clockmaker’s shop may aim to produce as many clocks as possible, but quality matters.

I plan to continue refining the mental models and metaphors that I use to explain how this system works and the consequnces when it breaks down. In addition to making the writing more interesting it makes it easier to communicate to lay people how the process works.


  1. Communicating complex software systems is a pretty active area of research. Many a paper ream has been sacrificed at the alters of flowcharts, UML (unified modelling language), and pseudocode. ↩︎

  2. I’m going to call it a train because otherwise they could be confused for trolley problems and those are, hopefully, unrelated. ↩︎

  3. Andy Grove talked about a toaster factory in his book on IT management for the same reason. Toasters are easier to write about than a python’s last meal. ↩︎