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

· Source: GOTO Conferences · Field: Technology & Digital — Software Development & Engineering, Artificial Intelligence & Machine Learning · Depth: Intermediate, extended

Summary

Continuous Delivery (CD) is defined as ensuring software is always in a releasable state, achieved through small, verifiable steps and constant feedback. This approach, fundamental to scientific and engineering problem-solving, guarantees better outcomes in software development. In the context of AI and Large Language Models (LLMs), these established XP-style practices, such as small, testable changes and the ability to revert, become even more critical. While AI offers potential for abstraction, it often struggles with incrementalism and precision, leading to "messy" code. The speakers emphasize that AI programming must facilitate problem decomposition, human communication, and incremental progress. Behavior-Driven Development (BDD) and Test-Driven Development (TDD) are proposed as essential methods to precisely specify desired outcomes, allowing for verification of AI-generated code. The discussion also highlights the ongoing challenge of human verification for AI output and the organizational "people problems" that AI cannot solve, such as coupling between teams. A recent Dora report indicates experienced programmers are better at steering AI, raising concerns about the development of junior talent.

Key takeaway

For development teams integrating AI into their workflows, prioritize established Continuous Delivery principles like small, verifiable steps and testable changes. AI's propensity for non-deterministic output and large code rewrites makes precise specification via Behavior-Driven Development (BDD) or Test-Driven Development (TDD) crucial. You must actively "trust but verify" AI-generated code, ensuring human oversight and robust testing to maintain quality, control incremental progress, and avoid the pitfalls of unconstrained automation.

Key insights

Continuous Delivery's incremental, verifiable steps are foundational for robust software development, especially with AI.

Principles

Method

Employ Behavior-Driven Development (BDD) to precisely specify desired outcomes, then execute these specifications as tests against AI-generated code to ensure accurate fulfillment.

In practice

Topics

Best for: Software Engineer, DevOps Engineer, AI Engineer

Related on AIssential

Open in AIssential →

Editorial summary, takeaway, and curation by AIssential. Original article published by GOTO Conferences.