AI Adoption Is Not
a Tooling Problem

Chapter 6 of 18 Practitioner · 7 min

I have been making a quiet assumption in my work for the last 18 months. That AI adoption is a tooling problem. Use better tools, get better results. I was wrong.

// the crux

The teams struggling with AI do not have bad tools. They have good tools dropped into processes that were never designed for them. Adoption is an organisational problem – nine SDLC phases, each with one concrete failure – not a tooling one.

The teams I have watched struggle with AI – and there are more of them than the LinkedIn highlight reel suggests – were not struggling because they had bad tools. They were struggling because they adopted AI into processes that were never designed for it.

Three patterns kept appearing:

// Pattern 01 · Requirements

AI coding agents deployed into requirements workflows that never defined what “done” means for a non-human implementer. A human developer reads an ambiguous requirement and asks a question. An agent reads an ambiguous requirement and makes a decision – silently, confidently, at 10× the speed.

// Pattern 02 · Testing

AI testing deployed into codebases where nobody owns what “correct output” means for an LLM response. Hallucination rates that seem acceptable in isolation accumulate invisibly over weeks – until they surface in production, or in a customer demo, or in a compliance review.

// Pattern 03 · Observability

AI agents with write permissions deployed into systems where the monitoring stack was built entirely for deterministic failures. An agent can introduce degraded behaviour that passes every check – because the checks were designed to catch crashes, not drift.

The tools worked fine. The systems around them were not ready.

This is the insight that changes how you think about AI adoption. The failure is almost never in the model. It is in the interface between the model and the human processes surrounding it: the requirements it receives, the tests that evaluate it, the monitoring that watches it, the deployment process that ships it. Get those interfaces right and AI performs. Leave them unchanged and AI amplifies exactly the problems that were already there – but faster, and with more confidence.

nine phases · nine failures

The SDLC as a Process for Two Kinds of Consumers

The software development lifecycle was designed for human consumers of its outputs. Requirements written for human developers. Tests evaluated by human judgement. Deployments monitored for human-recognisable failure modes.

AI agents are a different kind of consumer. They need different inputs, produce different outputs, and fail in different ways. The SDLC phases below are not broken. They need to be extended – not to accommodate AI as a novelty, but because AI is now a first-class participant in each phase.

↳ see also · Chapter 13 – The SDLC Practitioner's Map – these nine phases crossed with all eight forces, in one reference grid.
↳ see also · How Software Gets Built – the field guide to the development models these nine phases live inside, from Waterfall to harness engineering.

Here is where I have seen things go wrong, one phase at a time:

01 Analyze

“AI agents built exactly what was specified. It didn’t work. That’s an analysis problem.”

02 Design

“We gave an agent a vague domain. Three months later we found it in the wrong database.”

03 Develop

“I almost shipped a race condition I didn’t write. How many am I missing?”

04 Test

“4% hallucination rate. Six weeks. Zero alerts. The number isn’t the problem – not knowing is.”

05 Build

“App Store review took 6 days. We’d designed for simultaneous release. We learned.”

06 Deploy

“Textbook deployment. Zero errors. Users got wrong answers for four days. All dashboards green.”

07 Monitor

“I pulled LLM traces out of curiosity. Three months of quiet degradation. No one had noticed.”

08 Deliver

“‘Show us what your AI did.’ We couldn’t. We didn’t win the deal.”

09 Change

“Two sentences added to a prompt on a Friday. Four days of degraded behaviour. No rollback path.”

None of these failures required the AI to malfunction. In every case, the model did exactly what it was asked to do – correctly, quickly, and with confidence. The problem was in what it was asked to do, in the absence of the right guard rails, in the lack of visibility into what it was doing, and in the failure to design for how it changes over time.

the common fix

Scoped, Not Constrained

There is a pattern in those nine failures, and it is worth pulling into the open. In every one of them, the agent received intent but not the deliverable's definition. The industry has spent fifty years writing those definitions down: the user story with acceptance criteria, the architecture document, the failing test, the service level objective. Every phase of the SDLC already knows what its output looks like when it is done well. We just stopped handing that knowledge to the newest member of the team.

The word that matters here is scoped. Not constrained: scoped. A constraint closes the solution space and tells the model what it may not do. A scope draws the boundary of the deliverable and leaves the model free inside it. An agent told to write tests will produce tests of some kind. An agent handed the test pyramid, the coverage bar, and a standard for sizing the functional test matrix produces the deliverable the phase was always supposed to produce. Same freedom inside the boundary. A very different boundary.

Standards amplify AI for a reason that is easy to miss: the model has already read them. A template the industry wrote down ten thousand times is a shape the model knows from training, which means a mature standard does three jobs at once. It is a vocabulary the model already speaks. It is a contract that defines what done means for this phase. And it is a rubric that a reviewer, human or machine, can grade the output against. Nothing else in your process does all three.

// The standard that scopes an agent, phase by phase
  • 01 Analyze. The user story with acceptance criteria and a definition of ready. An agent cannot ask a clarifying question it does not know is missing; the template knows.
  • 02 Design. DDD bounded contexts for the domain, arc42 as the document template, the C4 model for structure at four zoom levels, UML where precision pays (sequence and state first), and the object-oriented analysis and design discipline underneath them all.
  • 03 Develop. Test-driven development. The failing test is the tightest scope ever invented for a coding agent: one boundary, machine checkable, no ambiguity about done.
  • 04 Test. The test pyramid for shape; orthogonal arrays for sizing the functional matrix on the deterministic side; evals on the probabilistic side.
  • 05 Build & 06 Deploy. Pipelines as code, and a deployment checklist an agent can execute while a human can audit it.
  • 07 Monitor. SLOs and error budgets; runbooks written to be executed, which now means executable by either kind of operator.
  • 08 Deliver. The definition of done and the demo script, with acceptance owned by a human.
  • 09 Change. Semantic versioning, architecture decision records, and the rollback path written before the change ships.

Notice what none of this changes: the deliverable, and the bar it has to clear. An architecture document is judged the way it always was. A test matrix covers what it always had to cover. The producer changed, and the human moved one seat over, from writing the deliverable to evaluating it against a standard both sides can read. That is also why the phases with the most mature standards are adopting AI fastest: there was already a written answer to what good looks like, and the model can be held to it.

Each phase of the SDLC has a specific failure mode when AI is introduced without adapting the process. The next articles in this series go deeper – one phase at a time, with concrete changes that actually move the needle, not frameworks that sound good in a diagram.

// Zoom out · the structural companion These nine phases are where adoption breaks. 8 Forces Reshaping How Software Gets Built is why – the same territory mapped as eight structural forces, requirements through reliability. The reference companion to this series; Chapters 9–12 go deep on each force pair.
a fair warning

Some of This Is Slightly Unpopular

The positions in this series are specific. Some of them push against prevailing opinion. That is intentional – not for the sake of being contrarian, but because the prevailing opinion is often shaped by people with something to sell.

// Positions taken in this series
  • Domain-Driven Design is now an economic necessity, not a philosophy. When AI agents build your microservices, the quality of your domain model determines the quality of your implementation – directly, and at speed. Vague domains produce vague code, generated faster than you can review it.
  • Most AI monitoring in production is currently hope masquerading as observability. Infrastructure metrics stay green while LLM output quality silently degrades. The monitoring stack most teams inherited was not built for non-deterministic systems – and most have not rebuilt it.
  • The mobile App Store review process is the hardest constraint in modern software delivery, and no amount of AI tooling changes it. A five-track coordinated release – web, mobile, backend, data pipeline, AI/ML – can be AI-generated in hours and then wait five days for App Store review. That asymmetry matters enormously for release design.

I might be wrong on some of it. The honest position in a rapidly changing field is to say something specific and be correctable, rather than say something vague and be agreeable. Vague agreement produces no learning for either of us.

from my own desk

In that same spirit: a fair thing to ask anyone who writes about AI adoption is whether they live in it or only talk about it. So here is my own last thirty days, unedited.

A 30-day Claude usage dashboard: 70 sessions, 55,467 messages, 140.5 million total tokens, 21 active days, longest streak 7 days, peak hour 9 PM, favourite model Opus 4.8.
One month, one engineer. 70 sessions, 55,467 messages, 140.5 million tokens, peak hour 9 PM, mostly Opus 4.8 – the tracker reckons about 900 times the text of Pride and Prejudice.
Token usage by day across 30 days, peaking near 22 million on June 16, broken down by model: Opus 4.8 85 percent, Fable 5 8.7 percent, Sonnet 5 5.9 percent.
The same month, by model and by day. Opus 4.8 carried 85% of it, Fable and Sonnet the rest. The spikes are real delivery, not demos.

I show this not as a flex but as the exact thing this article argues against. A usage chart is tooling adoption made visible, and it is the easy part. It can tell you how much AI someone runs; it cannot tell you whether the requirements were written for a non-human implementer, whether the tests know what “correct” means, or whether anyone would notice the day the output quietly began to drift. The hundred and forty million tokens are not the achievement. The processes around them are where the real work – and the real failure – actually live.

who this is for
// This is for you if –
  • You are an engineer asking where AI actually fits in your real workflow – not the demo workflow
  • You are a tech lead deciding which process changes are worth the disruption
  • You are an architect designing systems that serve humans and AI agents with equal reliability
  • You are curious about the specific failure modes, not the general promise
// This is not for you if –
  • You are looking for validation that everything is going great with your AI adoption
  • You want tool recommendations without the surrounding process context
  • You are selling something AI-adjacent and want a co-signer for the pitch
  • You are looking for hype – this is the honest version, and the honest version is more complicated
// I believe this. Worth saying clearly.

The teams winning with AI are not the ones with better models. They are the ones that designed their processes for how AI actually works – its context limits, its confidence without certainty, its inability to ask a clarifying question. That design is where the real work is.

// Industry convergence – the methodology now has a name

Since this article was written, the industry has converged on the same conclusion hard enough to formalise it. AWS published the AI-Driven Development Lifecycle (AI-DLC) – an open-source methodology (MIT-0, deliberately tool-agnostic, with rule files for Claude Code, Cursor, Copilot, Kiro, and others) built on exactly the premise argued here: AI adoption succeeds or fails on process design, not tool choice. Its core loop – AI proposes, AI asks clarifying questions, humans validate – restructures the lifecycle into short "bolts" instead of sprints, with human checkpoints at every consequential decision.

The reported results are striking – Amazon's Bedrock inference engine rebuilt by six engineers in 76 days against an estimate of forty engineers and a year – though note these are vendor-reported case studies, not independent measurements. The methodology itself, however, is open and portable. Chapters 9–12 of this series map cleanly onto its phases; Chapter 13 includes the full crosswalk.

The convergence has since widened beyond AWS. Google's fifty-page whitepaper The New SDLC With Vibe Coding (June 2026, lead author Addy Osmani) lands on the same conclusions this series argues: structure scales while vibes do not, AI amplifies whatever engineering culture it lands in, and the human's work shifts to specification, evaluation, and judgment. The open-source ecosystem has started codifying the process itself: frameworks like AI-SDLC now put a Definition-of-Ready gate in front of agent dispatch, so the scoping decisions are made by a person with context before the machine starts. That project is early (pre-1.0, a few dozen stars), but the direction of travel is consistent everywhere you look: serious AI adoption keeps converging on process design, standards, and gates.

Adoption was never the tools. It was the nine phases of delivery, each meeting AI on terms it was never designed for. Fix the process the work flows through, and the tools finally land.
// carry forward

Before we walk those phases force by force, one map: the development lifecycles they all live inside. Chapter 7 is the field guide – Waterfall to harness engineering, and which model the AI era actually changes.