What AI Lacks: Why 'Taste' Matters in Software Architecture
Architecture February 21, 2026

What AI Lacks: Why 'Taste' Matters in Software Architecture

AI can write code, but it can't make the judgment calls that distinguish good architecture from working code. Why experience-based 'taste' remains irreplaceable.

J

Jason Overmier

Innovative Prospects Team

George Hotz, legendary hacker and founder of comma.ai, has made an observation worth repeating: AI has no taste. It can generate code that works, but it can’t make the judgment calls that distinguish elegant architecture from functional spaghetti.

This isn’t a temporary limitation that more training data will solve. It’s a fundamental gap between what AI does (pattern matching) and what architectural taste requires (judgment in novel situations).

Understanding this gap explains why senior architects remain valuable in an AI-accelerated world.

What Is ‘Taste’ in Software?

Taste in software isn’t about aesthetics. It’s about judgment that produces better outcomes over time.

Components of Taste

ComponentWhat It MeansExample
Appropriate abstractionKnowing when to abstract and when to keep simpleNot building a framework for one feature
YAGNI judgmentBalancing preparation vs. over-engineeringAdding flexibility only where uncertainty is real
Trade-off navigationChoosing between imperfect optionsConsistency vs. availability in distributed systems
Context sensitivityAdapting decisions to specific situationWhat works for startup vs. enterprise
Long-term thinkingOptimizing for lifecycle, not just nowChoosing boring technology over exciting

What Taste Looks Like

DecisionAI Might SuggestTaste Suggests
State managementComplex library that handles everythingSimple solution that handles current needs
API designREST, GraphQL, and gRPC for different clientsOne approach, consistent experience
Testing strategy100% coverageStrategic coverage of critical paths
Service boundariesMicroservices for “scalability”Monolith until boundaries are clear
Build vs buyImplement for controlIntegrate when undifferentiated

The AI suggestion isn’t wrong. It just lacks context and judgment.

Why AI Lacks Taste

Pattern Matching vs. Judgment

AI generates code by predicting what comes next based on patterns in training data. This produces:

AI StrengthAI Limitation
Reproduces known patternsCan’t judge if pattern fits your situation
Suggests common solutionsCan’t deviate from training distribution
Considers immediate contextMisses broader system implications
Optimizes for correctnessDoesn’t optimize for maintainability

The Training Data Problem

AI is trained on open-source code. This creates systematic biases:

Training BiasEffect on Suggestions
Trend-chasing codeSuggests new frameworks over proven ones
Over-engineered samplesSuggests complex solutions to simple problems
Inconsistent patternsDifferent suggestions for similar problems
Missing contextDoesn’t know why decisions were made

A senior architect’s “taste” comes from seeing the consequences of decisions over years. AI sees code, not consequences.

The Novelty Problem

Taste matters most in novel situations where patterns don’t apply:

SituationPattern-Based ApproachTaste-Based Approach
New domainApply similar domain patternsUnderstand domain, adapt approach
Legacy integrationRewrite in modern stackIncremental migration, preserve value
Scale jumpArchitect for expected scaleDesign for current scale, plan evolution
Team constraintsIdeal architecturePragmatic architecture team can execute

When there’s no training data pattern for your situation, AI has no basis for judgment.

Where Taste Matters Most

1. System Boundaries

Deciding where to draw lines between components requires taste:

QuestionAI AnswerTaste Answer
”Should this be a service?""Services are scalable""Only if the boundary is stable"
"Should we use a message queue?""Queues enable async""Only if we need async semantics"
"Should we cache this?""Caching improves performance""Only if stale data is acceptable”

2. Technology Selection

AI can list options. Taste picks the right one:

FactorAI ConsiderationTaste Consideration
Team expertiseTechnology popularityWhat team can maintain
Hiring marketCommon technologiesAvailable talent pool
LongevityCurrent trendsTechnology lifecycle stage
RiskKnown vulnerabilitiesOperational complexity

3. Technical Debt Management

AI doesn’t understand the concept of debt:

DecisionAI ViewTaste View
Quick fix vs refactorImplement requested fixConsider if fix creates future cost
Feature deadline pressureShip fastest solutionBalance speed with debt incurred
Legacy system handlingSuggest rewriteIncremental modernization

4. Team Dynamics

Architecture affects teams. AI doesn’t consider people:

FactorAI IgnoresTaste Considers
Cognitive loadN/AHow much can team understand?
OnboardingN/AHow quickly can new devs contribute?
Bus factorN/AIs knowledge distributed?
MoraleN/AIs architecture frustrating the team?

Examples of Taste in Action

Example 1: The Caching Decision

Request: “Add caching to improve performance”

AI approach:

// Add Redis cache for all database queries
const cachedResult = await cache.get(key);
if (cachedResult) return cachedResult;
const result = await db.query(...);
await cache.set(key, result, TTL);
return result;

Taste approach:

  • Which queries are actually slow?
  • Is stale data acceptable for this use case?
  • What’s the cache invalidation strategy?
  • Are we adding operational complexity for minimal gain?
  • Should we fix the query instead of caching?

The taste approach might conclude: “The query is slow because of missing index. Add index, skip cache.”

Example 2: The Microservices Question

Request: “Should we use microservices?”

AI answer: “Microservices enable independent deployment, scaling, and team autonomy. Consider using Kubernetes for orchestration…”

Taste answer:

  • What’s our team size? (5 engineers)
  • How often do we need independent deployment? (Weekly at most)
  • Do we have DevOps capacity? (No dedicated DevOps)
  • Are boundaries clear? (Still evolving)

“Microservices would add operational overhead we can’t support. Stay with monolith, organize by modules.”

Example 3: The Abstraction Level

Request: “Build a notification system”

AI approach: Generic notification abstraction with providers, templates, queues, preferences, scheduling…

Taste approach:

  • What notifications do we actually need today? (3 types)
  • What’s likely to change? (More notification types)
  • What’s unlikely to change? (Email as primary channel)

Build for today with clear extension points. Don’t over-abstract.

Developing Taste

Taste isn’t innate. It develops through:

Experience TypeWhat It Teaches
Lived with past decisionsConsequences of architectural choices
Seen many codebasesPatterns that work, patterns that fail
Made mistakesWhat seemed right but wasn’t
Seen scale changesWhat breaks, what doesn’t
Team variabilityWhat’s maintainable by others

Accelerating Taste Development

PracticeHow It Helps
Post-mortemsLearn from failures systematically
Architecture reviewsSee others’ decisions and reasoning
Codebase diversityRead code outside your domain
Long-term ownershipLive with your decisions for years
MentorshipLearn from those with more experience

The AI + Taste Combination

The winning combination isn’t AI vs. taste. It’s AI plus taste:

PhaseAI RoleTaste Role
Problem understandingSummarize patternsFrame the actual problem
Solution generationPropose optionsEvaluate which fits
ImplementationGenerate codeGuide direction, verify
ReviewFind surface issuesJudge architectural fit
EvolutionSuggest refactoringsDecide what to change

AI accelerates implementation. Taste ensures it’s the right implementation.

Common Mistakes

MistakeWhy It Hurts
Accepting AI architecture suggestionsAI optimizes for patterns, not your context
Replacing senior judgment with AILoses the taste that prevents problems
Over-engineering with AI toolsAI makes complex solutions easy to generate
Not reviewing AI architectureAI suggestions look plausible but may be wrong
Undervaluing experienceTaste comes from time, not tools

AI can generate code, but it can’t replace the judgment that distinguishes good architecture from working code. If you’re looking for a development partner who brings both AI acceleration and architectural taste, book a consultation. We’ve been making these judgment calls for years, and we bring that experience to every project.

Ready to Start Your Project?

Let's discuss how we can help bring your vision to life.

Book a Consultation