Code Quality
Code that is readable, obvious, correct beyond its tests and fit for its system's real constraints — as distinct from merely compiling and passing.
Also known as: kodekvalitet (code quality), kodekvalitet, code quality, robust code, quality, surface correctness vs. systemic correctness, obvious code, standard dialect
How authors use it
Oldest first (extraction date when no publication date is known).
| Author | Their term | Their meaning |
|---|---|---|
| Cognitive Surrender AddyOsmani.com · 2025-01-01 | surface correctness vs. systemic correctness | Surface correctness: code compiles, passes linter, runs. Systemic correctness: code is actually right for the system's invariants, edge cases, and architectural constraints. |
| Eight years of wanting, three months of building with AI Lalit Maganti · 2025-03-01 | obvious code | Code where the specification can be fully expressed as 'write a function with this behaviour and parameters' -- implementation that has a locally checkable right answer. |
| Eight years of wanting, three months of building with AI Lalit Maganti · 2025-03-01 | standard dialect | The conventional, idiomatic way of writing code in a given language -- predictable, readable, unsurprising. AI defaults to this. |
| 13) Tobias K. Torrissen om kodekvalitet, konferanser og AI Truls Jørgensen og Audun Fauchald Strand — Heis Podcast · 2026-03-16 | kodekvalitet (code quality) | Not classical metrics (cyclomatic complexity, coupling, method length) but: obviousness over cleverness, readability, deletability, fitness-for-purpose for the system's actual mode (long-lived regulated software vs. throwaway). Quality is defined by whether the team — '70 forvaltere' of varying ambition and life-balance — can collectively own and evolve the code over 30 years. |
| Elizabeth Ayer on Mastodon — "The fact that we are *not* seeing wildly improving software all around us tells us everything we need to know" Elizabeth Ayer · 2026-04-10 | quality | The degree to which software meets real user needs reliably, usably, and durably — not merely 'works' or 'has features' |
| A model that produces code which compiles and passes the tests it was given is not the same as a model that produces robust code Gary Marcus · 2026-05-09 | robust code | Code that handles edge cases, maintains correctness under varied conditions, and is reliable beyond the specific test suite it was evaluated against |
| Does code quality still matter? Mark Seemann · 2026-07-23 | code quality | An intrinsic, structural property of a code base — how it is structured, how readable it is, how easy it is to change — explicitly distinguished from 'software quality' and explicitly reducible, as currently practiced, to the constraints of human cognition |
| Addy Osmani's Post Addy Osmani · 2026-08-01 | quality | An itemized, checkable bundle: correctness, maintainability, security, performance ("etc.") — implicitly reduced to properties a deterministic check could plausibly verify. |
| Own the Outer Loop Addy Osmani · 2026-09-09 | Quality | (Capitalized, technical use) The full set of checks installed before a system is let loose; Quality's job is to produce evidence, not to make the ship/block decision itself. |
Documents (39)
- Case Study: Refactoring at Scale with Agents codescene.com · 2026-09-24 source ↗ Reader 🖥️
Large-scale legacy refactoring, once economically prohibitive, becomes tractable when a coding agent is paired with a deterministic code-quality feedback loop (CodeScene's Code Health metric) and automated correctness verification — demonstrated by uplifting a 300,000-line C codebase from Code Health 5.6 to a perfect 10.0 in three weeks for roughly $4,000 in tokens, work the author estimates would have taken 12-18 months of expert developer time before AI. - Presentation: Accelerating Performance by Incrementally Integrating Rust Into Existing Codebase Lily Mara · 2026-09-10 source ↗ Reader 🖥️
Rewriting an existing system for performance is safer and more tractable at the individual-function level — via a C FFI boundary connecting a fast language (Rust) to the existing slow one (Python, via PyO3) — than at the whole-system or even microservice level, because the smaller unit of change lets teams keep the old implementation, tests, and process contracts intact while swapping only the internals that are actually the aggregate cost driver. - Own the Outer Loop Addy Osmani · 2026-09-09 source ↗ Reader 🖥️
Because agents supply capability but cannot inherit consequence, engineers must own the 'outer loop' of agentic systems — the boundary where Quality (checks/evidence), Verdict (the ship/block decision), and Answerability (the guarantee of being able to explain why) live — which means personal, attributable accountability, not code-writing skill, is what becomes scarce and valuable as harnesses, loops, fleets, and software factories absorb the inner work. - Andrew Kelley Interview: Why He Built Zig, Banned AI Contributions, and Moved Zig off GitHub Bruno Couriol · 2026-09 Reader 🖥️
Because AI-generated open-source contributions are reliably low-quality and net-negative once maintainer review time is counted, and because code review is really an investment in cultivating future human core contributors rather than a pure quality filter, healthy open-source governance requires categorically banning AI-assisted contributions and preferring infrastructure (Codeberg over GitHub) whose institutional incentives favor long-term stability over corporate growth pressure. - Addy Osmani's Post Addy Osmani · 2026-08-01 source ↗ Reader 🖥️
Because agents can now generate more code than people can read, software quality control must move from human inspection of the code itself into deterministic constraints (tests, checks, metrics) engineered into the harness and environment around the agent. - AI-Assisted Software Development: Team Profiles and Capabilities for Putting Research into Action Ben Linders · 2026-07-30 source ↗ Reader 🖥️
DORA's 2025 research reframes AI adoption in software development as an organizational-system problem rather than a tooling problem: AI amplifies whatever team dynamics already exist, and the return on AI investment comes from developing identifiable, data-derived capabilities (from a clear AI stance to quality internal platforms) matched to your team's actual profile, not from adopting the technology itself. - The Economic Benefit of Refactoring Giles Edwards-Alexander (published on martinfowler.com, byline Martin Fowler) · 2026-07-30 source ↗ Reader 🖥️
Refactoring an agentic codebase according to a strict, correctness-preserving discipline can pay a measurable economic dividend — in this experiment, an 83% reduction in the input-token cost of an identical representative future change — because it lets an AI agent read a smaller, more targeted slice of the code to make the same change, even though the total code volume barely shrinks. - Remix 3 Beta Preview Ditches React for a Web-Standards Full-Stack Framework Daniel Curtis · 2026-07-28 source ↗ Reader 🖥️
Remix 3's beta preview is a ground-up architectural break from Remix 2 — dropping the React runtime for a forked, imperative Preact, rebuilding routing on raw Fetch/Response objects, and introducing server-driven 'frames' and a bundler-less 'unbundling' model — a deliberate bet that web-standards conformance beats framework abstraction, one so disruptive that it forces every existing Remix app into a full rewrite and has split developer commentary between praise for its explicit simplicity and skepticism toward a team already known for reinventing itself. - Does code quality still matter? Mark Seemann · 2026-07-23 source ↗ Reader 🖥️
Because code quality as currently understood is entirely reducible to the constraints of human cognition, Seemann argues that a hypothetical future in which LLMs alone write, read, and maintain code — in machine-optimized languages rather than human ones — could render today's code-quality concepts meaningless, yet some structurally analogous form of technical debt would likely still emerge from LLMs' own constraints, and only the LLMs' own accumulated experience (not humanity's software-engineering literature, which is inescapably about human cognition) could diagnose and correct it. - mattpocock/skills v1.1: does /wayfinder beat grill-with-docs? Matt Pocock (AI Hero) · 2026-07-08 source ↗ Reader 🖥️
Pocock announces that v1.1 of his Claude Code skills repo now composes a complete agentic coding lifecycle (Grill -> Spec -> Tickets -> Implement -> Code Review), whose headline addition, /wayfinder, decomposes a plan too big for one session into agent-sized chunks mapped as GitHub issues with blocking edges so the work can be parallelized. - New Skills! v1.1 brings /wayfinder, /research, /implement, /to-spec, /to-tickets Matt Pocock · 2026-07-08 source ↗ Reader 🖥️
Agent-assisted software work is best handled not as ad-hoc prompting but as an explicit, skill-mediated development lifecycle — interactively grill the human into a spec, split the spec into tickets each scoped to a single agent session, implement, then code-review for refactoring smells — fronted by a dedicated planning phase (Wayfinder) that externalizes large, foggy plans onto the shared issue tracker so they survive beyond any one context window, with research, prototyping and TDD as first-class supporting stages. - Code maintainability plummets in the AI coding era Bill Doerrfeld · 2026-07-07 source ↗ Reader 🖥️
New longitudinal telemetry (GitClear/GitKraken, 623M commits, 2023-2026) shows that since the AI-coding era began, software maintainability has degraded across eight code-quality metrics -- duplication and error-masking are up while code reuse and legacy refactoring have collapsed -- trading short-term generation speed for compounding technical debt. - Addy Osmani's Post (Agent Skills 0.6.3 release) Addy Osmani · 2026-07-07 source ↗ Reader 🖥️
Addy Osmani's 0.6.3 release of Agent Skills deepens the code-review skill specifically, on the premise that review -- not planning or generation -- is now the bottleneck limiting how much autonomy a coding agent can safely be granted, so the release invests in structural code-review depth (a 'reduce, don't relocate' lens, a Structural Remedies catalog, a file-size gate, severity-ranked findings) and adds a project-wide Definition of Done and an observability checklist, rather than expanding what agents are allowed to do unsupervised. - Software Design in the Agentic Age: Place Your Bets Mathias Verraes · 2026-07-07 source ↗ Reader 🖥️
In the agentic age, code-level quality becomes automatable but high-level software design and rigorous (ideally executable) specifications remain decisive human-led work, so under deep uncertainty about AI's payoffs and externalities teams should bet on design rigour, executable specifications, and the ability to revert from agent generation back to human engineering. - Fragments: July 6 Martin Fowler · 2026-07-06 source ↗ Reader 🖥️
Agentic software development has crossed from aspiration into established practice — the debate is no longer whether it changes software engineering but how — and the central live question is whether classic design and architecture fundamentals still matter, with Fowler's emerging answer being that they do, both because agents use the same constructs humans do and because good design hedges against escalating token costs and the risk of losing affordable access to AI. - Why did Martin Fowler invite 60 engineers to a ski resort? Ivett Ördög · 2026-07-05 source ↗ Reader 🖥️
The turn to AI-built software has reopened rather than resolved the foundational questions of the craft — should humans still read code, how do we know it works, does code quality still matter, and how do we manage newly-empowered citizen developers — and the author's connective throughline is an optimistic one: AI democratizes building while the disciplines that make code good for humans remain exactly the ones that make it good for AI. - Software Design in the Agentic Age: Placing Your Bets aardling.eu · 2026-07-03 Reader 🖥️
Even though no one yet has evidence that classic code-design and domain-modeling discipline is necessary for agentic development, the author bets on maintaining it anyway — high test coverage, sound domain models and Ubiquitous Language, disciplined Bounded Contexts, and code quality — because doing so is the dominant strategy under uncertainty (cheap to unwind if unnecessary, expensive to retrofit if not) and because it preserves the option to revert an organization from agentic code generation back to human engineering if AI's economics or reliability falter. - You can't unit test for taste Karl Tryggvason · 2026-06-22 source ↗ Reader 🖥️
In software you can assert correctness with red/green tests, but taste — judging what output is good, relevant and well-proportioned where there is no ground truth — cannot be unit-tested, so it stays an irreducibly human, iterative judgment even when AI does the production work. - Using AI to write better code more slowly Nolan Lawson (Read the Tea Leaves) · 2026-05-25 source ↗ Reader 🖥️
LLMs are flexible enough to produce either fast, unvetted slop or slower, carefully reviewed and understood code, and deliberately choosing the latter — running multiple different models to hunt for bugs, personally validating and triaging what they find, and refusing to ship a PR you don't fully understand — is a better way to use AI for programming, even without a velocity payoff. - Bliki: Vibe Coding Martin Fowler · 2026-05-21 source ↗ Reader 🖥️
Vibe coding — building software by prompting an LLM without ever looking at the generated code — is a distinct practice from agentic programming, useful only for disposable software, because forgetting the code exists produces serious risks in security, maintainability, and correctness. - Three more static code analysis sensors Birgitta Böckeler (published on martinfowler.com) · 2026-05-20 source ↗ Reader 🖥️
For maintainability concerns that cross file and module boundaries, computational static-analysis sensors (dependency rules, coupling metrics) can usefully enforce a few structural invariants but cannot judge what coupling is appropriate; the most productive sensor is an inferential, prompt-driven AI modularity review that reads the code itself, with the deterministic tools relegated to enforcement of known rules and to triage of review attention. - Maintainability sensors for coding agents Birgitta Böckeler · 2026-05-19 source ↗ Reader 🖥️
Static analysis tools like ESLint, now cheap to customize because AI can write the rules and messages, are an immediately high-value sensor for keeping an AI coding agent's output maintainable — provided their warnings are rewritten as explicit self-correction guidance for the agent rather than left as generic human-facing messages — but this same newfound ease risks producing feedback overload and a false sense of quality assurance. - A model that produces code which compiles and passes the tests it was given is not the same as a model that produces robust code Gary Marcus · 2026-05-09 Reader 🖥️
Code that compiles and passes its given tests is not the same as robust code; conflating the two inflates AI-coding claims, and progress requires acknowledging this gap rather than celebrating throughput. - Genie Tarpit Kent Beck from Software Design: Tidy First? · 2026-04-29 source ↗ Reader 🖥️
AI code generators ('genies') naturally produce code that is both less functional and less flexible than what even mediocre human teams produce, and nobody yet knows how to fix this. - It Ain't Broke: Why Software Fundamentals Matter More Than Ever Matt Pocock (AI Hero conference talk, AI Engineer) · 2026-04-23 Reader 🖥️
Because AI amplifies the cost of bad code through software entropy, investing in software design fundamentals — shared understanding, ubiquitous language, deep modules, TDD, and deliberate architecture — matters more in the AI era than it ever did before. - Coding Models Are Doing Too Much nrehiew.github.io · 2026-04-20 source ↗ Reader 🖥️
Current coding models systematically rewrite code beyond the minimal fix required — a widespread, measurable failure mode called over-editing — and reinforcement learning can train models to produce faithful minimal edits without degrading their general coding ability. - Elizabeth Ayer on Mastodon — "The fact that we are *not* seeing wildly improving software all around us tells us everything we need to know" Elizabeth Ayer · 2026-04-10 Reader 🖥️
The absence of visible improvement in software quality and innovation, despite the rise of AI code generation tools, demonstrates that code creation was never the bottleneck for delivering software value. - Claude Code Source Leak Megathread sixbillionthsheep (Reddit) · 2026-04-01 source ↗ Reader 🖥️
The Claude Code source leak revealed that the competitive advantage in AI coding tools lies not in model capability but in the orchestration layer -- memory, multi-agent coordination, web search pipelines, session management, and autonomous background agents -- and the community's response exposed collective assumptions about code quality, IP ownership of AI-generated code, and the governance gap in agentic systems. - 13) Tobias K. Torrissen om kodekvalitet, konferanser og AI Truls Jørgensen og Audun Fauchald Strand — Heis Podcast · 2026-03-16 source ↗ Reader 🖥️
In the age of LLM-generated code, the durable value of an engineering leader is not in writing code but in cultivating the engineering practices, explicit design discipline, and craft community that determine whether a long-lived system can be understood, maintained, and adapted — and code quality, understood as 'obvious over clever,' matters more in this era, not less. - AI doesn't create great developers, it amplifies them Bill Doerrfeld · 2026-01-20 source ↗ Reader 🖥️
The apparent productivity gap between heavy and light AI users is mostly a selection effect, not a treatment effect of AI itself — the developers getting the most out of AI coding tools were already the most productive developers the year before, so AI amplifies pre-existing talent rather than creating new talent, and leaders should stop using general AI adoption as a performance proxy. - When AI Writes Almost All Code, What Happens To Software Engineering? Gergely Orosz · 2026-01-06 Reader 🖥️
As AI crosses a real capability threshold and starts writing the large majority of code for many developers and teams, the part of software engineering that was always about judgment, verification, architecture, and accountability — not typing syntax — becomes more valuable, not less, while the raw ability to write code in a given language stops being a differentiator at all. - Why Rust is different, with Alice Ryhl The Pragmatic Engineer (Gergely Orosz, host) · 2026 Reader 🖥️
Rust earns its growing adoption not by adding features but by systematically engineering away whole classes of programmer mistakes — null, uninitialized memory, unhandled errors, stale documentation, memory-unsafety, non-exhaustive matches — through a type system, ownership/borrow checker, and a governance and tooling culture (RFCs, editions, Cargo, doc-tests) that treats reliability as a composite property rather than a single feature. - Eight years of wanting, three months of building with AI Lalit Maganti · 2025-03-01 source ↗ Reader 🖥️
AI coding agents are a genuine force multiplier for implementation and last-mile polish, and can unlock projects that would otherwise die from the intersection of difficulty and tedium, but they are a dangerous substitute for design, architecture, and taste -- the developer must retain ownership of the soul of the software or risk building a codebase they cannot reason about. - Cognitive Surrender AddyOsmani.com · 2025-01-01 source ↗ Reader 🖥️
When software engineers stop forming independent views of AI-generated outputs — crossing from cognitive offloading to cognitive surrender — they accumulate comprehension debt that compounds invisibly until a crisis reveals that no one on the team can reconstruct the system from first principles; the antidote is not refusing AI tools but cultivating a posture of mutual amplification: thinking *with* the model rather than delegating thinking *to* it. - Study finds AI assistants help developers produce code that's more likely to be buggy Thomas Claburn · 2022-12-13 Reader 🖥️
A controlled Stanford user study found that developers given access to an AI coding assistant (OpenAI's codex-davinci-002, as used in GitHub Copilot) produced measurably less secure code than a control group working without it — and, more strikingly, were more likely to believe their own AI-assisted code was secure than the control group was about theirs — indicating AI assistance can degrade both code security and developers' self-assessment of that security simultaneously. - Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases Adam Tornhill, Markus Borg · 2022-03-08 Reader 🖥️
Code quality, measured via CodeScene's Code Health metric, has a quantifiable and substantial business impact — low-quality code produces 15 times more reported defects, takes 124% longer to resolve on average, and is up to 9 times less predictable to resolve than high-quality code — so code quality must be treated as a business concern tracked with the same rigor as financial KPIs, not dismissed as a purely technical aesthetic. - What good software looks like at REA Alison Rosewarne · 2018-06-12 Reader 🖥️
What makes software 'good' at REA is not a single abstract ideal but three concrete, criteria-based lenses — dev (changeability), ops (operability), and arch (bounded responsibility) — that the teams who own each system rate themselves against on a recurring basis, so architectural quality becomes an organizationally-supported habit rather than a one-time design decision. - Technical Debt Quadrant Martin Fowler · 2009-10-14 source ↗ Reader 🖥️
Whether a design flaw counts as 'technical debt' is the wrong question; the useful question is whether the debt metaphor helps you think about and communicate design trade-offs, and answering it well requires distinguishing reckless from prudent debt and deliberate from inadvertent debt — including a fourth, inevitable category (prudent-inadvertent debt) that even excellent teams cannot avoid. - CannotMeasureProductivity Martin Fowler · 2003-08-29 Reader 🖥️
Software productivity cannot be measured because its true output — delivered business value — cannot be measured, so every popular proxy (lines of code, function points, feature counts, project 'success' rates) either measures the wrong thing or measures it too late to be useful.
Propositions touching this concept (91)
By publication month, oldest first (extraction month when no publication date is known).
2018-03
- explicitProgrammers understand code through mental schemas built over time; heavy parallel/congested development invalidates those schemas faster than any individual can rebuild them, and this — not code quality per se — is the actual mechanism behind 'this code is hard to understand' complaints that get misdiagnosed as a purely technical problem.
2018-06
- explicitGood software cannot be captured by a single universal quality; REA uses three distinct lenses — dev, ops, arch — because different stakeholders need different guarantees (changeability, operability, well-bounded responsibility) from a system.
- explicitQuality and security are best treated as cross-cutting concerns folded into the three lenses' criteria rather than standalone categories, because isolating them as separate lenses would fragment accountability for properties that are inherently pervasive.
- explicitA low barrier to making changes is valuable only if it doesn't compromise quality — changeability and quality are companions to be jointly optimized, not traded off against each other.
- explicitArchitectural quality requires a specific accountable owner (the 'application custodian') with real authority over architecture, technical decisions and quality; without an active custodian, criteria go unenforced.
- implicitSoftware quality decays without active maintenance, which is why REA reviews systems on a recurring (quarterly) cadence rather than certifying them once.
- implicitThe three lenses are largely independent axes of quality — a system can score well on one and poorly on another (e.g. well-architected but with an unclear testing strategy) — which the tiered per-lens rating structure assumes without ever stating it.
2020-04
- explicitPair programming improves code quality and reduces bugs because two programmers approach the same problem from different angles and skill sets, giving each other continuous real-time review.
2022-03
- explicitLow-quality code (Alert Code Health category) contains on average 15 times more reported Jira defects than high-quality code (Healthy category).
- explicitResolving an issue in low-quality (Alert) code takes on average 124% longer than resolving a comparable issue in high-quality (Healthy) code; even moderate-quality (Warning) code takes 78% longer than Healthy code.
- explicitLow-quality (Alert) code is up to 9 times less predictable to resolve than high-quality code, measured as the maximum Time-in-Development for an issue; Warning code already shows more than double the maximum Time-in-Development of Healthy code.
- explicitOrganizations systematically trade code quality for time-to-market and new features because of hyperbolic discounting, and because code quality's business impact has historically lacked a finance-comparable, quantifiable KPI.
- explicitThe lack of standard KPIs for code quality explains why, in a study of 15 large organizations, business managers often would not grant the budget or priority needed for refactoring even when developers flagged technical debt.
- implicitDecision-makers will change code-quality-related budgeting and prioritization behavior once given quantified, finance-comparable numbers for the cost of low quality.
- implicitA developer's degree of ownership/experience with a specific low-quality file plausibly reduces the variance and duration of resolving issues in that file, though this is flagged as a hypothesis for future work rather than a finding of this study.
2023-03
- explicitThe most-cited benefit of using Copilot is useful code generation (49.0% of benefit mentions), followed by faster development (16.3%) and better code quality (10.2%).
- explicitCopilot's benefit and limitation categories are near mirror images of each other (useful code generation vs. limitation to code generation; better code quality vs. poor quality of generated code; better user experience vs. unfriendly user experience), which is the evidentiary basis for the paper's 'double-edged sword' conclusion.
- explicitPractitioners cite code privacy as a distinct concern from code quality — worrying that Copilot may use their private-repository code without permission (7.5% of limitation mentions).
2024-10
- explicitdevelopedAI adoption is now broad and fairly uniform across industries (75.9% of respondents rely on it for at least one daily task), and it measurably improves individual-level outcomes (flow, productivity, job satisfaction) and process measures (code quality, internal documentation quality, code review speed, approval speed) and team/organizational performance.
2025-03
- explicitUsing AI coding tools has addictive properties similar to slot machines, with sunk cost fallacy and tiredness feedback loops degrading output quality.
2025-10
- explicitLines of code becomes a useful signal again -- not as a productivity metric, but as an input -- once you can separate which code came from AI versus people, enabling downstream questions like code survivability rate, code quality, and whether AI-generated code is feeding back into retraining/fine-tuning loops in ways that introduce bias.
2025-12
- explicitGood system prompts alone are not enough to ensure AI-generated code quality, because AI does not follow instructions reliably enough.
2026-01
- explicitcontestedThe study found no significant difference in downstream maintenance cost, objective code quality, or test coverage between AI-assisted and non-AI-assisted code — AI-assisted code was neither harder nor easier for a different developer to pick up and evolve later.
- explicitEarly data already shows AI-era code is lower quality in production: the Cortex 2026 Benchmark Report (50+ engineering leaders surveyed) found change failure rates (the percentage of deployments causing outages or rollbacks) increased 30%.
2026-03
- explicitCode quality matters more in the AI era, not less.
- explicitThe right yardstick for code quality is whether ~70 long-tenured maintainers — across a 30-year average lifespan for state systems — can collectively understand and evolve the code; 'obvious' beats 'clever'.
- explicitClassical code-quality metrics (cyclomatic complexity, method/class length, coupling, cohesion) are largely irrelevant to whether a code-quality review surfaces what matters; they are not where it skorter.
- explicitThere are three current camps of developers regarding AI: (1) those who refuse to engage, (2) those who harness LLMs into quality-engineering workflows, (3) those who run large-scale parallel agentic work without engaging with code as an abstraction.
- explicitThe value of an external code-quality review is not the verdict but the structured conversation it forces among developers and leadership; the team already knows the problems.
- explicitdevelopedQuality bars should differ by software 'mode' — high-stakes, regulated, long-lived public systems (sykepenger, straffesak) warrant rigorous engineering; throwaway personal apps warrant near-zero ceremony.
2026-04
- explicitReviewing every diff line before approval is necessary to maintain code quality when using Claude Code.
- explicitProduction code quality at well-funded companies is typically messy, and user delight matters more than code aesthetics.
- explicitThe code quality defense ('all production code is messy') is a false dichotomy; maintainability and user satisfaction are not mutually exclusive.
- explicitOver-editing makes code review dramatically harder and risks quiet degradation of codebase quality
- explicitSoftware quality is actually declining.
- explicitdevelopedCode creation is not the bottleneck for software quality or innovation.
- implicitAI code generation tools may be actively contributing to quality decline by making it easier to produce code without addressing the actual constraints.
- explicitcorroboratedThe correct organizational response is to raise code quality at the point of AI authoring (richer context, codebase standards, guardrails, test-based quality gates), not to add more downstream review capacity, because review capacity is already the saturated bottleneck.
2026-05
- explicitInternal-quality (maintainability) problems affect AI coding agents in similar ways to how they affect human developers — an agent in a tangled codebase may look in the wrong place, create inconsistencies by missing a duplicate, or be forced to load more context than a task should require.
- explicitStatic analysis cannot catch many of the more semantic aspects of code quality, and its ease of use with agents risks producing a false sense of security and an illusion of quality.
- implicit⚡ disputed & corroboratedReading code is the mechanism that produces accountability for its quality, security, and correctness.
- explicitCoupling metrics' best use is triage of human (or agent) attention during code review — surfacing changes whose blast radius is large — not autonomous quality judgement.
- explicitdevelopedIt remains an open question whether internal code quality still matters in the age of agentic programming, or whether LLM capabilities will eventually render it irrelevant.
- explicitcorroboratedThe downside risk of unmitigated AI-coding is not just lower code quality — it is alienated, dulled, burnt-out, depressed developers, some of whom will exit the profession entirely.
- explicitLLMs are flexible enough to be used just as effectively to write high-quality code slowly as to write low-quality code fast — 'slop' is a choice of use, not an inherent property of the tool.
- empirical claimA model that produces code which compiles and passes tests is not the same as a model that produces robust code.
2026-06
- explicitAnthropic's internal skills cluster into nine categories (library/API reference, product verification, data fetching/analysis, business process automation, code scaffolding/templates, code quality/review, CI/CD and deployment, runbooks, infrastructure operations); skills that straddle several categories instead of fitting cleanly into one confuse the agent.
- explicitVibe-coding evaluation breaks into seven dimensions — intent satisfaction, functional correctness, visual/behavioural correctness, cost and efficiency, code quality/convention matching, trajectory quality, and self-repair behaviour — with safety and responsible AI cutting across all seven rather than being a separate gate.
- explicitPairing combines two distinct cognitive modes (tactical/driver and strategic/navigator) that one person cannot easily hold simultaneously, and this combination raises code quality in a way solo work plus async review cannot replicate.
- implicitCode quality is primarily produced at the moment of writing, not at the moment of review.
- explicitLarge agent contexts degrade output quality; condensing prior results into short per-milestone context yields faster, better responses.
- implicitcontestedCorrectness is not quality: a pipeline whose math tallies can still be tasteless (a route collapsing into a mere population map), so passing objective checks gives false confidence about the result's quality.
- implicitcorroboratedTaste is exercised largely as restraint and proportion — what to filter out, which feature codes to include, spreading points evenly rather than showing every town — so quality is as much about what you leave out as what you include.
- implicitcorroboratedThe untestable-taste problem looks confined to 'messy' data only because code has a ground truth; wherever AI generates output in domains without one — or where design quality itself has no red/green test — the same unverifiability applies. He stops short of turning this inference back onto AI-generated code.
2026-07
- explicitSuperpowers bets on autonomy and heavy upfront reasoning — Socratic brainstorming before code, fresh subagents that execute and undergo two-stage review (spec compliance, then code quality), and git-worktree isolation for parallel work — with TDD discipline strict enough that it will delete prematurely written code to hold the RED→GREEN→REFACTOR line.
- explicitcontestedAcross 623 million real-world code changes from 2023-2026, AI-assisted commits now make up roughly one quarter of all commits, and this era coincides with rising technical debt across eight maintainability-related code-quality metrics.
- explicitAs long as humans use LLMs as a tool to generate code they are ultimately responsible for, the quality of that code still matters, because humans must review it, work with it, and fix its bugs.
- explicitCode quality is not the same as software quality: code quality is an intrinsic property of a code base — how it is structured, how readable it is, how easy it is to change.
- explicitUntil now, all questions of code quality have ultimately been reducible to questions about human cognition, because humans wrote and edited the code.
- implicitIf today's code quality is entirely reducible to human cognitive constraints, then the question 'does code quality matter' is really a proxy question for 'will humans remain in the loop,' not a question about code itself.
- explicitestablishedDORA identified seven capabilities — clear and communicated AI stance, healthy data ecosystems, AI-accessible internal data, strong version control practices, working in small batches, user-centric focus, and quality internal platforms — that, combined with AI adoption, drive better outcomes.
- explicitAs AI adoption increased, self-reported individual effectiveness and perceived code quality both increased, with individual effectiveness showing the largest relative increase of any factor DORA measured.
- explicitestablishedSoftware delivery instability (deployments rolled back, hotfixes required to correct deployment-introduced errors) also increased as AI adoption increased, even as perceived code quality and individual effectiveness improved.
- explicitThis co-occurrence — perceived quality up, delivery instability also up — may signal misaligned incentives or lack of visibility into the production impact of changes, such as engineers optimizing for shipping features without ownership of how those features land in production.
- explicitQuality internal platforms extract value from AI investment in two ways: making a capability accessible to the whole organization (driving adoption), and shifting complexity down into the platform so it is hidden from and doesn't have to be reasoned about by individual builders (e.g. centrally enforcing a security policy).
- explicitdevelopedInternal design quality reduces to ease of change, and whether that lesson carries over to agents is an open empirical question.
- explicitcorroboratedToken cost can serve as a proxy metric for architectural quality: if the same change requires fewer tokens, the architecture is better.
- explicitThe agentic age is the first time in history that the computer itself 'cares about' code quality.
- explicitdeveloped/code-review now uses Martin Fowler's refactoring smells to catch quality issues.
- explicitQuality gating for agent-produced work should extend beyond the diff itself into operational readiness (observability: on-call questions, RED/USE metrics, symptom-based alerting) and project-wide completion criteria (a Definition of Done), not stop at code-review comments.
- explicitLow-level code-quality concerns (naming, duplication, dead code, modularity, coupling, cohesion) remain important in agentic development because LLMs share human-like readability limitations, because quality's payoff is long-term rather than short-project-scale, because complexity inflates both the LLM's context window and token cost, because humans must debug unfamiliar agent-written code the LLM itself can't fix, and — most consequentially — because LLMs mimic and reinforce the existing style and patterns of the codebase they generate into, entrenching rather than correcting bad code.
- explicitA four-stage agentic pipeline — generate and minimally verify then atomically commit; run traditional deterministic static analysis at its strictest settings; have an agent assess the validity and worth of each flagged smell; have an agent atomically refactor and commit one smell at a time — is reported by retreat participants to work well for achieving code quality, structurally mirrors TDD ('make it work, then make it beautiful'), and depends on high test coverage to ensure refactors change only form, not behavior.
- explicitThe author is unconvinced that code can be safely discarded and regenerated at will from specifications, because regeneration carries its own cost and could increase the cost of re-verifying functional and non-functional requirements (security, performance) on every regeneration; he is also unsure whether low-level code quality matters much beyond its effect on token cost — yet he still bets on high test coverage, sound domain models/Ubiquitous Language/Bounded Contexts and code quality, primarily as a hedge that preserves the option to revert an organization from agentic generation back to human engineering if AI's economics or reliability don't hold up.
- explicitDark-factory pipelines (fully automated generate-verify-deploy with human oversight limited to improving the pipeline) are currently very hard to set up and require highly skilled engineers plus an already-established high-quality engineering culture; organizations that attempt one without that foundation risk high costs or major accidents.
- implicitThe author's bet-placement logic implicitly rests on a maximin/regret-minimization argument: if 'design principles are unnecessary for agents' turns out right, quality infrastructure can be cheaply removed; if 'design still matters' turns out right and an organization skipped it, that organization faces expensive catch-up — so investing in quality dominates on downside protection, even absent long-term evolvability data.
- explicitcorroboratedAs generated code quality improves, production issues fall in relative terms but rise in absolute terms because the volume of production code grows exponentially, leaving humans the most complex issues with the most dramatic outcomes.
- explicitReliably producing high-quality agent-generated code is achieved by splitting the work into stages (generate and verify it works, then strict deterministic static analysis, then agentic triage of each smell, then atomic refactors) under high test coverage, rather than generating high-quality code in one step.
- explicitFully automated dark-factory pipelines are only safe for organisations that already have high test coverage, skilled engineers, and an established high-quality engineering culture; adopting them without these fundamentals risks high costs or major accidents.
- explicitcorroboratedAggregate cost/throughput tracking is insufficient to judge whether AI-driven engineering is worth its cost, so Uber is moving toward granular metrics — 'net code quality ratio' (AI- vs human-authored hotfix frequency) and 'compute efficiency per feature.'
2026-08
- explicitSoftware quality now depends primarily on the constraints set around agents rather than on manually inspecting the code they produce.
- explicitWhen humans manually wrote most code, its quality could be judged by reading the code itself — cleanliness, thoughtfulness, speed, comprehensibility, and test presence.
- explicitAgents can now generate more code than people can read, so once code generation scales beyond human review capacity, quality checks must be located somewhere other than manual code reading.
- explicitQuality control relocates into the harness, environment, and operating system surrounding the agent, rather than residing in the code or in code review.
- explicitConcrete quality mechanisms are deterministic checks — unit tests, property tests, acceptance tests, mutation testing, and quality metrics — that decide what the agent-driven system is allowed to do.
- explicitcontestedAdding a second agent as an independent reviewer -- examining the specification, giving feedback, and running additional checks including adversarial probes -- can further reduce human intervention and raise code quality beyond what a single looping agent achieves.
2026-09
- explicitA larger, more capable model (Claude Opus) substantially outperformed smaller models (Sonnet, 'Terra'; also compared against Codex with 'Sol') on this task specifically because of its ability to capture and document discovered refactoring patterns into the emerging playbook, not just raw code-generation quality — smaller models plateaued at a local optimum on individual files and could not progress on remaining code smells.
- explicitAI-assisted contributions to Zig are invariably low-quality and have negative value once maintainer review time is counted, because after review it typically becomes clear the contributor has no real understanding of the change.
- implicitA blanket, categorical AI-contribution ban is treated by Kelley as a legitimate governance choice in itself, not merely a proxy for a code-quality filter — since even a detectable, disguised AI contribution is rejected on the grounds of the contributor relationship, not solely on code correctness.
- explicitQuality (the checks installed before release) produces evidence, and the Verdict — the personally-owned ship/block/redirect/guardrail/reject decision — is derived from that evidence and belongs to the named person whose team's work ships under their name.
- explicitcorroboratedQuality means deliberately not granting agents as much autonomy as they can technically exercise, but only as much as leaves enough backpressure (via ordinary engineering signals — types, tests, hooks, sandbox limits, audit logs, monitors) to stop, regulate, and check them.
- explicitEven when agents fully satisfy the stated task, developers continue to find implementations 'lazy, sloppy, repetitive, and overly defensive... even with solid guardrails and tests,' indicating that functional task completion and code quality are tracked as separate, independent supervisory criteria rather than one implying the other.
Tensions
Is code a durable artifact humans must keep reading, or an ephemeral byproduct regenerated from a spec?
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- We've Stopped Arguing About Whether AI Changes Software (Greg Herlein): Code is potentially ephemeral — a disposable byproduct the agent regenerates from the spec on demand; the spec, where a developer's taste now lives, is the thing that matters.
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): Code must remain human-legible and maintained; agents behave better as 'engineers' moulding a persistent codebase than as 'compilers' regenerating from scratch.
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Skeptical of throwaway regeneration; unconvinced code can be discarded and regenerated at will — bets that code largely stays.
Assessment: The retreat's own 'largest divide' (Ördög). It is unresolved inside the room and inside the individual essays: Herlein concedes the deterministic 'code is the better spec' counter is 'hard to wave off', and Ördög reports being ironically pulled toward the dark-factory camp by her own good-code practices. The crux is whether a fuzzy prose spec can ever be the durable source of truth when the stated quality bar is verifiability — a tension none of them resolves.
How much of the build pipeline should run with no human reading the code (the 'dark factory')?
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- Looking back at the Future of Software Engineering unconference (Bartosz Ocytko): Toward a largely self-evolving software factory where a feature request is 'magically built' into the system; humans build and operate the factory and intervene only at explicit hand-off points.
- AI Is Changing Software Engineering. The Fundamentals Still Matter. (Abby Bangser): Deliberately bounded autonomy — keep humans in the loop.
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Dark factories are only safe for organisations that already have high test coverage, skilled engineers, and a high-quality engineering culture; most should cover their fundamentals first.
Assessment: Not simple optimism vs pessimism but a disagreement about preconditions and hidden costs. Ocytko's is a projection of where tooling is heading; Bangser and Verraes both supply reasons the projection is unsafe by default — learning-loss and missing prerequisites. Bangser has the stronger argument that the loss is structural (you cannot buy back organisational learning), which even an improving platform does not address.
Reversibility as a hedge vs a one-way commitment to deeper autonomy.
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Build systems that can revert from agent generation back to human engineering.
- Looking back at the Future of Software Engineering unconference (Bartosz Ocytko): Head toward a self-evolving software factory — a progressive, largely one-directional build-out of autonomy and platform capability.
- We've Stopped Arguing About Whether AI Changes Software (Greg Herlein): Commit early and hard, because adoption is a compounding flywheel and the lead becomes a permanent structural moat.
Assessment: Incompatible risk models. Verraes treats deep AI-dependence as the danger to insure against; Herlein treats not-committing as the existential danger. They cannot both be the rational strategy: reversibility trades some upside for exit options, while flywheel-commitment trades exit options for compounding lead. The tie-breaker is empirical (will access/economics deteriorate?) and neither has evidence — Fowler's 'tokenpocalypse' data leans slightly toward Verraes.
Where is the locus of safety for non-engineers / citizen developers building software?
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- Looking back at the Future of Software Engineering unconference (Bartosz Ocytko): In a tightly-constrained self-healing platform — not universal upskilling.
- What Survived Contact (Sam Ruby): In the director's management skill — a non-engineer steering an agent has made a hire, and the requirement is that they can manage by objective.
- AI Is Changing Software Engineering. The Fundamentals Still Matter. (Abby Bangser): In API-first, MCP-accessible tooling that supports rather than restricts the new builders.
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): It is genuinely unsolved — the tension between democratisation and its risks is an open question.
Assessment: Four different answers to the same governance question: the platform (Ocytko), the director's discipline (Ruby), the tooling interface (Bangser), or nobody-knows-yet (Ördög). Ruby and Ocytko are the true opposites — Ruby puts the burden on a human management skill, Ocytko designs the human out by making failure modes disappear in the platform. That both are held by attendees of one retreat is a measure of how unsettled the citizen-developer problem is.
Does low-level code quality matter intrinsically, or only instrumentally (via token economics)?
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Code-level quality is automatable and he is 'unsure it matters much in its own right apart from token cost'; you bet on it via an asymmetric payoff, not intrinsic worth.
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): Code quality matters intrinsically because code good for AI and code good for humans are the same thing.
- Fragments: July 6 (Martin Fowler (Jul 6)): Contested and leaning toward design mattering, but on new grounds — token cost as a proxy for architectural quality.
Assessment: The disagreement is about the grounds of the fundamentals-revival, not just its truth. If quality matters only via token cost (Verraes, and Fowler's proxy), the case for it is contingent on token economics and evaporates if tokens get cheap; if it is intrinsic (Ördög), it survives cheaper tokens. This makes the popular slogan 'quality still matters' quietly unstable — the same conclusion rests on incompatible foundations.
Will the classic fundamentals (especially DDD / domain modelling) actually deliver this time — is the revival evidenced or merely asserted?
from: What did the participants of the Thoughtworks 'Future of Software Engineering' Europe retreat (mid-2026) conclude about how agentic AI is reshaping software engineering?
- Notes from FOSE Europe (Giles Edwards-Alexander): Skeptical: domain modelling kept being proposed, but it is not a new idea and never became the standard before — why would it suddenly work now?
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Evidenced: feeding an agent an explicit domain model first yields better code structure and database performance, and bounded contexts also reduce token cost.
- Jimmy Nilsson's Post — reflections after the Thoughtworks 'Future of Software Development' retreat (Jimmy Nilsson): Asserted: DDD, XP, TOC, TDD, BDD, CD are 'more important than ever' in the agentic age.
Assessment: The single slogan 'fundamentals matter more' spans concrete evidence (Verraes), unargued assertion with admitted bias (Nilsson), and active skepticism (Edwards-Alexander) — from attendees of one retreat. This directly exposes the 'the fundamentals are agreed' assumption below: the cohort's flagship convergence is doing a lot of work with very uneven support underneath it.
Can harness engineering actually solve the AI code quality problem?
from: What is the right approach to building harnesses around AI coding agents, and where are the limits?
- Agent Harness Engineering (Osmani): Yes — harness engineering is the primary solution. A decent model with a great harness beats a great model with a bad harness.
- Harness engineering for coding agent users (Böckeler): Partially — harnesses can solve maintainability and architecture fitness, but the behavioral harness remains fundamentally unsolved.
- Genie Tarpit (Beck): Unknown — genies naturally produce degraded code and nobody knows how to fix this. Harnesses are listed as one possible remedy among several, without endorsement.
Assessment: This is the central divergence in the literature. Osmani is most optimistic, operating from benchmark evidence that harness changes produce dramatic improvements on coding tasks. Böckeler occupies the middle ground, distinguishing solvable from unsolved harness domains. Beck is most skeptical, questioning whether harnesses address the root cause at all. The disagreement is partly empirical (what do the benchmarks actually measure?) and partly about scope (Osmani focuses on task completion; Beck focuses on long-term code value including flexibility). They may not be contradicting each other so much as talking about different time horizons: harnesses help with immediate task success, but the tarpit emerges over accumulated changes.
Will better models make current harness practices obsolete?
from: What is the right approach to building harnesses around AI coding agents, and where are the limits?
- Agent Harness Engineering (Osmani): Harnesses don't shrink, they move — better models create new failure modes at higher capability levels.
- Genie Tarpit (Beck): The Bitter Lesson (scale + compute) is listed as one possible solution — implying better models might eventually solve the problem without harnesses.
- Patterns for Reducing Friction in AI-Assisted Development (Garg): Does not address model improvement — the framework lacks a theory of its own obsolescence.
Assessment: Osmani makes the strongest case for permanence with concrete evidence of scaffolding migration. Beck keeps the door open for the Bitter Lesson hypothesis. The truth likely depends on the type of harness: mechanical safeguards (sandboxes, permission controls) may always be needed, while knowledge-transfer patterns (AGENTS.md, priming docs) may become less necessary as models improve at in-context learning.
Is the model a swappable, commoditized component (so selection is a cost decision), or is model choice load-bearing (so selection is a capability decision)?
from: When working with AI coding agents, how should you select the model, its reasoning/effort level, and its context size for a given task?
- GitHub - musistudio/claude-code-router: Use Claude Code as the foundation for coding infrastructure, allowing you to decide how to interact with the model while enjoying updates from Anthropic. (musistudio): Swap camp: the model is fungible config behind Claude Code's durable harness; route each sub-task to the cheapest capable model across many providers and keep the harness.
- Hugging Face's Clem Delangue: Stop Comparing Engines to Cars (Turing Post (Ksenia Se interviewing Clem Delangue)): Swap camp: open weights are not 'behind' — they only look weaker because harnesses were optimized for proprietary APIs; the gap is a harness artifact.
- The Pulse: a new trend, smart model routing (The Pragmatic Engineer (Gergely Orosz)): Swap camp: 'which model to use' is shifting from a deliberate engineering decision to a commoditized, automatable one; open models cover ~60% of coding work by token spend.
- Coding Models Are Doing Too Much (nrehiew.github.io): Load-bearing camp: model choice materially changes output quality — the spread is enormous on the exact behavior that matters for brown-field editing.
- [MODEL] Claude Code is unusable for complex engineering tasks with the Feb updates #42796 (stellaraccident (via https://github.com/anthropics/)): Load-bearing camp: the specific model and its reasoning allocation are structurally required; degrading the SAME model catastrophically broke a proven workflow.
- Claude Code: Best practices for agentic coding (Anthropic (Claude Code best practices guide)): In the middle / silent: treats 'Claude' as one undifferentiated model and never addresses model selection at all.
Assessment: Both camps are right about different task strata, and the tie is broken by the routing camp's own artifact. Commoditization holds on the bulk/background tier (musistudio and the Pragmatic Engineer are correct that a cheap or open model suffices for a large share of tokens), but model choice is load-bearing exactly on the hard tier — the 'hardest 40%' the routing camp routes AWAY (the Pragmatic Engineer's own gap notes 60%-of-token-spend is not 60%-of-value). nrehiew's 6.5x over-editing spread and stellaraccident's collapse are measured on precisely that hard tier. The clincher the swap camp does not concede: musistudio's OWN per-model transformers (tooluse, enhancetool, reasoning, deepseek, gemini) prove the harness is NOT model-agnostic — every model needs bespoke request/response rewriting just to work behind Claude Code, so the 'any model' artifact self-refutes. Delangue even concedes the frontier gap himself. Verdict: select cheap-and-swappable for bulk, and treat the model as a load-bearing capability decision for the hardest slice — the two positions are not competitors but a partition of the task distribution.
Effort/reasoning: does more thinking make output better, or does more reasoning make it worse (over-engineering / over-editing)?
from: When working with AI coding agents, how should you select the model, its reasoning/effort level, and its context size for a given task?
- [MODEL] Claude Code is unusable for complex engineering tasks with the Feb updates #42796 (stellaraccident (via https://github.com/anthropics/)): More thinking is better and structurally required: reducing thinking depth caused a catastrophic, measurable quality regression.
- Prompting Claude Fable 5 (Claude Platform Docs): More reasoning over-produces: higher effort yields unrequested tidying, refactoring, and over-planning that must be actively suppressed.
- Coding Models Are Doing Too Much (nrehiew.github.io): Reasoning is a double-edged sword: reasoning models over-edit MORE by default, yet respond BEST to explicit constraints and become the most faithful editors.
- Claude Code: Best practices for agentic coding (Anthropic (Claude Code best practices guide)): Middle: scale the thinking budget to difficulty via the think < think hard < ultrathink ladder.
Assessment: This looks like a head-on collision but is really the corpus resolving a category error, so I keep it as a divergence-under-adjudication rather than a live two-camp fight. The two things bundled into one 'effort' dial are separable: reasoning DEPTH (deliberation and research before acting — what stellaraccident measures as the Read:Edit ratio) versus action SCOPE (how much the model rewrites — what nrehiew measures as over-editing). They are separable but DEFAULT-COUPLED: more reasoning, unconstrained, tends to produce more scope. nrehiew is the empirical bridge — constrained reasoning models are the MOST faithful, proving depth and tight scope combine positively when you address them separately. Fable 5 already acts on this, pairing 'reduce effort' with a distinct anti-over-engineering instruction. The actionable verdict: do NOT cut reasoning depth to fix over-editing (that is stellaraccident's exact grievance and it backfires into shallow, edit-first behavior); keep the depth and add an explicit scope constraint. The failure is treating one knob as if it controls both correctness-depth and edit-scope.
Is code a durable artifact to be maintained, or an ephemeral byproduct regenerated from a more durable source (spec/objective)?
from: What is the future of software development in the agentic/AI age?
- We've Stopped Arguing About Whether AI Changes Software (Greg Herlein): Code is (or is becoming) ephemeral — a disposable byproduct the agent regenerates from the spec; the spec is 'the point.'
- Fragments: February 4 (Martin Fowler (Feb 4)): When coding is free, the specification-plus-tests becomes the durable, primary engineering artifact.
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Specifications could replace code as the source of truth, but throwaway regeneration is a bet he is unwilling to make; keep code durable and revertible.
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): Code endures because the winning agents behave like engineers moulding a maintained codebase, not compilers regenerating from scratch.
- What Survived Contact (Sam Ruby): The durability question is a category error — what endures is neither the code nor the prose spec but the objective and its oracle.
Assessment: The most-cited open question of the corpus, and genuinely unresolved (Herlein: 'no consensus here. None.'). The 'code is the better spec' counter is strong — code is unambiguous, executable, deterministic, whereas a prose spec is reinterpreted each run, which sits in tension with verifiability being the quality bar. Ruby's move is the most defensible: it dissolves the code-vs-spec fight by locating durability in the evaluation rather than any representation. Verraes and Ördög expose the load-bearing empirical unknown — nobody has data on regenerate-vs-patch cost or on long-term evolvability of agent-maintained code.
How far should software be automated — toward the fully-autonomous dark/software factory, or held back to bounded autonomy with humans in the loop?
from: What is the future of software development in the agentic/AI age?
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): Full automation is genuinely viable in context and she is 'ironically' being pulled toward the dark-factory camp.
- Looking back at the Future of Software Engineering unconference (Bartosz Ocytko): The aspirational endpoint is a largely self-evolving software factory; humans build and operate the backbone rather than the application.
- AI Is Changing Software Engineering. The Fundamentals Still Matter. (Abby Bangser): Bounded autonomy — keep humans in the operational loop; automated remediation must stay an intentional decision.
- What Survived Contact (Sam Ruby): Self-healing has stalled halfway on purpose: diagnosis is automated, remediation withheld from the machine.
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Dark factories are safe only for orgs that already have high test coverage, skilled engineers, and a quality culture; most should cover fundamentals first and stay revertible.
Assessment: The spectrum runs from Ördög/Ocytko (full automation is arriving and desirable) to Bangser/Ruby/Verraes (deliberately withhold the last step). The decelerationists have the better of the safety argument today — Ruby's 'nobody will cede the blast radius' and Bangser's 'removing humans removes learning' identify concrete, unmet prerequisites — but Ördög's context-dependence (backends, COBOL) shows the boundary is domain-specific, not absolute. The real disagreement is less about capability than about who absorbs the blast radius when an autonomous fix goes wrong.
Strategically, is the right move to accelerate adoption to build a permanent lead, or to decelerate and hedge against AI's risks?
from: What is the future of software development in the agentic/AI age?
- We've Stopped Arguing About Whether AI Changes Software (Greg Herlein): Accelerate: adoption compounds into a flywheel, and the gap can harden into a permanent structural moat the slowest never close.
- Software Design in the Agentic Age: Place Your Bets (Mathias Verraes): Decelerate and hedge: build systems that can revert from agent generation back to human engineering.
- Fragments: July 6 (Martin Fowler (Jul 6)): Treat good design as a hedge against AI-dependence risk rather than as a race to maximal dependence.
Assessment: Nearly opposite bets: Herlein optimizes for a world where AI keeps getting cheaper and better and first-movers win permanently; Verraes and Fowler optimize for a world where AI gets costlier, curtailed, or unreliable. Herlein's 'permanent moat' rests on flywheel logic plus a single secondhand anecdote and ignores technology-diffusion catch-up dynamics; Verraes and Fowler's hedge is cheap insurance but under-examines whether reversion is actually achievable once specs, agents, and toolchains are deeply embedded and human familiarity has eroded. The disagreement is ultimately a bet on the trajectory of token economics, which nobody in the corpus can price.
Does AI adoption improve output and developer experience together, or do they decouple — with more output bought at the cost of the developers?
from: What is the future of software development in the agentic/AI age?
- Jimmy Nilsson's Post — reflections after the Thoughtworks 'Future of Software Development' retreat (Jimmy Nilsson): Harmony: adoption is energizing and the human element flourishes ('Extreme Humanism'); reasons for optimism.
- Why did Martin Fowler invite 60 engineers to a ski resort? (Ivett Ördög): Liberation: adoption frees engineers from CRUD toil to focus on hard problems — 'exciting times.'
- The Future Of Software Engineering (Thoughtworks): Decoupling: organizations can gain output while developers report lower satisfaction — productivity and experience are coming apart.
- Finding Comfort in the Uncertainty (Annie Vella): Hidden cost: the engineers going hardest on AI are being exhausted by it, and the warning signs are easy to miss.
- Fragments: February 13 (Martin Fowler (Feb 13)): Intensification risk: teams stay the same size and 'do much more,' but doing much more is exactly what drives burnout.
Assessment: This is the specific, evidence-bearing form of the optimism/pessimism split, and it cuts directly against any simple reading of 'DevEx = AgentEx' as good news. The harmony camp (Nilsson, Ördög) speaks from felt experience and in-group mood; the decoupling camp (Thoughtworks, Vella) and Fowler's own cited HBR study bring the harder data, and it shows output and wellbeing pulling apart. Notably Fowler holds both 'same-size teams do much more' and the burnout finding without resolving them — the single clearest internal contradiction in the corpus, and a sign the harmony framing is doing more reassuring than the evidence supports.
Open gaps (95)
- incompleteNo discussion of which quality signals resist deterministic proxying altogether. Mutation testing and unit tests can catch correctness regressions but not architectural coherence, elegance, or long-term comprehensibility — the very qualities ('clean', 'thoughtful') the post's own opening paragraph names as markers of good code.Addy Osmani's Post — read next: extract-garg-reducing-friction-ai-development.json (g2: Polanyi's paradox — the most important quality signals may be exactly the ones hardest to articulate as explicit constraints) and the software-design-fundamentals corpus (Ousterhout on deep modules, complexity) for what judgment stays irreducibly human.
- incompleteThe implicit premise that the developer can read agent output well enough to QA, code-review, and impose taste is enormous. Pocock states 'understanding code deeply is going to make you a much, much better developer and get more out of AI' and 'bad codebases make bad agents' — but does not address the developer who is themselves junior, distracted, or not the original architect. The workflow may be most valuable to seniors and least usable by the engineers who most need leverage.[FULL WORKSHOP] AI Coding For Real Engineers - Matt Pocock, AI Hero — read next: Marcus on code quality (in user's recent saves), Beck on apprenticeship/teaching contexts, Cutler on directly-responsible-individuals and skill distribution.
- tensionThe talk argues that (1) AI amplifies whatever practices you have, and (2) pair programming is essential for reviewing AI output. But if your practice is already strong enough to benefit from amplification, why is the review burden so high? The high review burden suggests the AI is generating output that doesn't match team standards — which is the amplification-of-weakness problem the talk warns about.Presentation: AI-First Software Delivery: Balancing Innovation with Proven Practices — read next: Research on AI code quality vs. human code quality at different experience levels; studies on code review effectiveness for AI-generated code.
- incompleteGitHub's infrastructure strain from agentic coding is presented as evidence of rapid change, but the quality implications of 14 billion agent-generated commits per year are not examined. More commits does not necessarily mean better software.All of AI's New Models and Tools — read next: Study code quality metrics for AI-generated vs. human-written code at scale; examine whether agent-driven commit volume correlates with software quality or technical debt.
- incompleteCorrectness is measured only as binary build-pass/fail plus a scripted functional check (selection/replacement/panel-contents); none of the prompt's qualitative requirements — 'keep the existing editorial visual direction,' code readability, maintainability of the generated comparison feature, adherence to the codebase's existing patterns — are scored, even though they were explicit requirements in the prompt shown. A harness could satisfy the verifier while producing code a human reviewer would reject.The Almedra Token-Efficiency Benchmark, Updated For GLM 5.2 — read next: Look for coding-agent benchmarks that combine automated pass/fail with human or LLM-judge code-quality scoring (readability, consistency, diff size) rather than functional correctness alone.
- incompleteThe piece frames AI-driven review/testing as pure gain but does not address whether routing more review and test-design decisions to an agent erodes engineers' own review skill and system understanding over time.AWS Expands DevOps Agent with AI-Powered Release Management to Validate Code Before Production — read next: Corpus material on skill atrophy / delegation trade-offs in agent-assisted engineering.
- incompleteThe article's own opening heuristic for detecting maintainability decay in an AI-generated codebase — 'the number of files changed for a small adjustment increases' or 'changes start breaking things that used to work' — is never quantified anywhere in the piece. No before/after measurement of files-touched-per-change, defect rate, suppression counts, or warning volume is offered; every claim about the sensor setup's effectiveness is anecdotal.Maintainability sensors for coding agents — read next: Quantitative studies of AI-code maintainability degradation over time, e.g. commit-pattern analyses (GitClear-style) that could supply the missing baseline this article gestures at but never measures.
- illogicalThe article's central optimistic thesis — that the cost-benefit balance for static analysis has shifted decisively in AI's favor — sits uneasily next to its own unresolved counter-example: the max-lines rules produced good refactoring in isolation but also seemed to drive a 'worrying trend' of React components with growing prop lists, a different maintainability problem the author admits she can't yet detect or judge. The piece doesn't reconcile these two observations, nor consider whether the sensor setup itself (optimizing per-rule, per-file) structurally can't see this kind of cross-component tradeoff regressing even as every individual rule stays green.Maintainability sensors for coding agents — read next: The next installment already in this corpus (extract-fowler-bockeler-static-sensors-iii) is a partial answer — it addresses cross-file/module concerns with dependency-cruiser rules and an inferential modularity review, though it doesn't specifically revisit the prop-drilling example raised here.
- incompleteThe thread extensively discusses Claude Code's web search pipeline but never addresses how claude.ai's web search differs, despite ai-software noting they use the same search index but 'completely different content pipelines.' The implications for the much larger claude.ai user base are unexplored.Claude Code Source Leak Megathread — read next: ai-software's own blog posts and any Anthropic documentation on the claude.ai search pipeline
- uninformedThe conspiracy theory about intentional leaking ignores the simplest explanation: organizational silos. The team building anti-distillation defenses is likely not the team managing the npm build pipeline. Large organizations routinely have sophisticated capabilities in one area and elementary failures in another.Claude Code Source Leak Megathread — read next: Literature on organizational failures in complex systems (e.g., Perrow's 'Normal Accidents', Vaughan's 'The Challenger Launch Decision')
- illogicalThe 'user delight > code quality' argument commits a temporal fallacy. Current user satisfaction says nothing about the long-term sustainability of the codebase. a0flj0 correctly identifies this but is dismissed by the majority. The argument conflates a snapshot metric with a trajectory.Claude Code Source Leak Megathread — read next: Ward Cunningham on technical debt; Lehman's Laws of Software Evolution
- incompleteNobody in the thread addresses the ethical implications of KAIROS/Dream Mode from a data privacy perspective. An agent that autonomously processes user data while the user is away raises consent and data processing questions, especially under GDPR.Claude Code Source Leak Megathread — read next: GDPR Article 22 on automated decision-making; any Anthropic privacy policy or DPA covering background processing
- misinformedSeveral commenters conflate the leaked source code (the CLI orchestration layer) with Claude's model weights or training data. JulioMcLaughlin2 correctly notes this is 'the wrapper sent to Anthropic's servers' but this distinction is lost on many participants who ask if this enables a 'free Claude.'Claude Code Source Leak Megathread — read next: Basic architecture of LLM applications: the distinction between inference server, API, and client-side orchestration
- incompleteThe Undercover Mode discussion lacks any serious ethical analysis. A feature designed to let AI contribute to public repos without disclosure has implications for open-source trust, code review practices, and the integrity of contribution records. The thread treats it as either 'cool' or briefly 'an ethical landmine' without following up.Claude Code Source Leak Megathread — read next: Open source governance literature; existing policies on AI-generated contributions (e.g., Linux kernel policy)
- uninformedThe thread assumes that Anthropic's session limit A/B testing is unusual or nefarious. In reality, nearly all SaaS products use feature flags and A/B testing for resource allocation. The finding is significant for transparency reasons but the conspiratorial framing ('tricking you') is unwarranted without evidence of deceptive intent.Claude Code Source Leak Megathread — read next: Standard practices in SaaS product management; Anthropic's Terms of Service on usage limits
- incompleteThe article reports GitClear's headline percentages without the underlying methodology, so a reader cannot assess how each of the eight metrics is computed, whether they are de-biased, or how a commit is classified as 'AI-assisted' -- it is a short trade-press summary standing in for the primary study.Code maintainability plummets in the AI coding era — read next: Read GitClear's full 'AI Code Quality & Maintainability Gap' report and its metric definitions; compare against the earlier 2025 GitClear methodology it builds on.
- incompleteThe benchmark uses only single-function, single-bug corruptions. Real-world brown-field edits often span multiple files, involve multi-step reasoning, and require understanding broader architectural context. The author acknowledges this but does not address how the metrics or training approach would scale to more realistic settings like SWE-Bench Pro.
- incompleteThe corruptions are all value-level (operator flips, boolean swaps) rather than structural (control flow, API misuse, concurrency bugs). It is unclear whether the over-editing phenomenon and the RL remedy hold for structural bugs where the minimal fix may itself be structurally complex.
- incompleteThe paper does not investigate whether over-editing correlates with RLHF training that optimizes for helpfulness. Models may be trained to be maximally helpful, which in a coding context manifests as 'improving' code proactively. This would be a root-cause analysis the paper does not attempt.
- incompleteNo analysis of how the system prompt, context length, or conversation history affects over-editing. In practice, coding agents operate with long contexts and multi-turn interactions — does over-editing get worse with more context?
- incompleteThe RL reward function combines correctness and Levenshtein distance with a fixed weighting (pass bonus +0.1, fail penalty -0.2). No sensitivity analysis on these hyperparameters is provided, and the Pareto frontier between correctness and minimality is not explored.
- unaddressed questionNo discussion of how surrender dynamics change with model capability over time. As models improve and surface-correctness signals become even stronger, the offloading/surrender line presumably shifts — but the essay treats the distinction as static.
- untested assumptionThe prescriptive heuristics (construct expectations, argue against self, etc.) are presented without evidence of their effectiveness. They may themselves be susceptible to surrender: an engineer could go through the motions of the heuristic while still surrendering.
- unaddressed tensionNo treatment of the economic/game-theoretic pressure: if surrender increases short-term throughput and organizations reward throughput, then the equilibrium may favor surrender regardless of individual awareness. The essay gestures at this ('the org rewards both equivalently in the short run') but does not resolve it.
- scope limitationThe mutual-amplification frame assumes the engineer has enough domain knowledge to ask good questions and evaluate answers. For truly novel domains or junior engineers, the entry point into the amplification loop is unclear.
- incompleteThe essay never specifies what would motivate humans to actually remove themselves from the code-review/responsibility loop, given that Seemann's own opening premise is that quality matters precisely because humans remain accountable for the code. The thought experiment assumes away the accountability structure (legal, commercial, safety) that currently keeps humans in the loop, without discussing why or how organizations, regulators, or liability regimes would ever permit that removal.Does code quality still matter? — read next: Look for material on AI accountability and liability for autonomously-generated/deployed software (e.g. discussions of 'who is responsible when an agent's code causes harm') to see whether any serious proposal actually argues for full removal of human accountability, as opposed to full removal of human code-reading.
- tension not resolvedThe essay's own token-cost proxy for LLaMe code quality ('more resources (tokens?) for LLMs to understand') is asserted only parenthetically and with a question mark, yet it does the real work of reintroducing a 'quality' concept after the essay has just argued that human-cognition-based quality dissolves — Seemann does not acknowledge that he has effectively re-derived a form of code quality (cost-to-process) rather than eliminated the concept, nor connect this back to his own opening claim that code quality is 'reducible to human cognition.'Does code quality still matter? — read next: Compare with material proposing token cost as a direct architectural-quality proxy in agentic development, to see whether that framing is developed with more rigor than Seemann's parenthetical aside.
- incompleteThe essay does not engage with the possibility that LLMs already effectively 'read' code today (via their own context windows and training) using representations quite unlike human perception, which suggests the thought experiment's stark before/after framing (human cognition vs. some future LLM cognition) elides a more gradual, already-underway shift in what 'reading code' even means for a model versus a human.Does code quality still matter? — read next: Look for empirical or interpretability work on how LLMs internally represent code (e.g. token-level vs. structural/AST-level processing) to assess whether 'LLM cognition of code' is already a distinct, non-human-cognition regime today, rather than only in Seemann's hypothesized future.
- unstated assumptionThe author assumes that the inability to externalize institutional knowledge and design context is a fundamental limitation of AI, not merely a tooling limitation. This conflates current AI capabilities with inherent constraints. Future models with persistent memory, codebase-scale context, and temporal reasoning could potentially bridge this gap.Eight years of wanting, three months of building with AI — read next: Read work on long-context models, AI memory architectures, and research on whether design taste can be formalized or learned (e.g., Christopher Alexander's pattern language as a possible bridge).
- omissionThe article does not discuss the economics of AI-assisted development beyond the $200/month Claude Max subscription. The 250 hours of personal time invested is mentioned but not analyzed in terms of opportunity cost or compared to hiring/contracting alternatives.Eight years of wanting, three months of building with AI — read next: Compare with analyses of AI coding tool ROI; consider the total cost including cognitive overhead and the discarded vibe-coding month.
- unexamined tensionThe author claims 'AI didn't just make the same project faster -- it changed what the project was' (adding editor extensions, docs, WASM playground). But he also claims the core value comes from the parser architecture, which AI was harmful for. This raises the question: did AI expand the project's scope in the right direction, or did the cheap last-mile features dilute focus on the hard core?Eight years of wanting, three months of building with AI — read next: Consider the 80/20 principle in open source: does breadth of features or depth of core reliability drive adoption?
- implicit premiseThe expertise-x-verifiability framework assumes that 'taste' and design judgment are inherently human and non-formalizable. This is stated as obvious but is actually a deep philosophical claim about the nature of aesthetic and design knowledge. If taste could be partially formalized (as design systems and API design guidelines attempt), the framework's boundaries would shift.Eight years of wanting, three months of building with AI — read next: Joshua Bloch's 'How to Design a Good API and Why It Matters'; API design guideline literature; whether LLMs can learn design heuristics from large corpora of well-designed APIs.
- empirical challengeThe claim that software quality is declining is stated as self-evident but not evidenced. Quality decline in consumer software (enshittification) may coexist with genuine improvement in developer tooling, infrastructure, and specialized domains.Elizabeth Ayer on Mastodon — "The fact that we are *not* seeing wildly improving software all around us tells us everything we need to know" — read next: Compare with Cory Doctorow's enshittification thesis and Ben Thompson's aggregation theory for structural explanations of why consumer-facing software quality declines even as technical capability increases.
- selection biasThe post does not address survivorship bias: AI-augmented software improvements may be happening in less visible domains (internal tools, infrastructure, niche products) while the most visible consumer software degrades for unrelated economic reasons.Elizabeth Ayer on Mastodon — "The fact that we are *not* seeing wildly improving software all around us tells us everything we need to know" — read next: Look for data on AI-assisted development outcomes in enterprise/internal tooling vs. consumer products.
- incompleteFowler offers no mechanism for detecting when 'disposable' software is silently graduating into consequential software. The disposable/consequential boundary is treated as legible to the author, but in practice it is one of the most common failure modes in software organisations — internal scripts becoming critical infrastructure.Bliki: Vibe Coding — read next: Cutler on institutional overload and shadow systems; classic discussions of 'tactical' vs 'strategic' programming (Ousterhout, Philosophy of Software Design); literature on shadow IT and end-user computing.
- incompleteNo engagement with the cultural/professional question of whether vibe coding deserves the name 'coding' at all, or whether legitimising it as a coding practice (rather than, say, 'spec-driven prototyping') invites exactly the diffusion problem Fowler is trying to push back against.Bliki: Vibe Coding — read next: Naur on programming as theory building; the broader 'what is programming' debate that has resurfaced post-LLM.
- incompleteNo treatment of the social-and-organisational fate of the artefacts themselves. Dependency-cruiser configs, custom coupling-analyser CLIs, and imported Modularity Skill packs are all new load-bearing artefacts. Who owns them? Who updates them when the architecture should change? In the absence of an owner, the rules outlive the intent behind them and become either silently violated or silently obsolete — the classic linter-suppression-debt pathology, scaled to architecture.Three more static code analysis sensors — read next: Cutler on institutionalised overload and waste; Fearless Change (Manns & Rising) on what it takes for organisational invariants to survive; Tornhill's Software Design X-Rays on attaching social/ownership data to code-quality signals; Vlad Khononov's modularity work directly (since his Skills are now part of the harness).
- incompleteThe article treats the dependency-cruiser rule set as a substitute for a markdown structure guide, but it skips the question of whether enforcement and explanation are interchangeable. A rule that says 'clients cannot import services' enforces a constraint but does not teach why the layering exists — and the moment the constraint is wrong, the team has no shared prose to reason with. This silently relocates design intent into tooling that few people maintain, and few people can read.Three more static code analysis sensors — read next: Ousterhout 'A Philosophy of Software Design' on the role of design documents; Parnas on module specifications; Hickey 'Simple Made Easy' for the distinction between rules-as-policy and rules-as-understanding.
- incompleteHeavy reliance on Khononov's externally maintained Modularity Skills pack as the thing that makes Sensor 3 work. The article does not examine: skill-pack versioning, drift, security/supply-chain assumptions, or what happens when the skill author changes their mind. The harness now has a third-party dependency at the level of taste, not just at the level of code.Three more static code analysis sensors — read next: Khononov's Learning Domain-Driven Design and his coupling talks; literature on prompt drift; the emerging 'skills-as-dependency' discussion (Osmani's agent-skills writing).
- incompleteThe coupling-analyser is described as a vibe-coded custom CLI. The article acknowledges it would benefit from suppression of legitimate high-coupling hubs but does not engage with the more interesting question: if your coupling tool requires hand-curated exceptions for every architectural pattern, you are effectively encoding architectural intent in two places (the rules AND the exception list). At that point, why not skip the metric layer and go directly to the inferential review?Three more static code analysis sensors — read next: Tornhill, Software Design X-Rays; the dependency-cruiser community's own discussion of when DSM-style tools earn their keep.
- incompleteThe article observes that the AI modularity review found duplicate routes, scattered parameters, and misplaced auth — i.e. exactly the things a senior reviewer would find in a half-hour read of the code. There is no contrastive baseline against human-only review, against pair-review with the original implementing agent, or against a much cheaper rubric like 'review every file changed >X times in the last 30 days'. Without such a baseline, the proposition 'the review is the best available sensor' is unfalsifiable on the evidence given.Three more static code analysis sensors — read next: DORA reports' methodology on baselines; Beck on test-commit-revert and 'starving genies' as alternative scaffolds for keeping AI-edited code honest.
- incompleteNo engagement with the relationship between this approach and existing fitness-function / architecture-as-code tooling (ArchUnit, NetArchTest, ts-arch, Modulith, even Structure101). dependency-cruiser is one point in a much larger design space; treating it as 'the' dependency-rules sensor leaves the reader without a sense of where the boundary lies between custom configuration and adopting an established framework.Three more static code analysis sensors — read next: Ford/Parsons/Kua 'Building Evolutionary Architectures' on fitness functions (which she links to in the framing); ArchUnit; ts-arch.
- incompleteThe framing assumes the agent is always the implementing actor and the human (plus other agents) are the reviewers. It does not consider the inverse case — where humans implement and the AI modularity review is the rubric against which their code is judged — even though the same tooling would work. This matters because it shapes whether the harness is 'AI guardrails' or 'organisational architecture discipline that happens to use AI'.Three more static code analysis sensors — read next: Cutler on operating-system design; Beck on team practices.
- uninformedThe claim that good modularity and descriptive naming help the transformer 'as much as' human developers rests on unspecified 'growing evidence' that is neither cited nor quantified, leaving the strength of the DevEx=AgentEx equivalence unverified.Fragments: February 13 — read next: Look for empirical studies measuring how code structure, modularity, and naming affect LLM code-generation accuracy versus human comprehension.
- uninformedAs an explicitly non-conclusion-forming fragments post, its picture of the 'state of practice' rests on a single retreat and a handful of blog posts rather than systematic adoption or outcome data.Fragments: July 6 — read next: Look for DORA-style empirical studies of agentic-development outcomes at scale.
- incompleteBeck states the two axes are 'not truly orthogonal' but continues to use them as if they were, without modeling the interaction. The coupling between features and futures is acknowledged but unexplored.Genie Tarpit — read next: Explore how feature reliability and flexibility co-evolve — possibly in Beck's earlier 'Features Versus Futures' post.
- incompleteThe 'tarpit' metaphor is in the title but never formally defined or analyzed in the text. The mechanism by which complexity self-reinforces is asserted rather than demonstrated.Genie Tarpit — read next: The Turing tarpit concept and complexity theory literature; also empirical studies of AI-generated code maintainability.
- uninformedBeck does not engage with emerging genie harnesses (test-driven generation, agentic coding with verification loops) that may already partially address the tarpit problem. The piece is a snapshot observation without surveying the solution space.Genie Tarpit — read next: Look at agentic coding frameworks (Cursor, Claude Code, Devin) and their approaches to test-driven AI code generation.
- incompleteThe piece defers the question of why teams choose to stay in the muddling zone ('we can talk later') — but this is directly relevant to whether genies merely accelerate existing tendencies.Genie Tarpit — read next: Beck's broader 'Tidy First?' series likely addresses the incentive structures that keep teams muddling.
- uninformedThe episode does not engage with how AI coding agents change the picture of who counts as a 'delivery-grounded' practitioner. Gorman's 'basis' criterion is rooted in writing code yourself — but what counts as that basis when much code is now generated and curated? The 'AI replaces ticket-converters' framing is correct but stops short of asking what the basis becomes.3) Christin Gorman leder uten tittel — read next: Read Heis ep 11 (Vilde Opsal / Anders Sveen AI special) and ep 13 (Tobias Torrissen on code quality + AI); read the user's Kent Beck Tidy First and Claude Code material — what is the 'basis' equivalent when the medium shifts?
- incompleteTorrissen's frame is largely Norwegian consultancy and public-sector. The 30-year-lifespan argument is anchored in NAV/Skatt/politi; he gestures at differential quality bars for low-stakes consumer apps but does not engage with product-company contexts (startup, scaleup, SaaS) where the relevant time horizon is 3-5 years and the relevant readers are 5-10 engineers, not 70 forvaltere.13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Read this against the Pocock workshop extraction (product-company AI workflow) and Vidar Moe (Heis), to see how product-company engineers calibrate quality differently.
- incompleteThe 'engineering practices matter more under AI' claim rests on one cited Telenor talk. Strong intuition, weak evidence. A serious version needs DORA-style measurement of practice maturity × AI uplift.13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: DORA 2025 (already in user's library); the Entur AI adoption piece; Addy Osmani's agent patterns; any rigorous productivity studies.
- incompleteThe 'obvious over clever' principle is presented as inheritance from NAV's tekniske retning but the tradeoff against domain-modelling power, type-system expressiveness, and idiomatic language use is not explored. A 'maximally obvious' codebase in a functional language with strong types may look obscure to a Java-trained 70-forvalter pool.13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Greg Young / Vlad Khononov on domain modelling; Ousterhout's 'A Philosophy of Software Design'; Rich Hickey's 'Simple Made Easy' (vs. 'easy ≠ obvious').
- incompleteTorrissen acknowledges he's about to participate in a recursive case (reviewing code that was itself generated agentically) and only jokes. The methodology gap — how does code review change when the developer's intent is partially encoded in prompts, ADRs, and context files rather than commit history — is left for next time.13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Anthropic 'harness design' talk and the Pocock workshop already in this corpus.
- incompleteThe advice to juniors assumes the fundamentals taught today are the right ones; doesn't engage with the possibility that fundamentals themselves need re-curation for a world where LLMs are the second author. What does TDD even mean when test generation is also automated?13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Kent Beck's recent 'Tidy First?' work on AI and design; 'starving genies' series; DORA on AI testing practices.
- uninformedTorrissen disclaims familiarity with the formal 'distribution law' he invokes (Parnas/Helland-style). He gets the spirit right but doesn't engage with the literature on when distribution is forced (latency, regulatory, fault isolation).13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Pat Helland's papers; Parnas on module boundaries; Vlad Khononov directly.
- incompleteCode quality discussion is silent on data and persistence design — arguably the longest-lived and hardest-to-change layer in 30-year systems. The whole conversation is about behavioural code.13) Tobias K. Torrissen om kodekvalitet, konferanser og AI — read next: Stripe-style schema evolution practice; Martin Kleppmann's data engineering work; event-sourcing reflections from CQRS practitioners.
- illogicalThe talk asserts the bug-introduction risk is lower at function scale than for a full rewrite (proposition p5) but never actually demonstrates this — no comparative data, incident rates, or even an anecdote of a bug this technique introduced. The claim rests entirely on 'smaller scope, therefore safer' intuition, which the talk does not test against the possibility that FFI boundaries introduce their own novel bug class (memory/lifetime mismatches, GIL misuse, silent numeric divergence as actually shown) that a same-language refactor would not.Presentation: Accelerating Performance by Incrementally Integrating Rust Into Existing Codebase — read next: Read practitioner postmortems specifically about FFI-boundary bugs (use-after-free across a Python/Rust boundary, GIL deadlocks, ABI mismatches) to test whether 'smaller unit of change' actually implies 'lower risk' once the risk profile of the boundary itself is counted.
- uninformedDeployment and dev-environment complexity are named as costs but never quantified or walked through concretely (e.g. what a CI pipeline that cross-compiles Rust wheels for every supported OS/architecture actually looks like, how long that adds to build times, what happens when a contributor's machine can't match a required target triple).Presentation: Accelerating Performance by Incrementally Integrating Rust Into Existing Codebase — read next: Read maturin/PyO3's own packaging documentation and case studies (e.g. cryptography, polars, pydantic-core) on multi-platform wheel-building pain, to fill in the concrete operational cost this talk only names in the abstract.
- incompleteThe article never quantifies what fraction of Zig's actual pull-request volume was AI-related before the ban, so the scale of the problem the policy was designed to solve is asserted, not measured.Andrew Kelley Interview: Why He Built Zig, Banned AI Contributions, and Moved Zig off GitHub — read next: Zig's own GitHub/Codeberg issue-tracker history or maintainer commentary quantifying pre-ban AI-contribution volume.
- incompleteThe technique presupposes a developer experienced enough to triage severity-ranked findings, judge 'juice vs. squeeze,' and independently research away false positives. The piece never addresses whether a less experienced developer could run this same workflow without simply rubber-stamping whatever ranked list the tools produce.Using AI to write better code more slowly — read next: This corpus's material on code review as a skill-formation mechanism for junior engineers (extract-charity-majors-stop-being-skeptical-ai-development#g2) raises the same unaddressed question from the other direction.
- evidentiaryNo evidence or examples of the robustness gap — the post asserts the distinction without demonstrating itA model that produces code which compiles and passes the tests it was given is not the same as a model that produces robust code — read next: Read the linked TNW article for the substantive argument
- conceptualThe 'compiles and passes tests' vs. 'robust' distinction needs operationalization: what specific failure modes does Marcus have in mind?
- argumentativeNo engagement with counterarguments (e.g., that test coverage can be systematically expanded to close the gap)
- referentialOpenClaw reference is opaque — unclear whether it's a real tool or rhetorical device
- structuralThe post is a pointer; the substantive argument lives in the TNW article which is not included hereA model that produces code which compiles and passes the tests it was given is not the same as a model that produces robust code — read next: Follow the TNW link for the full argument
- incompleteThe post offers only adoption metrics (71,000 stars, 13 contributors) as evidence the release is good, with no measure of review effectiveness -- no change in defect catch rate, false-positive rate, or time-to-mergeable-PR before vs. after the 0.6.3 structural-review upgrades. Popularity is not evidence the review skill actually works better.Addy Osmani's Post (Agent Skills 0.6.3 release) — read next: The corpus's agentic-code-review piece, with its multi-dataset defect-rate and review-duration measurements, is the kind of evidence this release announcement lacks for its own claims.
- incompleteThe essay proposes an 'accountability contract' (checklist understood, evidence, who's accountable, system status) but never specifies how any of these fields get populated from an actual hour-scale agentic run whose intermediate decisions are, by the essay's own admission, not fully recorded and cannot all be traced back to input tokens — leaving the central operational question (how do you produce the evidence you're claiming to own) unanswered.Own the Outer Loop — read next: Read Osmani's own 'Quality in the Harness' and 'Software Factories, Light and Dark' for the concrete evidence artifacts (tests, static analysis, review gates) he specifies elsewhere, and read agent-governance / decision-provenance literature for concrete audit-trail mechanisms.
- incompleteThe talk claims AI performs well in good codebases and poorly in bad ones, but provides no data or examples to substantiate this — it relies entirely on the audience's intuitive agreement.It Ain't Broke: Why Software Fundamentals Matter More Than Ever — read next: Look for empirical studies measuring AI coding tool performance as a function of codebase quality metrics (coupling, cohesion, test coverage).
- incompleteThe talk does not address who is responsible for the initial codebase quality when starting a greenfield AI-assisted project. If the AI generates the initial code, the entropy problem exists from day one.It Ain't Broke: Why Software Fundamentals Matter More Than Ever — read next: Investigate AI-assisted bootstrapping practices and whether initial architecture prompting can produce deep-module structures from the start.
- incompleteThe 'Improve Codebase Architecture' skill is mentioned but described only as 'quite complicated' — the talk does not explain how to refactor a shallow-module codebase into deep modules, which is the hardest step.It Ain't Broke: Why Software Fundamentals Matter More Than Ever — read next: Read Ousterhout's A Philosophy of Software Design chapters on deep modules; explore the mattpocock/skills GitHub repo for the actual skill implementation.
- incompleteThe talk assumes TDD is applicable to all AI-generated code, but does not address domains where TDD is hard to apply (UI, data pipelines, exploratory prototyping) or where the cost of test-writing may exceed the cost of debugging.It Ain't Broke: Why Software Fundamentals Matter More Than Ever — read next: Look for frameworks on when TDD is cost-effective vs. when other feedback mechanisms (type checking, property testing, visual review) are better suited.
- incompleteThe talk's five tips are presented as independent failure modes, but the dependencies between them are not explored. For example, does ubiquitous language require deep modules to be effective? Does Grill Me only work if the developer already has architectural knowledge?It Ain't Broke: Why Software Fundamentals Matter More Than Ever — read next: Consider whether these practices form a prerequisite chain or can be adopted independently.
- incompleteThe category of bug Rust does NOT prevent is left implicit. Logic bugs, mis-modeled domains, distributed-systems race conditions across services, mis-handled business invariants — these are arguably the dominant cost in modern backends, and Rust's compile-time machinery does not touch them. Yet the conversation rhetorically positions Rust as 'reliable' full stop.Why Rust is different, with Alice Ryhl — read next: Read Hillel Wayne on formal methods and where types stop helping; Rich Hickey 'Simple Made Easy' on complexity that types don't catch; recent work on property-based testing (Hegel/Hypothesis — sponsor of this very episode, interestingly).
- incompleteThe organizational shift Rust demands is gestured at ('change the struct, not the code') but never made explicit. Adopting Rust seriously means moving design effort upstream — into types and ownership topology — which has real implications for who designs, when, and how PRs are reviewed. The conversation treats this as a personal learning curve when it is plausibly a team-process redesign.Why Rust is different, with Alice Ryhl — read next: Read Kent Beck on where in the design timeline to invest effort (Tidy First?), Yourdon & Constantine on coupling/cohesion as the unit of design, and Ousterhout's 'A Philosophy of Software Design' on deep modules — then ask: in a Rust shop, who owns ownership decisions, and when?
- incompleteThe cost-of-incidents argument is anchored to a Western, large-company threat model ('don't get woken up at night,' 'don't ship a CVE,' 'don't lose root'). It would be much stronger framed against actual cost-curve data: how much do memory-safety CVEs cost on average, what fraction of Google/Microsoft/AWS incident postmortems involve memory bugs, what's the marginal Rust dev-hour cost per prevented incident? Alice alludes to '~70% of Microsoft/Google bugs are memory bugs' folklore without citing.Why Rust is different, with Alice Ryhl — read next: Read the Microsoft Security Response Center memory-safety report (the source of the 70% figure), Google's Android memory-safety post-Rust adoption data, the CISA secure-by-design memo, and the US DoD/NSA memory-safety guidance Alice alludes to.
- incompleteThe Cargo/npm risk parallel is acknowledged and immediately dropped. Given the kernel's explicit rejection of fetch-and-run package management (Linus's anecdote), Rust's strategy for supply-chain integrity is load-bearing for any organization considering it for security-sensitive code — yet the episode offers nothing beyond 'it's a hard problem.'Why Rust is different, with Alice Ryhl — read next: Read crates.io's threat model docs, the Cargo audit/cargo-vet tooling, Linux distributions' approaches to vendoring Rust crates, and recent academic work on the npm/PyPI/crates supply-chain attack surface.
- incompleteThe Rust-and-AI thesis ('compiler-as-leash for agents') is asserted but not pressure-tested. Crucially absent: what happens when the agent reaches for `unsafe` to satisfy the compiler? What happens when the agent's chosen data structure is the wrong one and the compiler keeps approving — but at the cost of forcing Arc<Mutex<...>> everywhere? The compiler can't catch 'this struct shape was a bad idea.'Why Rust is different, with Alice Ryhl — read next: Look for empirical evaluations of AI coding agents in Rust vs in Go/TypeScript (recent benchmarks from Anthropic/OpenAI/SWE-bench-Rust), and pair with vibe-coding critiques like Steve Yegge / Gene Kim — exactly what Kjetil is already reading.
- uninformedGergely floats 'is Rust uniquely good for agents because of compiler feedback?' and neither speaker has data; Alice has 'tried to use them' but is 'still learning.' This is a place where the conversation would have benefited from a third voice with measured agent-on-Rust experience.Why Rust is different, with Alice Ryhl — read next: Recent reports/benchmarks on agentic coding by language (e.g. METR/Anthropic, Cursor postmortems, the Aider language-success-rate leaderboard) would directly fill this.
- illogicalThe phrase 'when it compiles, it works' is acknowledged-in-quotes but then deployed as if it were literally true (Alice's refactoring anecdote, Gergely's monologue). This conflates 'no bugs in the bug-classes Rust catches' with 'no bugs at all.' For an audience of senior engineers, the difference matters and the slippage is rhetorically convenient.Why Rust is different, with Alice Ryhl — read next: Read any survey on bug-class distributions in production systems; pair with Brian Goetz / Bjarne Stroustrup commentary on the limits of static typing.
- incompleteNeither the paper as reported nor the article examines whether the overconfidence effect is specific to older, less capable assistants (which may produce plausible-looking but subtly wrong code more often) or would persist, worsen, or disappear with later-generation coding agents that have explicit self-critique, test-running, or verification steps built into their workflow.Study finds AI assistants help developers produce code that's more likely to be buggy — read next: extract-farley-studied-150-developers-using-ai (a later, larger, pre-registered study) found no significant difference in downstream code quality or maintenance cost between AI-assisted and non-AI-assisted code, suggesting the picture may have shifted with later tools and more disciplined usage patterns — worth reading the two findings against each other rather than assuming this early result still holds.
- incompleteThe article never explains what 'unbundling' concretely means for build tooling in practice — how source maps, tree-shaking, code-splitting, or third-party bundler-dependent tooling are handled once 'the runtime rather than a bundler is the source of truth' — so readers cannot assess the real tradeoffs of dropping the bundler model.Remix 3 Beta Preview Ditches React for a Web-Standards Full-Stack Framework — read next: Remix 3's own documentation/source once the beta stabilizes; comparisons with other runtime-first, no-bundler approaches (e.g., Deno's native TypeScript execution, import maps) to see what unbundling typically costs or saves.
- incompleteThe article reports that a forked Preact replaces the React runtime but never quantifies the performance, bundle-size, or ecosystem-compatibility implications (e.g., React DevTools, existing React component libraries) of forking Preact rather than adopting it unmodified or retaining React.Remix 3 Beta Preview Ditches React for a Web-Standards Full-Stack Framework — read next: Benchmarks and compatibility write-ups once Remix 3 ships stable; the fork's own diff/changelog against upstream Preact.
- illogicalThe article asserts Remix 3 is 'the boldest bet yet on web standards over framework abstractions' against Next.js, SolidStart, and SvelteKit, but never tests whether Remix 3's claimed full-stack breadth (auth, uploads, data/database management, theming) is actually delivered with comparable maturity to those competitors — the comparison is asserted, not demonstrated.Remix 3 Beta Preview Ditches React for a Web-Standards Full-Stack Framework — read next: A hands-on feature-parity comparison across Remix 3, SvelteKit, and SolidStart on the specific claimed full-stack capabilities.
- uninformedThe article does not explain why the team chose to keep JSX as authoring syntax while dropping React's virtual-DOM/reconciliation model entirely — a design tension between 'web standards' purism and retaining a React-shaped authoring surface that is never addressed or justified.Remix 3 Beta Preview Ditches React for a Web-Standards Full-Stack Framework — read next: The team's own 'Wake Up, Remix' rationale post; any interviews with Michael Jackson explaining the JSX-retention decision.
- incompleteThe claim that AI code quality is 'often low' is stated but not analyzed. Low in what dimension? Maintainability? Correctness? Performance? Architecture? Different quality dimensions have different implications for when and how AI should be supervised.SMOC.AI's Post — 5 Minutter: AI og utviklere — read next: DORA 2025 findings on AI and code quality; empirical studies on AI-generated code defect rates
- incompleteThe payoff-matrix argument for betting on code-quality investment never assigns probabilities, timeframes, or a magnitude to the cost of maintaining quality infrastructure — it establishes only a qualitative asymmetry (cheap to remove vs. expensive to add later) without showing that asymmetry outweighs the opportunity cost of near-term velocity foregone if camp 1 (agents don't need design principles) turns out substantially right in the near-to-medium term.Software Design in the Agentic Age: Placing Your Bets — read next: Look for a quantified real-options or cost-of-delay analysis applied to engineering-practice investment decisions under this kind of technological uncertainty.
- illogicalThe asymmetric-payoff argument for betting on quality assumes that quality-sceptics can 'easily remove their quality infrastructure at low cost' if wrong, while sceptics who guessed wrong must 'spend a lot to repair' their code. This treats the cost of removing quality as small and the cost of retrofitting it as large without examining the symmetry; the whole recommendation rests on that unexamined asymmetry, which the author only partly acknowledges when admitting he is unsure low-level quality matters apart from token cost.Software Design in the Agentic Age: Place Your Bets — read next: Read on the economics of refactoring and of retrofitting quality, tests, and modelling into large agent-generated codebases, to test whether the cost asymmetry actually holds.
- incompleteThe central claim -- a defect rate 'probably significantly lower' than hand-written code -- is entirely self-reported impression with no measurement methodology: no defect count, no time-to-resolution figure, no comparison baseline. This is the same claim that extract-tornhill-borg-code-red-business-impact-code-quality and extract-the-economic-benefit-of-refactoring attempt to quantify rigorously (defect counts via Jira correlation; token cost via a controlled before/after experiment), which this article could be measured against but isn't.How I write software with LLMs — read next: See extract-tornhill-borg-code-red-business-impact-code-quality and extract-the-economic-benefit-of-refactoring for quantified methodologies this article's central claim could be tested against.
- illogicalCausality between Code Health and the dependent variables (defects, dev time) is not established, only correlation across 39 codebases -- the paper itself names this as a threat to internal validity (low quality could be a symptom of time pressure or churn rather than a cause) -- yet the Discussion and Conclusion sections repeatedly use causal framing ('the business advantage of high quality code should be unmistakably clear') without hedging to the same degree as the Threats to Validity section.Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases — read next: Look for a follow-up randomized or quasi-experimental study (the authors propose RCTs or Bayesian causal analysis) that isolates the causal direction between code quality and defect/time outcomes.
- uninformedThe Future Work section raises whether a file's main-author-vs-minor-contributor status affects resolution-time predictability in low-quality code, but never connects this to co-author Tornhill's own earlier social code metrics (ownership, developer fragmentation/fractal value, knowledge maps) from 'Your Code as a Crime Scene' (reference 58) -- metrics that measure exactly this and are already present elsewhere in this corpus.Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases — read next: See extract-software-design-x-rays for the ownership/fragmentation/knowledge-map metrics that would directly operationalize this paper's own future-work hypothesis.
- incompleteAll 39 codebases come exclusively from CodeScene's own customer base, and the paper cannot disclose selection criteria or codebase identities for confidentiality reasons. Companies that already pay for a code-quality tool are plausibly a non-random, quality-aware sample, which the paper notes as an external-validity threat but does not attempt to bound.Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases — read next: Look for an independent replication using a non-CodeScene-customer dataset or a different code-health/quality metric to check whether the 15x/124%/9x figures hold outside CodeScene's own customer base.
- incompleteHe asserts taste cannot be tested but never addresses how taste is developed or transmitted. He brings pre-existing taste to every judgment (the population-map problem, the anglophone-Wikipedia bias, the suspect Reykjavik=10) yet treats it as a given human endowment — silent on how a novice, a team, or the next generation would acquire or inherit it, especially once AI removes the on-ramp tasks that used to build it.You can't unit test for taste — read next: Read Polanyi on tacit knowledge and Dreyfus on skill acquisition (novice-to-expert); pair with the corpus's junior-apprenticeship thread (heis-09, heis-12, ki-utvikling-og-folelser) and Beck 'Tidy First?' / Ousterhout on design judgment as cultivated rather than innate. Ask: does taste transmit at all when AI removes the practice that used to form it?
- incompleteHe confines 'you can't unit test for taste' to messy data and treats code as the safely 'verifiable domain,' but never turns the lens onto AI-generated code itself, where tests pass yet design taste — simplicity, deep modules, restraint — has no red/green check. As agents generate more test-passing code, the untestable-taste problem migrates into the codebase, not away from it.You can't unit test for taste — read next: Read Ousterhout 'A Philosophy of Software Design,' Beck 'Tidy First?,' and Hickey 'Simple Made Easy' on design quality as unassertable; cross with corpus docs agents-dont-know-what-good-looks-like (behavioral vs capability verification) and cognitive-surrender (surface-correctness signals). Test the claim: is a green build ever evidence of good design?
- incompleteHe delegates the 'subjective' rating to the LLM's latent weights and finds it useful, but never examines whether that latent 'taste' is genuine judgment or averaged internet popularity — i.e., whether outsourcing scoring to a model launders the very anglophone-Wikipedia bias he diagnosed a section earlier into a 'subjective score' he can no longer see or audit.You can't unit test for taste — read next: Read on models as reflections of their training distribution (Bender et al.) and on popularity-as-proxy-for-quality critiques; probe the LLM ratings against non-anglophone sources to see whether the 'taste' is judgment or a re-encoding of who edits Wikipedia.