Fragments: February 4
Martin Fowler Β· article Β· 2026-02-04 source β Reader π₯οΈ
Cognitive DebtCognitive SurrenderLLM as Navigator (Not Oracle)LLM LimitationsMental Models & UnderstandingNear-Zero-Cost CodePair & Mob ProgrammingSpec-Driven Development
AI is reshaping the developer's relationship to understanding: it can erode comprehension of the systems we build, is wisely used to navigate toward an answer but never trusted for the answer itself, and may make code cheap enough that the specification becomes the durable engineering artifact.
mixed Β· mixed β A deliberately fragmentary post β the author states he cannot truthfully form the ideas into a coherent narrative β collecting independent observations from a Thoughtworks Open Space event; the software-and-AI fragments (understanding, LLM navigation, spec-only libraries) carry the intellectual core, alongside two off-theme asides on ad-funded AI assistants and civic resistance in Minnesota.
Structure
| Part | Role |
|---|---|
| Framing note (Open Space, fragment format) | Sets the expectation that what follows is a set of unpolished, independent thoughts rather than a single argued article |
| Fragment: AI, understanding, and pair programming | Raises the worry that AI erodes developers' understanding of their systems and offers explanation/teaching (as in pair programming) as a way learning happens |
| Fragment: the SRE and LLM navigation | Reframes the comprehension worry via an SRE who uses the LLM to understand and navigate a codebase he could never fully grasp, yielding the aphorism about navigating vs. trusting |
| Fragment: Breunig's spec-only library | Introduces a tangible thought experiment β a working library shipped as spec plus tests with no committed code β under the question 'what does software engineering look like when coding is free?' |
| Fragment: Schneier on advertising in LLM chats | Warns that ad-funded AI assistants risk conflicts of interest and that advertising is a 'gilded cage' business model |
| Fragment: Minnesota | A societal-political observation praising peaceful civic resistance against paramilitary brutality |
Key terms
- fragment (fragment format)
A short post that shares an idea as-is, without working it into the coherent narrative of a full article β the author's chosen vehicle for event thoughts he cannot unify - Very (Very) Large Code Base (VVLCB)
A codebase so large that no responsible human can fully understand it, making LLM-assisted comprehension a net addition rather than a loss - software library without code
Drew Breunig's idea (relayed here) that a library of the future could ship as only a specification and tests, with implementations generated per language on demand - gilded cage (advertising)
An ad-funded business model that is highly lucrative but binds a company to advertisers who can withdraw in downturns and gain leverage to influence or censor content
Propositions
- explicitUsing AI can cause humans to have less understanding of the systems they are creating.conf: medium
- explicitcorroboratedA key value of pair programming is that it forces you to regularly explain your work to your pair, and that explaining is itself an important part of learning β for the person doing the explaining.conf: highsupports βSoftware Teaming: A Mob Programming, Whole-Team Approach Β· p21 β Same claim, different framing (Feynman's 'freshman level' test vs. Fowler's 'forces you to explain'): articulating an idea to a collaborator is itself how understanding is tested and built.
- explicitOne of the best ways to learn something is to try to teach it.conf: high
- explicitFully trusting the answer an LLM gives you is foolish, but using an LLM to help navigate the way to the answer is wise.conf: high
- explicitAn LLM can help a developer understand what unfamiliar code is doing and navigate to the crucial parts of a large codebase.conf: high
- implicitThe comprehension-loss worry is least pressing where human comprehension was already impossible β an LLM adds understanding to a codebase no one could fully grasp anyway.conf: medium
- explicitSoftware libraries of the future might consist only of a specification and tests, with implementations generated on demand and no committed code.conf: medium
- explicitA working library can be produced from a ~500-line markdown specification plus ~500 lines of YAML tests, generating implementations across seven languages.conf: high
- implicitdevelopedWhen coding is effectively free, the specification (with its tests) becomes the durable, primary engineering artifact rather than the code.conf: mediumextends βAI Demands More Engineering Discipline, Not Less Β· p3 β Both build on 'code becomes free, so the durable artifact must be something else,' but Majors extends the claim by locating the new durable artifact in architecture/production observability, not only in specification-plus-tests.
- explicitdevelopedAd-funded LLM assistants create a conflict of interest: a recommendation may reflect a paid kickback rather than the user's best interest.conf: highextends βΓn enkelt behandling kan gi svΓ¦rt langvarig kolesterolsenkning: β Noe radikalt nytt Β· p4 β Applies the same pattern β a commercial party's forward-looking claim about its own product is reported without examining the conflict of interest β to a new domain (biotech pricing promise vs. ad-funded LLM recommendation kickback).
- explicitAdvertising is a 'gilded cage' business model β lucrative but binding a company to advertisers who can withdraw in downturns and gain power to influence or censor content.conf: medium
- explicitPeaceful civic resistance by ordinary Minnesotans β blowing whistles and filming videos β exemplifies the civic virtues that authoritarian movements claim but fail to embody.conf: low
Arguments
The right way to use an LLM is as a navigator that guides you toward an answer, not as a source to be trusted for the answer itself. strength: medium
Explicit premises:
- Fully trusting the answer an LLM gives you is foolishness.
- An SRE uses the LLM to understand what a codebase he cannot fully grasp is doing and to navigate to its crucial parts.
- That navigational use is valuable even to someone who could never verify the whole system independently.
Implicit premises:
- LLMs are unreliable on final correctness but useful for orientation and location.
- Checking or acting on where the LLM points you is safer than accepting what the LLM concludes.
Inferences:
- Therefore treat the LLM's output as a route to be followed and verified, not as a verdict to be trusted.
Practices that force you to explain your work help counteract AI-driven loss of understanding, because explaining is how the explainer learns. strength: medium
Explicit premises:
- A value of pair programming is that you must regularly explain things to your pair.
- Explaining is an important part of learning for the person doing the explaining.
- One of the best ways to learn something is to try to teach it.
Implicit premises:
- AI reduces the occasions that force a developer to explain or reconstruct their reasoning.
- Preserving explanation-forcing practices therefore preserves comprehension that AI use would otherwise erode.
Inferences:
- So keeping practices like pair programming defends developer understanding against the comprehension-loss worry.
If coding becomes free, libraries can ship as specifications and tests only, making the spec the primary artifact. strength: medium
Explicit premises:
- Breunig built a working timestamp-to-phrase library from a 500-line spec and 500 lines of YAML tests.
- The same spec generated implementations in seven languages.
- The experiment was undertaken to explore what software engineering looks like when coding is free.
Implicit premises:
- Implementations generated from a good-enough spec are interchangeable and effectively disposable.
- A language-independent spec-plus-tests is more durable than any single generated implementation.
Inferences:
- Therefore, under free coding, the spec and its tests carry the enduring engineering value.
Narratives
- An SRE responsible for a Very (Very) Large Code Base is not worried about not understanding LLM-written code, because he already cannot understand the codebase he owns; he values that the LLM helps him understand what the code is doing and navigate to the crucial parts.
β Grounds the LLM-as-navigator thesis and reframes the comprehension-loss worry as least pressing where comprehension was already impossible - Drew Breunig built a library that converts timestamps into phrases like '3 hours ago' from a 500-line markdown spec and 500 lines of YAML tests, generating implementations in seven languages.
β A tangible thought experiment making the 'code is free' / spec-only-library future concrete - An ex-Googler explains that advertising was a 'gilded cage' for Google β very lucrative but tying the company to advertisers who pull out in downturns and gain power to influence content.
β Illustrates the structural risk of ad-funded business models, applied to the prospect of advertising inside LLM chats - Minnesotans resist masked paramilitaries peacefully β their principal weapons blowing whistles and filming videos β demonstrating neighborliness and social cohesion.
β A moral-political aside praising civic resistance; off-theme relative to the software fragments
Questions addressed
- β Does using AI erode developers' understanding of the systems they build?
Acknowledged as a real worry; two partial mitigations are offered anecdotally β explanation-forcing practices like pair programming, and using the LLM to comprehend code you could not grasp anyway. - β
How should a developer relate to an LLM's output?
As a navigator to be followed toward an answer, not an oracle to be trusted for the answer. - β What does software engineering look like when coding is free?
Explored, not answered β a spec-only library is presented as a tangible thought experiment suggesting the spec-plus-tests becomes the durable artifact. - β
What are the risks of advertising-funded AI assistants?
Conflicts of interest (kickback-driven recommendations) and advertiser capture over content, framed as a lucrative but confining 'gilded cage'.
Gaps
- incompleteThe comprehension-loss worry is raised and then softened by the SRE anecdote, but the piece never distinguishes genuine understanding from borrowed or illusory understanding: the SRE 'understands what the code is doing' via the LLM, yet whether that is real comprehension or offloaded confidence is not examined.
Read next: Read on cognitive/comprehension debt and the illusion of explanatory depth β when LLM-mediated navigation deepens versus substitutes for real understanding. - incompleteThe 'navigate the way to the answer, don't trust the answer' aphorism gives no criterion for separating the route from the destination β the navigation output is itself a fallible LLM answer that can point you at the wrong part of the code, so the guidance risks being circular in practice.
Read next: Look at verification patterns, feedback loops, and evals for the navigational (not just the final) outputs of an LLM. - incompleteThe spec-only library is demonstrated on a trivial, cleanly specifiable domain (timestamp-to-phrase formatting); the piece does not address whether spec-plus-tests scale to domains with emergent, under-specifiable, or performance-critical behavior, where the spec may grow as complex as the code it replaces.
Read next: Read on the limits of spec-driven development and where specifications stop being cheaper than implementations. - uninformedDiscussing AI-driven loss of understanding, the fragment does not engage the existing vocabulary of comprehension/cognitive debt or cognitive surrender that names precisely this failure mode and its accrual over time.
Read next: Bring the comprehension-debt and cognitive-surrender literature to bear on the pair-programming and LLM-navigation fragments.
Related documents
- AI coding creates two kinds of debt. You're only measuring one
- Cognitive Surrender
- From Technical Debt to Cognitive and Intent Debt: Rethinking Software Health in the Age of AI
- Agentic Code Review
- The best response to AI slop, infinite advice, and online noise is from Robin Williams
- Guillaume Barrois' Post
- Build an AI Advisory Board with GPTs for Decision-Making
- Comprehension at AI Speed: Building a Context Store for Evolutionary Architecture
- Det skal være vanskelig
- Eating My Own Dog Food: How I Used the Framework to Write the Post About the Framework