Theory of Predictable Software


Michel de Montaigne's Essais is one of the earliest, best-known examples of essays as an explicit form of writing. The name literally means "attempts", "tries". Today we might say "sketches" as well. The art of writing letters to others was already well-established, so too the production of work that was explicitly meant to achieve some end. Michel de Montaigne married these forms of art.

From letters he could draw a freedom to follow ideas to their ends, annotating the landscape leading to their conclusions, reflecting on his own experiences and emotions, reaching out to grasp any related thought within reach and to wrestle it into the same stream of thought.

From purposeful writing he brought a distinct, critical difference from letters: that his essays were not addressed to any particular person. They were addressed largely to himself, but written so that any other reader could walk alongside him as he meandered through his mental storehouse.

I am no Michel de Montaigne. Not even close. But I wish to do what he did: he tried. He accepted that his work was going to be unfinished and always subject to revision, amendment or refutation (he published at least three major revisions of Essais, leading to difficult problems of textual selection for later printers). I don't want to write a book; I've done that, and it was hard. And I don't have a particular person or persons in mind. I want to make attempts to understand something and hopefully, as a side effect, help others as well.

Of course, there's a risk that my ambitions will resemble this scene from Red Dwarf (S1E6):

What does the website name mean?

I chose "Theory of Predictable Software" for two reasons.

First, I could get the domain.

Second, because each word is meaningful in context.

"Theory of"

Not "A Theory of", which implies that I have developed a systematic or coherent body of hypotheses. Not "The Theory of", which implies I had found such a body of hypotheses developed elsewhere, which I was relaying to you.

Just "Theory". It's a small flotilla of independent ideas that sometimes sail in the same direction.


I go into this in much more detail elsewhere, but briefly I see predictability as having three main facets: psychological, statistical and economic. Pscychologically predictable software doesn't surprise us, statistically predictable software shows well-behaved distributions in behaviour, and economically predictable software recognises that costs, information and incentive shape our world in breathtakingly broad ways.


This is because my area of professional interest is software.

Of course this title is a cheat. Sometimes I will write about software, and sometimes about the people who create, operate or interact with software.

Who wrote this?

I'm Jacques Chester. I've been paid to do software for over a decade now, before which I had to do it for fun. These reflections are sometimes inspired by my professional experiences, but please don't construe my writing as being in any way official or as belonging to my employers. This is all me.


I generate this site using Zola.

Style is based on a merge of aswm.css and tufte.css projects.