More Goto tech episodes

Continuous Delivery in a World of Constant Change  Abby Bangser & Dave Farley thumbnail

Continuous Delivery in a World of Constant Change Abby Bangser & Dave Farley

Published 19 Jun 2026

Duration: 00:45:55

Continuous delivery principles, AI's challenges in code generation, and the necessity of incrementalism, rigorous testing, and human validation in software development are emphasized, alongside critiques of AI's lack of precision and the push for structured validation in high-stakes systems.

Episode Description

This presentation was recorded at GOTO Copenhagen 2025. https://gotocph.com Abby Bangser - Principal Engineer at Syntasso & Team Topologies Advocate D...

Overview

The podcast discusses the core principles of continuous delivery in software development, emphasizing incremental, verifiable changes and the necessity of testing and feedback loops to maintain reliability and enable reversibility. It draws parallels between these practices and scientific/engineering methodologies, highlighting their role in tackling complex problems. The conversation also explores challenges in integrating AI and code generation, such as balancing human readability with disposable AI outputs and the risks of non-deterministic code requiring resets or reverts. Extreme Programming (XP) practices are presented as increasingly vital for adapting to AI tools, with incremental development, testing, and verification framed as critical strategies for managing AI-generated code effectively. Key concepts like persistence in software principlessmall steps, verification, and reversionare reiterated as foundational, though their application varies across contexts like mobile, SaaS, or data centers.

The discussion underscores the limitations of current AI coding practices, particularly their inability to meet criteria for precision, testability, and human-understandable outcomes. It stresses the need for explicit specifications, test-driven development (TDD), and behavior-driven development (BDD) to define outcomes, enable incremental testing, and maintain version-controlled requirements. Challenges in verifying AI-generated code are emphasized, including its potential for incomprehensibility and the need for human oversight to ensure alignment with specifications. The podcast also critiques the lack of clear solution goals in development, the limitations of AI-generated tests, and the risks of uncontrolled AI behavior, such as unintended code changes or inconsistencies. Examples are provided of how AI overreach could disrupt workflows or introduce errors, requiring strict constraints and validation mechanisms.

Broader themes include the tension between automation and control in AI integration, with calls for balancing rapid code generation with human validation, especially in critical systems. Organizational challenges like coupling between teams and information divergence in distributed systems are identified as fundamental issues that AI may not resolve. The podcast reiterates the importance of continuous integration (CI), design decoupling, and consensus-driven alignment to manage complexity. It also critiques the professions inconsistent adoption of proven practices like TDD and highlights the need for developers to prioritize quality over speed. Finally, the text raises questions about the future of programming in an AI-dominated era, including the role of human expertise, the evolving definition of "incremental" progress, and the potential risks of relying on AI without rigorous verification processes.

What If

  • What if you integrate AI into your workflow with strict XP practices for verification?

    • Move: Implement a hybrid workflow where AI generates code, but you apply Test-Driven Development (TDD) and Behavior-Driven Development (BDD) to validate each output before deployment.
    • Why Now?: AI code generation often lacks precision and testability, risking undetected errors. XP practices ensure incremental, verifiable progress, aligning with the texts emphasis on safety and reliability.
    • Expected Upside: Higher code quality, reduced debugging time, and better alignment with project requirements by forcing rigorous validation of AI outputs.
  • What if you prioritize explicit specifications for AI-generated code using BDD scenarios?

    • Move: Refine high-level goals into detailed BDD scenarios (e.g., "As a user, I want to filter search results by date") before prompting AI to generate code.
    • Why Now?: The text highlights that AI struggles with implicit goals and requires clear, human-defined criteria to produce useful outputs. This addresses the "lack of clear solution goals" challenge.
    • Expected Upside: AI-generated code will adhere to explicit user stories, reducing rework and ensuring alignment with business outcomes.
  • What if you build a lightweight testing framework specifically for verifying AI-generated code?

    • Move: Create a modular test suite that runs non-deterministic exploratory tests on AI outputs first, followed by deterministic regression tests for critical components.
    • Why Now?: The text stresses the need for verification in AI workflows, as AI-generated code can be unverifiable or contain hidden flaws (e.g., "cheating" by omitting implementation details).
    • Expected Upside: Early detection of edge cases and inconsistencies in AI outputs, ensuring reliability while maintaining the speed of automation.

Takeaway

  • Adopt Test-Driven Development (TDD) or Behavior-Driven Development (BDD) to define precise, incremental goals for your software. Use BDD scenarios (e.g., "As a user, I want to...") to create explicit specifications, ensuring AI-generated code aligns with human-readable, verifiable outcomes.
  • Break tasks into small, reversible changes to maintain a "releasable" state. Commit incremental updates with automated tests to ensure each step is trackable, testable, and safe to roll back if needed, even when using AI tools for code generation.
  • Implement staged validation pipelines to verify AI-generated code. Use non-deterministic tests to explore edge cases, then transition to deterministic tests in delivery pipelines. This mirrors data engineering practices, ensuring outputs meet reliability standards.
  • Document explicit requirements and specifications before relying on AI for code generation. Clearly define what constitutes "working" code (e.g., performance, usability) so AI outputs can be validated against human-defined criteria, avoiding vague or untestable outcomes.
  • Enforce human review and verification of all AI-generated code. Apply the "four eyes" principle by having another developer review AI outputs, even if theyre not QA specialists. This mitigates risks of undetected errors and ensures code readability and correctness.

Recent Episodes of Goto tech

16 Jun 2026 Go for Java Programmers Barry Feigenbaum & Shon Saliga

Go emphasizes simplicity, concurrency, and efficiency for lightweight applications through explicit error handling and goroutines, while Java offers a feature-rich, object-oriented framework with extensive libraries and inheritance for complex, general-purpose systems, each suited to distinct development priorities and domains.

12 Jun 2026 Engineering Leadership in Turbulent Times Sarah Wells, Pat Kua & Daniel Terhorst-North

The text contrasts technical leadership and management, highlighting leadership's emphasis on vision and team alignment with management's focus on systems and accountability, while exploring change strategies, frameworks like the "Three Threes Model," challenges in technical debt and cross-functional alignment, and the role of communication, culture, and adaptability in fostering innovation.

9 Jun 2026 Modern Concurrency in Java Bazlur Rahman & Michael Redlich

Modern Java concurrency explores the shift from traditional threads to virtual threads (JDK 21) and structured concurrency, emphasizing scalability for I/O-bound tasks, task management simplification, limitations in CPU-bound work, comparisons with reactive programming, adoption challenges, and the book's unification of knowledge around Project Loom and scoped values for intermediate developers.

5 Jun 2026 Roc & Zig: A Compiler Rewrite Story Anjana Vakil & Richard Feldman

The text covers Rock's evolution as a simplified, statically typed alternative to Elm with a Zig-based compiler, AI's expanding role in software development beyond automation, open-source challenges, education's shift toward conceptual understanding, and the tension between rapid AI-driven productivity and quality-focused project development.

More Goto tech episodes