Skip to main content
Core DeliveryFoundational6 min read

CI/CD

Continuous integration and delivery as a team discipline, not just a pipeline

Continuous integration and continuous delivery are two related but distinct practices that most teams conflate. CI means everyone integrates their work frequently - at least daily - and every integration is verified by automated checks. CD means the codebase is always in a deployable state and can be released at any time with confidence.

The gap between "we have a CI/CD pipeline" and "we practice CI/CD" is enormous. The pipeline is plumbing. The practice is a team discipline.

Why it matters for delivery

Teams that practice CI/CD well share a few characteristics: small changes shipped frequently, fast feedback loops, and low-drama deployments. Teams that don't tend to batch changes, discover integration problems late, and treat deployments as events that require coordination and courage.

If your delivery diagnostics show stories carrying over, bugs appearing after merges, or deployments that require a war room, the root cause is often CI/CD discipline, not individual performance.

The practice, not the pipeline

Continuous integration

The discipline: every developer integrates to the main branch at least once a day. Not to a feature branch. To main.

What makes it work:

  • Small commits. Each change is small enough to review and understand quickly. If a commit takes more than a few hours of work, it's too big.
  • Automated verification. Every commit triggers a build and test suite. If the build breaks, it gets fixed immediately - not after lunch, not after the standup, now.
  • Trunk-based development. Long-lived feature branches are the enemy of continuous integration. They accumulate merge debt that compounds daily.

Continuous delivery

The discipline: the main branch is always deployable. Any commit could go to production.

What makes it work:

  • Comprehensive test coverage. You need confidence that passing tests means the code works. This is where TDD pays dividends.
  • Feature flags over branches. Incomplete features are hidden behind flags, not isolated on branches. The code is integrated even when the feature isn't visible.
  • Automated deployment. If deploying requires manual steps, it won't happen often enough. Automate the path from commit to production.

CI/CD for AI systems

AI features add complexity to the pipeline. Model updates, prompt changes, and eval suites all need CI/CD treatment.

Prompt changes are code changes. They should go through the same review, testing, and deployment process. A prompt change can alter system behavior as dramatically as a code change. Version them, test them, deploy them through the pipeline.

Evals in the pipeline. Your CI pipeline should run evaluation suites on every change that touches AI behavior. This includes prompt changes, model version updates, and changes to context or tool configurations. Eval failures should block the deploy, just like test failures.

Model updates as deployments. When your AI provider ships a new model version, treat it like a dependency upgrade. Run your full eval suite against the new version before rolling it out. Silent model updates are a common source of production quality regressions.

Gradual rollout. AI behavior changes are harder to predict than code changes. Use canary deployments or percentage-based rollouts for any change that affects AI output. Monitor quality metrics during the rollout and roll back automatically if they degrade.

Signs your CI/CD needs work

  • Deployments happen less than once a week
  • Merges regularly cause conflicts or break the build
  • The team has a "deployment day" or deployment coordinator
  • Feature branches live longer than 2 days
  • Nobody trusts the test suite enough to deploy automatically
  • AI prompt changes bypass the normal deployment process

Each of these is a symptom of a discipline gap, not a tooling gap. Better tools don't fix teams that batch work and avoid integration.

Want help with ci/cd?

I coach teams on this practice. Let's talk about your situation.

Get in touch