More Software Engineering Radio episodes

Jason Gorman on The Effective Use of AI For Software Development thumbnail

Jason Gorman on The Effective Use of AI For Software Development

Published 5 Aug 2026

Duration: 57:42

"AI aids but doesn't replace developers, with reliability challenges requiring human oversight, structured experimentation, and balanced automation to maintain code quality and foundational skills."

Episode Description

Jason Gorman, a software development expert and founder of Codemanship, joins host Giovanni Asproni to explore how best to use AI in software developm...

Overview

The podcast discusses the practical applications and limitations of AI in software development, emphasizing a realistic, evidence-based approach over hype. Key findings highlight that while AI tools can assist with code generation and idea exploration, they face significant challenges in reliability, context management, and long-horizon reasoning. Large language models (LLMs) suffer from performance degradation as context size increases due to attention dilution, making short, focused prompts more effective. Techniques like test-driven development (TDD), modular design, and constrained contexts help mitigate these issues, but human oversight remains essential to catch errors, ensure code quality, and maintain system architecture.

AI is shown to amplify existing team dynamics rather than solve systemic workflow problems. High-performing teams may see modest gains, while low-performing teams risk increased friction without foundational practices like continuous integration, small batch sizes, and thorough code reviews. The podcast critiques the myth of fully autonomous AI agents, noting that they often fail in complex tasks and create bottlenecks in testing, review, and merging processes. Over-reliance on AI also raises concerns about declining comprehension, reduced problem-solving skills, and growing technical debt. Ultimately, AI is framed as a tool that supports - but does not replace - core software engineering skills such as communication, comprehension, and the ability to safely modify systems.

What If

  • What if you broke every AI-assisted coding task into single-purpose, test-defined micro-tasks with under 500 tokens of context?

    • Move: Restructure your workflow to only use AI for one narrowly defined step at a time - e.g., "Write a failing test for user login validation" - with prompts limited to <500 tokens, including only essential context.
    • Why Now?: LLM performance degrades significantly beyond small context sizes due to attention dilution; staying under this threshold increases reliability and reduces hallucinations in generated code.
    • Expected Upside: Higher accuracy in AI output, fewer debugging cycles, and faster convergence on working code - especially when combined with TDD exit criteria.
  • What if you ran AI-generated code through an automated comprehension gate before merging - requiring you to manually trace and comment each new function?

    • Move: After AI generates code, enforce a personal rule: no commit until you've added inline comments explaining control flow, data transformations, and side effects in your own words.
    • Why Now?: Comprehension debt is rising across the industry; unchecked AI use erodes your ability to maintain, debug, or extend the system - especially when downstream failures occur.
    • Expected Upside: Strengthened personal understanding of the codebase, reduced long-term maintenance cost, and early detection of flawed logic that AI might have masked.
  • What if you treated AI like a junior pair programmer - giving it only one small problem at a time, with explicit success criteria, and resetting context after every attempt?

    • Move: Use a structured loop (e.g., Ralph Wiggum Loop): define one testable goal, prompt AI once, evaluate result against the test, discard context if failed, and repeat - never letting AI carry forward flawed assumptions.
    • Why Now?: Agentic AI gets stuck in doom loops when outside its training distribution; resetting context prevents compounding errors and mimics effective human-AI collaboration patterns.
    • Expected Upside: More reliable progress on complex features, avoidance of broken software trajectories, and better alignment between AI output and actual requirements.

Takeaway

  • Break down development tasks into small, focused steps with minimal context (under 1,000 tokens) to improve AI reliability and output quality.
  • Implement test-driven development (TDD) workflows where AI generates code against specific, pre-written tests to create clear success criteria and reduce errors.
  • Conduct structured, closed-loop experiments with AI (e.g., varying prompt size, module scope, or test inclusion) to identify optimal usage patterns for your specific use cases.
  • Avoid fully autonomous AI coding loops; enforce human review after every AI-generated change to prevent "doom loops" and manage comprehension debt.
  • Measure software delivery outcomes (e.g., lead time, working software) rather than input metrics (e.g., lines of code) to assess whether AI adoption is actually improving performance.

Recent Episodes of Software Engineering Radio

29 Oct 2026 Danilo Krummrich on Rust in the Linux Kernel

"Nova GPU driver project integrates Rust into the Linux kernel to replace the aging Novo driver, leveraging Rust's memory safety for better reliability and performance while addressing firmware and architectural challenges through incremental, collaborative updates."

7 Oct 2026 Sahil Walia on Schema Changes and Data Migrations

Recommended: Schema as source of truth

"Schemas define data structure, apply across systems, and require careful evolution to avoid breaking changes, with best practices including additive updates, blue-green deployments, and stable identifiers."

30 Sept 2026 Raju Dandigam on Building Production AI Agents

"Explores production AI agents, their autonomy, safety, and engineering best practices, comparing workflows, tool design, orchestration, and memory systems while addressing challenges like cost, latency, and reliability."

16 Sept 2026 Milan Milanovic on the Laws of Software Engineering

"Explores key software engineering principles (like Conway's Law, Brooks' Law) and their impact on systems, teams, and decision-making, emphasizing context-dependent trade-offs, AI's role, and practical applications like measuring technical debt."

9 Sept 2026 Owen McGirr on Software Accessibility

"Accessibility in software development must be prioritized from the start, integrating inclusive design practices like multiple input methods, proper labeling, and user testing to benefit all users, not just those with disabilities."

More Software Engineering Radio episodes