Software Engineering fundamentals and AI code generation
Software Engineering fundamentals and AI code generation: a synthesis of evidence, proposed insights, and follow-up research directions
- Traditional Software Engineering (SE) fundamentals help AI-generated code mainly by reducing ambiguity and constraining search around the model, which is why the strongest gains appear when clarification, interfaces, and tests are all present togetherMitchell (2026)Mitchell (2026)Mitchell (2026)
- Prompt-only or specs-to-code workflows retain a real speed advantage on bounded prototyping tasks, but the evidence no longer supports them as the best default for persistent codebases once review cost, debugging burden, and future change are includedMitchell (2026)Mitchell (2026)Mitchell (2026)
- Clarification-first discovery is one of the best-supported first controls under ambiguity, because direct evidence shows that targeted questioning before code generation improves first-pass correctness and reduces later correction roundsMitchell (2026)
- Shared vocabulary or glossary discipline is a plausible pre-generation control, because stable domain names should reduce synonymous prompt phrasing and session-to-session naming drift, although this conclusion remains partly inferential because the planned UL primary item is still backlogEvans (2003)GitHub (2025)Anthropic (n.d.)Github (n.d.)
- Executable verification through Test-Driven Development (TDD), fast tests, and runtime feedback is the strongest post-generation control in the corpus, because it turns AI coding into verifier-paced search and materially improves self-correction compared with one-shot generationMitchell (2026)Mitchell (2026)
- Explicit interfaces and deep modules make delegation safer by localizing the context each change requires, which limits hidden design leakage and reduces the chance that locally plausible code creates repository-scale entropy laterMitchell (2026)Mitchell (2026)Ousterhout (2018)
- The strongest current team operating model keeps humans responsible for architecture, context curation, vocabulary, interfaces, and verification policy, while AI performs bounded implementation inside those constraints, because that is where human attention still has the highest leverageMitchell (2026)Anthropic (n.d.)GitHub (2025)
- The dominant system-level failure mode in the corpus is generation volume outpacing human verification and structural discipline, which is why the downstream signal appears first as review overload, duplication, and rising change cost instead of immediate total failureMitchell (2026)Mitchell (2026)Mitchell (2026)
Research Question
Drawing on the planned seven-item research programme on Software Engineering (SE) fundamentals in Artificial Intelligence (AI)-augmented development, six completed primary items plus external anchors for the missing Ubiquitous Language (UL) dimension, covering structured alignment (Grill-Me), code entropy and quality metrics, deep modules and architectural design, UL, Test-Driven Development (TDD) and feedback loops, strategic versus tactical roles, and empirical comparisons of fundamentals-first versus specs-to-code workflows, what is the overall relationship between traditional SE fundamentals and the effectiveness, reliability, and long-term maintainability of AI-generated code, and what are the key proposed insights and priority follow-up research directions?
Findings
(Populated from §6 Synthesis above.)
Executive Summary
Traditional Software Engineering (SE) fundamentals improve Artificial Intelligence (AI)-generated code primarily by reducing ambiguity before generation and by adding external verification and boundary structure after generation, so they change the workflow's control system more than the model's raw fluency.
Prompt-only workflows remain faster for disposable prototypes, but the combined evidence favors fundamentals-first once generated code must survive review, debugging, and repeated change inside a maintained repository.
A practical stack suggested by the evidence combines clarification-first discovery, shared vocabulary discipline, executable verification, and explicit interfaces or deep modules, while the exact rollout sequence still depends on project context and existing weaknesses.
Confidence is medium because the six completed primary items are mutually reinforcing, but the dedicated UL primary item was not completed and the strongest remaining gaps are longitudinal, whole-project comparisons of full fundamentals-first and prompt-only teams.
Key Findings
- Traditional Software Engineering (SE) fundamentals help AI-generated code mainly by reducing ambiguity and constraining search around the model, which is why the strongest gains appear when clarification, interfaces, and tests are all present together.
- Prompt-only or specs-to-code workflows retain a real speed advantage on bounded prototyping tasks, but the evidence no longer supports them as the best default for persistent codebases once review cost, debugging burden, and future change are included.
- Clarification-first discovery is one of the best-supported first controls under ambiguity, because direct evidence shows that targeted questioning before code generation improves first-pass correctness and reduces later correction rounds.
- Shared vocabulary or glossary discipline is a plausible pre-generation control, because stable domain names should reduce synonymous prompt phrasing and session-to-session naming drift, although this conclusion remains partly inferential because the planned UL primary item is still backlog.
- Executable verification through Test-Driven Development (TDD), fast tests, and runtime feedback is the strongest post-generation control in the corpus, because it turns AI coding into verifier-paced search and materially improves self-correction compared with one-shot generation.
- Explicit interfaces and deep modules make delegation safer by localizing the context each change requires, which limits hidden design leakage and reduces the chance that locally plausible code creates repository-scale entropy later.
- The strongest current team operating model keeps humans responsible for architecture, context curation, vocabulary, interfaces, and verification policy, while AI performs bounded implementation inside those constraints, because that is where human attention still has the highest leverage.
- The dominant system-level failure mode in the corpus is generation volume outpacing human verification and structural discipline, which is why the downstream signal appears first as review overload, duplication, and rising change cost instead of immediate total failure.
Assumptions
- [assumption] The missing dedicated UL primary item would probably sharpen, not reverse, the shared-vocabulary conclusion, because the remaining external and companion evidence is directionally aligned. Justification: the mechanism already appears in Domain-Driven Design (DDD), context-engineering guidance, and multiple completed companion items. [source: Evans (2003) Domain-Driven Design: Tackling Complexity in the Heart of Software GitHub (2025) How to build reliable AI workflows with agentic primitives and context engineering www.anthropic.com
- [assumption] The six completed primary items are sufficiently representative of the fundamentals-first bundle to support an overall synthesis even though one planned dimension is incomplete. Justification: the same core control surfaces recur across the six completed items and the adjacent companion items. [source: Mitchell (2026) Grill-Me technique: iterative structured interviewing for human and Artificial Intelligence (AI) alignment in code generation Mitchell (2026) Artificial Intelligence (AI) code entropy and complexity: does repeated AI code generation without architectural guardrails increase software entropy over time? davidamitchell.github.io
- [assumption] Combining ambiguity reduction, verifier hardening, and architecture hardening likely compounds benefits, because downstream controls are cheaper when upstream ambiguity is already reduced. Justification: each completed item describes costs that rise when earlier control surfaces are weak. [source: Mitchell (2026) Grill-Me technique: iterative structured interviewing for human and Artificial Intelligence (AI) alignment in code generation Mitchell (2026) Test-Driven Development (TDD) and fast feedback loops in Artificial Intelligence (AI)-augmented development: quality, stability, and self-correction davidamitchell.github.io
Analysis
The synthesis weighs direct empirical outcome evidence most heavily where available, which is why clarification gains and verifier-feedback gains sit at the center of the final model rather than at the margin.
Repository-scale evidence matters even though it is more observational, because the research question explicitly asks about long-term maintainability and that outcome cannot be inferred from bounded benchmark wins alone.
The most important trade-off is front-loaded discipline versus downstream rework, because fundamentals-first practices slow the first move but reduce the volume of ambiguous, weakly verified, or weakly structured code that later has to be understood and repaired.
A rival explanation is that fundamentals-first teams may simply be more mature, use stronger tools, or work in more disciplined codebases than prompt-only teams, and the current evidence does not fully isolate those factors from the workflow effects described here.
The evidence supports a layered recommendation rather than a single silver bullet, because ambiguity reduction, shared vocabulary, verification, and interface design each solve different failure mechanisms and reinforce one another when combined.
Risks, Gaps, and Uncertainties
- The planned dedicated UL primary item was not completed, so the shared-vocabulary contribution is less directly evidenced than the other six dimensions.
- Repository-scale maintainability evidence remains partly observational and does not cleanly randomize entire codebases into alternative AI workflow conditions.
- The strongest team-operating-model conclusions are still synthesis-level rather than bundle-level experimental findings.
- Shared-vocabulary and context-engineering sources provide a plausible mechanism, but they do not yet provide a strong longitudinal naming-drift benchmark for AI-assisted repositories.
Open Questions
- What does a twelve-month controlled comparison show for defect escape rate, review time, revert rate, and code-health decline in fundamentals-first versus prompt-only AI teams?
- What is the minimum viable glossary artifact that captures most of the shared-vocabulary benefit without creating heavy maintenance overhead?
- Which telemetry bundle best signals that a team should move from prototype-speed mode into fundamentals-first discipline, review time, hotspot decline, duplication, or change coupling?
- How much of the observed advantage comes from the bundle effect, clarification plus vocabulary plus verification plus interfaces, versus from any single practice in isolation?
sources
(Sources for this synthesis are the completed primary items and any additional external evidence gathered during the synthesis phase.)
- [x] Mitchell (2026) Grill-Me technique: iterative structured interviewing for human and Artificial Intelligence (AI) alignment in code generation
- [x] Mitchell (2026) Artificial Intelligence (AI) code entropy and complexity: does repeated AI code generation without architectural guardrails increase software entropy over time?
- [x] Mitchell (2026) Deep modules in AI-augmented development: interface design, contract-first delegation, and architectural rescue of AI-generated codebases
- [x] Mitchell (2026) Test-Driven Development (TDD) and fast feedback loops in Artificial Intelligence (AI)-augmented development: quality, stability, and self-correction
- [x] Mitchell (2026) Strategic versus tactical roles in Artificial Intelligence (AI)-augmented software teams: division of labour, daily design investment, and the cost of bad code at scale
- [x] Mitchell (2026) Fundamentals-first versus specs-to-code: empirical patterns in Artificial Intelligence (AI)-augmented software projects and Return on Investment (ROI) of Software Engineering (SE) practices
- [x] Mitchell (2026) AI inverted the knowledge-work scarcity equation: volume is free, correctness is the scarce resource
- [x] Mitchell (2026) Reliable Software in the Large Language Model (LLM) era
- [x] Mitchell (2026) What is the precise technical distinction between code generation and other Large Language Model (LLM) outputs in terms of external verifiability, and what does this asymmetry imply for safe deployment boundaries in a regulated financial institution?
- [x] Evans (2003) Domain-Driven Design: Tackling Complexity in the Heart of Software
- [x] Ousterhout (2018) A Philosophy of Software Design
- [x] Beck (2023) Tidy First? A Personal Exercise in Empirical Software Design
- [x] GitHub (2025) How to build reliable AI workflows with agentic primitives and context engineering
- [x] Anthropic Claude Code best practices
- [x] Pocock (2025) 5 agent skills I use every day
- [x] Pocock Skills repository