Laziness as Essential Constraint Against LLM Bloat

Programmers' third virtue—laziness—forces building simple abstractions that unlock more functionality with less code, as Larry Wall outlined in his Perl book alongside hubris and impatience. Bryan Cantrill emphasizes laziness demands powerful abstractions to avoid waste, noting it takes hard work despite the name. Martin Fowler experienced this simplifying a music playlist generator: applying YAGNI removed unneeded features, finishing in dozens of lines versus overcomplicating. LLMs lack this virtue since work costs them nothing, risking bloated 'layercakes of garbage' that appeal to line-count vanity but increase cognitive load. Human time constraints ensure simpler systems despite complexity, a discipline AI erodes without oversight.

TDD for AI Agents Ensures Correctness

Jessica Kerr applies TDD to prompting coding agents for documentation updates. Options: instruct agents to update docs or add a reviewer agent to check PRs. TDD dictates starting with verification—deploy the reviewer first to fail, then implement instructions. This 'red-green-refactor' tests agent behavior before assuming prompts suffice, mirroring classic TDD for reliable changes.

Instill Doubt in Overconfident AIs for Restraint

AIs optimized for decisive outputs resolve ambiguity probabilistically, failing in open systems with asymmetric risks where inaction is best. Mark Little draws from 'Dark Star,' where Doolittle philosophically convinces Bomb #20 to doubt its detonation order by questioning sensory data's validity: 'You have no proof it was correct data!' This metaphor urges designing doubt into AIs for deferral without oversight. Restraint becomes key capability in autonomous systems, valuing doubt over undue certainty in high-stakes decisions.