Embrace informal models
stewing over the French Onion Soup Problem 2025-06-17 #modelling #cooking
Earlier this year, while on holiday visiting friends, I offered to cook lunch. To take advantage of a critical but appreciative audience, I decided to make French onion soup. While cooking, my mind wandered, and settled on the following question.
I can certainly call this onion soup, but can I justifiably call it French onion soup?
The recipe
France doesn’t have a monopoly on cooking soup with onions; other cuisines also feature onion soup. However, on this particular day, I started with the most French recipe I could find:
And you have to admit, Chef Michel Dumas does seem exceptionally French (even though he lives in Canada). Therefore, I reasoned, the French recipe would definitely deliver French soup.
The chef
After slicing the onions, as the butter melted in the pan, doubts crept in. While a recipe might set the stage for cooking a dish, each chef inevitably makes it their own, even if they try to reproduce the original recipe faithfully, let alone authentically.
And while Chef Michel Dumas’ videos don’t hold back on emphasising his Frenchness, I come from a country that continues to double-down on its non-Frenchness by publishing books like 1000 Years of Annoying the French. Therefore, I had to accept that whatever the recipe, my British nationality precludes the possibly of French onion soup.
The ingredients
Later, as I continued stirring the onions in the melted butter, taking care to only let them colour slightly, I considered another perspective. My friends in this story live in Charente-Maritime, in south-west France, and buy onions from a local street market. French onions.
I realised that perhaps I shouldn’t centre myself so much, and place my nationality above the protagonists’ (the onions). And then, as if to add not just a dimension of flavour but also of Frenchness, I found myself adding a glass of French white wine to the mix.
The outcome
After a while, I had reduced the wine’s volume by half, added the stock and seasoning, and left the soup to simmer. At this point in the process, it already smells pretty good, and so with excellent timing, Claude (French) arrived, and came to the most French conclusion imaginable.
Claude: ah, that smells good. What is it?
Peter: I’m cooking onion soup.
Claude: -
Peter: But I can’t decide if it’s French onion soup. After all, it’s a French recipe, we’re in France, and the onions are French; but I’m not.
Claude: well, … if it tastes good, it’s French.
Modelling
While cooking the soup, I watched Einar Høst’s NDC Oslo 2023 presentation, Modelling vs Reality. I blame Einar for me over-thinking soup categorisation.
Einar explains that we use informal soup categories to describe reality, so we can talk about the different kinds of soup we eat. However, designing and building software often prompts us to model that reality more formally, as we might for a soup management app, say, introducing more precise technical categories.
However, Einar also warns that modelling created a French Onion Soup Problem that didn’t otherwise exist. I can declare my soup to belong to any category I want. The problem lies in the categories. The soup doesn’t care.