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

15 Jul 2026 Garth Mollett on AI Supply Chain Security

"Explores AI supply chain security challenges, including probabilistic outputs, data poisoning, and emerging threats, while emphasizing structured measures like model signing and isolation to mitigate risks."

8 Jul 2026 Clare Liguori on AWS Strands SDK for AI Agents

This text outlines AI agents' core components (models, tools, prompts), their evolution via the Strands SDK from early reliability challenges to simplified model-driven approaches, and their application in automating business workflows with technical considerations like tool integration, validation mechanisms, and challenges in context management, alongside tools and future trends in agent design.

2 Jul 2026 Jeroen Janssens and Thijs Nieuwdorp on Using Polars

The *polars* library offers a high-performance, multi-language (Python, R, Node.js) data frame tool leveraging Rust, columnar storage, out-of-core processing, and GPU acceleration for fast data manipulation, optimized for large datasets and scalable data engineering workflows.

More Software Engineering Radio episodes