Treat a newcomer's unanswerable question as a signal, not ignorance
When a newcomer to a codebase or system asks a question you cannot immediately answer about code you wrote, treat their question as a defamiliarization signal requiring investigation rather than dismissing it as lack of context.
Why This Is a Rule
Newcomers see what experts can't. Their lack of context — the thing you're tempted to dismiss — is precisely what makes their questions valuable. They haven't learned which parts of the system are "normal" and which are genuinely strange. When a newcomer asks "why does this function call three different APIs?" and you can't immediately explain why, that's not ignorance. That's defamiliarization — their fresh eyes detected something your expert eyes automated away.
The instinct to dismiss is strong: "They just don't understand the history" or "Once they have more context, they'll get it." Sometimes that's true. But the question you can't immediately answer about code you wrote is almost always revealing something — a decision you made without documenting the rationale, a complexity that accumulated without anyone noticing, or a design choice that made sense once but no longer does.
When This Fires
- During onboarding walkthroughs when a new team member asks about your code
- In code review when a less experienced reviewer flags something you consider obvious
- When someone from another team questions a design decision you've long taken for granted
- Any time your response to a question is "well, it's complicated" or "there's a lot of history there"
Common Failure Mode
Explaining the history instead of investigating the question. "Oh, that's because two years ago we had to support both APIs during the migration and we just never cleaned it up." The explanation satisfies the newcomer — they nod and move on. But the explanation revealed that your code contains migration debt you'd forgotten about. The newcomer's question was an opportunity to fix something; the history lesson was a way to avoid the fix.
The Protocol
When a newcomer asks a question about your code that you can't immediately answer clearly: (1) Resist the urge to explain or contextualize. (2) Write down the question exactly as asked. (3) Investigate it as if you didn't write the code. (4) If the investigation reveals something that should be documented, simplified, or fixed — do it. The newcomer just performed free defamiliarization on your codebase. Honor it with action, not history lessons.