Mental Models, Programming Fictions, and Wittgenstein

This is a follow-up essay to my previous one about Empathy and Debuggers, where I confessed to my preference for empathically understanding the code rather than for line-oriented debugging.

Here, I would like to expand that slightly mystic notion of empathic understanding with a more exact one of mental models and share a few tips on how I build and update them.

Mental Models for Fixing Bugs

Troubleshooting why an alert has appeared, why tests started to fail after you did a change, why a command is failing for your colleague yet works for you — those are very often solved by one small change at a single place, and the difficulty lies in finding that place and that change. My usual strategy to find it is to consult the mental model I have for the pipeline/code/command in question:

Read More

Tags: Wittgenstein