Free — no signup required

The Hidden Trap: Hidden State

2 min read

The "Out of Order" Problem

Notebooks allow you to execute cells in any order. This flexibility is one of their greatest strengths for exploration — and one of their most dangerous failure modes in practice.

Consider this sequence:

  1. Cell 1: x = 10 → You run it.
  2. Cell 2: x = 20 → You run it.
  3. Cell 3: print(x) → Output: 20
  4. You decide Cell 2 was a mistake and delete it.

Now your notebook visually shows x = 10 at the top and print(x) at the bottom. A reader would expect the output to be 10. But the Kernel's memory still holds x = 20 from when you ran Cell 2 before deleting it. The visible state (the code on screen) does not match the hidden state (what the Kernel actually remembers).

This is the root cause of the classic complaint: "It works on my machine." The person sharing the notebook ran cells in a non-linear order, and their Kernel's memory contains variables that the notebook code alone cannot reproduce.

The Fix

The discipline is simple but requires habit:

  • After deleting or modifying a cell that defines a variable, re-run all cells below it.
  • When things behave unexpectedly, your first action should be Restart Kernel & Run All — not more debugging.
  • Before sharing, always verify the notebook runs clean from top to bottom.

At a senior level, the architectural implication is larger: notebooks are fundamentally unsuitable as production code artifacts precisely because of hidden state. Production systems need scripts or modules — files that execute linearly and deterministically every time. Notebooks are for exploration and communication; the clean, tested logic should be extracted into .py modules before being deployed.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free