Skip to content
DevMeme
145 of 7435
The Three Sources of Truth for 'Kitchen'
TechDebt Post #181, on Feb 28, 2019 in TG

The Three Sources of Truth for 'Kitchen'

Why is this TechDebt meme funny?

Level 1: Wearing Three Name Tags

Imagine someone at a party wearing three name tags that all say "BOB" — one on their shirt, one on their jacket, and one on their hat. Did anyone ever fail to recognize Bob? Probably not. Did three different people each decide, at three different times, that what this situation really needed was another name tag? Absolutely. The door is funny because somebody labeled it, then somebody labeled it again, then again — and now no one remembers why, and no one will ever dare take a sign down in case it turns out to be the important one.

Level 2: DRY, Sources of Truth, and Comment Smells

  • DRY ("Don't Repeat Yourself"): a core principle stating every piece of knowledge should have exactly one authoritative representation in a system. Not because repetition is ugly — because updates to repeated facts will eventually miss a copy, and then the copies disagree.
  • Single source of truth: the one place where a fact officially lives (one config file, one database column, one sign). Everything else should reference it rather than restate it.
  • Redundant comments: the code-level version of this door — i++; // increment i. The comment adds nothing today and becomes a lie the moment the code changes. Three signs saying KITCHEN are the architecture-review version of that comment.
  • Configuration drift: when duplicated settings (dev vs prod, sign vs sign) slowly diverge because changes were applied to only one copy. The classic junior experience: changing a value, seeing no effect, and discovering hours later that a second, overriding copy exists somewhere else.
  • Worth learning early: some duplication is deliberate (the braille plaque serves accessibility; backups serve disaster recovery). The skill isn't deleting all redundancy — it's knowing which copies exist on purpose and writing that reason down before the next person with a drill arrives.

Level 3: Single Source of Truth, Triple Source of Kitchen

One maroon door. Three labels reading KITCHEN: big grey adhesive lettering above the frame, a brown engraved plaque (with braille) on the wall, and a smaller black plaque mounted right below it. No part of this composition is fictional — it's a found artifact, and it's funnier to developers than to anyone else because it's a perfect physical rendering of a DRY violation surviving in production.

The software analogue is exact. This is the room name defined as a constant, and an environment variable, and a hardcoded string — three declarations, one fact, and now a synchronization problem that didn't exist before. The day this room becomes a storage closet, somebody will update one sign, miss the other two, and the building will enter the state every legacy codebase knows intimately: documentation that disagrees with itself, where the reader must guess which label is authoritative. A single source of truth exists precisely so that change has one place to land; this wall has three landing zones and no owner.

But the archaeology is the best part, because each sign plausibly has a reason — and that's the truest thing about it. The braille plaque is almost certainly an accessibility-compliance artifact (ADA-style signage requirements mandate tactile signs at a specific mounting height). The overhead lettering is for visibility down a hallway. The third, small black plaque is the mystery — and every engineer knows its origin story without being told: a ticket said "users report they can't find the kitchen," someone closed it by adding a sign, and nobody had the authority, courage, or context to remove the existing ones. That's how production systems accrete three monitoring stacks, four feature-flag systems, and config files named config.final.v2.NEW. Removal requires understanding why a thing exists (Chesterton's Fence); addition only requires a drill. The incentive gradient points permanently toward "one more sign." Each label was a locally rational decision; the wall as a whole is institutional memory loss rendered in plastic.

And of course there's the testing-pyramid reading: the same assertion verified three times at three levels, none of which checks whether there's actually a kitchen behind the door.

Description

A photograph shows a plain brown door against a beige wall. The door is labeled 'KITCHEN' in three separate, redundant ways: once with grey vinyl letters above the doorframe, once on a brown plaque screwed into the wall, and a third time on a smaller black plaque below the brown one. This physical absurdity serves as a perfect visual metaphor for a common software anti-pattern: a lack of a single source of truth. In development, this manifests as having the same configuration, constant, or piece of business logic defined in multiple places. This happens over time due to legacy systems, incomplete refactors, or poor communication between teams, leading to confusion, bugs, and technical debt when one 'source' is updated and the others are not

Comments

8
Anonymous ★ Top Pick I see we've implemented the 'Kitchen' service, the legacy 'Kitchen' class, and the deprecated 'Kitchen' environment variable. Removing any one of them will cause an unrelated service to fail silently
  1. Anonymous ★ Top Pick

    I see we've implemented the 'Kitchen' service, the legacy 'Kitchen' class, and the deprecated 'Kitchen' environment variable. Removing any one of them will cause an unrelated service to fail silently

  2. Anonymous

    Architecture doc: “Single Source of Truth.” Codebase: enum says KITCHEN, YAML says KITCHEN, inline comment says KITCHEN - and nobody dares delete any of them because one still silently drives prod

  3. Anonymous

    This is what happens when the architect who insisted on "self-documenting code" gets promoted to facilities management

  4. Anonymous

    Three labels, one door: clearly the first two signs stopped working in production and nobody had permission to remove them, so they just deployed a third

  5. Anonymous

    When your junior dev discovers comments and decides every function needs three: one in the docstring, one inline, and one in the commit message. 'This function adds two numbers' - we know, the function is literally called `addTwoNumbers()`. Sometimes the best documentation is the code that doesn't need explaining, much like how one 'KITCHEN' sign would have sufficed here

  6. Anonymous

    Facilities implemented Raft for room labels: three “KITCHEN” replicas - violated DRY, but quorum reads still route you to coffee during a signage partition

  7. Anonymous

    Facilities rolled out multi‑master signage without consensus; we’re one rename away from split‑brain lunch

  8. Anonymous

    DRY? This kitchen runs on WET: Write Everything Three Times

Use J and K for navigation