Agentic AI
Why AI Code Generation Fails in Complex Legacy Systems: A Norwegian Bank's Findings
After months of experimenting with Claude for all coding tasks, SpareBank 1 Utvikling concluded that AI excels at analysis but struggles with the tacit context needed in brownfield codebases—finding that collective programming and human ownership of domain logic remain essential.
InfoQ
SpareBank 1 Utvikling, a software company serving 1.2 million customers across Norway's banking sector, recently completed a four-month experiment deploying Claude for all development tasks. The results revealed a critical gap: while generative AI shines at analysis and scaffolding, it consistently falters in complex, legacy environments where human judgment and domain expertise are non-negotiable.
The Promise and the Fatigue#
The Norwegian team—serving roughly a quarter of Norway's population through mission-critical banking APIs that handle 100 million requests daily—entered the experiment with high hopes. Yet what emerged was what developers described as "fatigue." The workflow inverted their core strength: instead of rapid feedback cycles (deploying multiple times per hour via test-driven development), they found themselves waiting 10–15 minutes for Claude to generate and plan code, then reading through voluminous outputs for validation.
The constant waiting contradicted their existing ethos as "feedback junkies" who prize velocity and immediate validation.
Why AI-Generated Code Doesn't Fit the Domain#
The team observed a pattern: Claude's code output was technically sound in isolation but lacked the tacit context that made it fit seamlessly into their system. After abandoning the experiment in May and returning to traditional TDD with humans as primary architects, they identified why.
Domain ownership matters. Their systems emphasize domain-driven design—keeping the problem space (how banking operations work) clean and coherent across the codebase. When an agent produces code at scale, developers become passive consumers rather than active stakeholders. That complacency undermines the very understanding that prevents errors in systems processing billions of transactions.
Brownfield inheritance requires judgment calls. Legacy codebases are not clean slates. They carry architectural decisions, performance constraints, and organizational history. AI can offer suggestions, but it cannot arbitrate between competing design concerns or know why a particular pattern was chosen years ago.
A New Role for Generative AI#
The team has recast Claude's purpose: not as coder, but as consultant and analyst. The tool excels at tasks like telemetry visualization, documentation drafting, and project kickstarting—roles where its output is reviewed and refined rather than blindly deployed.

