You can't unit test for taste
Can subjective “taste” in software design or UX be captured in tests or code, especially when AI agents are doing more of the implementation work? Commenters argue that while some aspects of quality can be formalized through style guides, linters, snapshot tests, or ML models trained on thumbs‑up/thumbs‑down data, a large, context-dependent residue of judgment resists being externalized into rules or unit tests. This raises broader questions about the limits of TDD and automated evaluation, the role of humans as final arbiters of design and architecture, and how far LLMs can really go beyond being smart but inexperienced collaborators.
Nature of “taste” and whether it’s testable
- Many argue you cannot fully unit test for taste because:
- Taste is the part of the spec you forgot or can’t articulate.
- Rules need exceptions, whose exceptions are contextual judgment; what’s left is “taste.”
- You can externalize only a small, rule-like slice; the rest remains implicit.
- Others counter that parts can be encoded:
- Pairwise “hot or not” comparisons can train ML scoring functions.
- Style guides, pattern languages, and UI guidelines capture some shared standards.
- Linters and scripts can enforce conventions (naming, brand colors, layer boundaries).
AI, LLMs, and personal/organizational taste
- LLMs are described as powerful but stuck at “smart new hire” level:
- No persistent, individualized long-term memory.
- RL / feedback tends to average out to generic style, not one person’s taste.
- Models often make confident but tasteless or risky decisions unless tightly governed.
- Proposed approaches:
- Train separate preference models per person/team; fail when they disagree.
- Use agents plus human “gates” or validation tickets before closing work.
- Treat LLMs as junior devs; encode decisions in ADRs/docs and let them follow.
Testing philosophy and the limits of TDD
- Tests are seen as ensuring things are “not wrong,” not making them “good” or tasteful.
- Heavy TDD and low-level unit tests are criticized:
- Correctness doesn’t neatly compose; emergent behavior appears at higher levels.
- Over-mocking and 100% coverage targets reduce confidence and slow change.
- Others defend TDD when applied at appropriate abstraction levels and for bugs.
- Snapshot tests and visual regression are suggested for graphics/UI, but they don’t capture “feels right.”
UX, visuals, and “feel”
- Many note AI-generated UIs/images often feel cheap or off.
- Some think neural nets can recognize qualities like “tacky,” given enough labeled examples.
- Tools can test objective aspects (colors, layout consistency), but subjective UX friction still requires humans.
Intuition, anthropomorphism, and pragmatism
- Human intuition (e.g., sensing structural failure) is likened to taste: grounded in experience but hard to encode.
- The use of “we” with AI collaborators raises concern about subtle anthropomorphizing.
- Several voices advocate accepting “good enough,” using AI as a support tool while humans retain final taste and governance.