
A 90-Day Plan for Taking an Enterprise AI Initiative to Production
A three-phase path from pilot to production: 30/60/90 days, gates at every phase, owner roles, and what to do when the first gate fails.
All Posts/30 entries
Thoughts on software engineering, architecture, and the .NET ecosystem

A three-phase path from pilot to production: 30/60/90 days, gates at every phase, owner roles, and what to do when the first gate fails.

Four PoC failure modes: evaluation debt, integration surprise, ownership vacuum and change fragility — two from prior work, one industry jargon, one the author's.

What changed in Delibera after the first releases: a .NET 10 core, Knowledge Keeper, Operator with MCP, a web UI — and where the product's boundary runs.

IC and Engineering Manager are different professions, not rungs on one ladder. A 10-question framework, a scoring scale, and an honest look at both paths.

How a multi-model council is built in .NET: round strategies, Chairman, Knowledge Keeper, MCP tooling and context compression — and what the measurements showed.

What happens to engineering leadership at 30 people: clarity instead of control, an 8-question checklist, distributed quality, and the real cost of ambiguity.

A copy-pasteable ADR template with five questions to answer before extracting a service: boundary, data ownership, failure mode, deploy independence, evidence.

How to move from a monolith to a modular platform without falling into the rewrite trap: strangler boundaries, seam trade-offs, extraction signals, and an ADR template.

What the word 'degradation' actually covers: six distinct failures with different carriers of the defect and opposite fixes. How to tell which one you have.

Once verification is the binding constraint, value is capped by verification capacity: unit economics, ROI assumptions, hiring, and where ADLC actually wins.

An adoption guide for engineering leaders: a four-stage maturity ladder, the metrics to capture, and a ninety-day sequence for agent-driven delivery.

An ADLC is not a model choice: a layer-by-layer account of the deterministic supports — versioned context, artifact chains, evals, gates.

An evidence audit of 8.1M pull requests: why AI coding agents moved the bottleneck into code review, and why verification quality fell before review capacity grew.

A source-by-source audit of the evidence behind AI-assisted development, separating randomised trials from surveys, repository telemetry and vendor claims.

A viral diagram credits Anthropic with 'ADLC'. The six stages are right, the attribution is wrong, and the layer that decides whether adoption works is missing.

An AI call in a .NET request path turns the design question into where the async boundary sits. Thread starvation is the bill for getting it wrong.

A pre-launch checklist for safe agents: what to define about state, how to scope tools, where approval gates belong, and what a gate must stop.

Six layers of a governed agentic workflow — intent, policy, planning, execution, audit, recovery — with risk-based approval gates and a go-live checklist.

Multi-agent systems fail in coordination: tool scope leakage, state divergence, and the invisible approval bypass — with a detection signal for each.

How to tell an agent from a deterministic process: six task characteristics, four architectures on an autonomy spectrum, and the cost of observability.

Twenty questions across five failure categories — factual lookup, synthesis, refusal, injection, citation accuracy — are enough to move RAG from PoC to pilot.

Without a maintained evaluation dataset, a RAG system cannot be changed safely: the MVED, five failure categories, LLM-as-Judge, and deployment gates.

The retrieval unit is the most consequential decision in RAG: why character splitting fails, the precision/recall trade-off, parent-child patterns, and a selection table.

Senior to Principal is not a promotion but a pivot: impact radius, sourcing problems, ambiguity, and the day-to-day shift from execution to organizational leverage.

RAG answer quality breaks down at four independent stages — retrieval, context, answer, operations — with metrics, ten common failure modes, and a checklist.

Five questions to answer before writing the first line of RAG orchestration: retrieval unit, evaluation, corpus ownership, latency and cost, and failure behaviour.

Enterprise RAG on .NET is eight decision surfaces with their own failure modes: ingestion, vector stores, hybrid retrieval, reranking, and observability.

Closing the gap between a working AI demo and a governed production system: architecture, reliability, security, cost, and ownership.

An LLM API call is not an architecture. Seven surfaces decide it: retrieval, evaluation, economics, ownership, and failure UX.

What .NET 11 actually brings: runtime-native async as a preview feature, stabilized C# 15, new Blazor components, and OpenAPI 3.2.0 — with the caveats.