Articles

Notes on software engineering, leadership, and the craft of building things that work.

Explored through a single lens: engineering rigour as a form of responsibility.

Agentic XP: Moving Rigour Left in the Age of AI

Why the pull request is no longer a reliable control for AI-generated code, and how Agentic XP moves rigour upstream into contracts and metrics.

Read full article →
Figure 0: Where Rigour Lives: Traditional vs. Agentic XP
Where Rigour Lives: Traditional vs. Agentic XPA comparative diagram showing the shift of rigour. Left: Traditional AI workflow with late-stage human inspection at the pull request. Right: Agentic XP workflow with rigour moved upstream to contracts and metrics, featuring an automated AI optimisation loop.TRADITIONAL AI WORKFLOW(Inspection as Gate)1. Human Intent2. AI Generates Code + Tests3. Human PR Review(Inspection Bottleneck)4. Merge to ProductionLate Validation: Opaque IntegrityAGENTIC XP WORKFLOW(Rigour moved UPSTREAM)1. Define Contract + Metric(The Definition Loop)2. AI Optimisation Loop(Compile-style Refinement)3. Strategic PR Review4. Verified Baseline OutputEarly Validation: Intent FidelityRIGOUR SHIFTUPSTREAM
Where Rigour Lives: Traditional vs. Agentic XP

Guardrails over Gates: A Decision Architecture for AI

Why vigilance degradation creates bottlenecks in high-volume loops, and how to replace manual gates with deterministic, auditable guardrails.

Read full article →
Figure 0: Operational Models: The Gate vs. The Guardrail
Operational Models: The Gate vs. The GuardrailA comparative diagram showing two workflows. Left: 'The Gate', where all decisions pass through a human bottleneck, causing high latency. Right: 'The Guardrail', where routine decisions flow automatically through a safe-to-fail zone, and only exceptions are escalated to a human.THE GATE (All Decisions)HumanReviewer(Delayed)High Latency / FatigueTHE GUARDRAIL (Exceptions Only)HumanSafe-to-Fail ZoneEscalateManagement by Exception
Operational Models: The Gate vs. The Guardrail

Rigour is Velocity: The New Engineering Mandate

Why AI scales ambiguity, why Scrum's feedback loops are failing, and how 'Intent Fidelity' becomes the only metric that matters.

Read full article →
Figure 0: The Relationship Between Rigour and Velocity
Graph comparing Low Rigour vs. Rigour-First development velocity over timeThe Low Rigour approach shows rapid initial gains (Peak Debt) followed by a decline in net value delivered as rework and risk accumulate. The Rigour-First approach starts slower but maintains a steady, upward trajectory of value delivery over the project duration.Low RigourPeak DebtRigour-FirstProject DurationNet Value Delivered
The Relationship Between Rigour and Velocity

The Senior Janitor: Escaping the AI Code Review Trap

Why AI is turning senior engineers into janitors, and how architectural rigour is the only way to regain control.

Read full article →
Figure 0: THE RIGOUR LOOP: CONSTRAINT-DRIVEN DESIGN
1. HUMAN INTENTDefine Types & Schemas2. AI IMPLEMENTATIONGenerate within Bounds3. VERIFICATIONConstraints Met?4. HUMAN JUDGMENTArchitectural Audit"The Human defines the Shape; the AI fills the Logic."
The Rigour Loop: Constraint-Driven Design

Why Your AI System Looks Fine, But Is Not

Operational Decoupling is the symptom; missing Reasoning Integrity is the root cause. How to trace AI behaviour back to human intent to prevent silent drift.

Read full article →
Figure 0: The Core Failure Mechanism
Comparison of traditional vs. AI-augmented system failure modesPanel A shows a traditional system where human intent is coupled to an explicit, encoded constraint, leading to observable failures. Panel B shows an AI-augmented system where optimization metrics bypass un-encoded implicit constraints, leading to silent failures.Panel A: Traditional System (Coupled)Intent: Reduce latencyEngineer encodes constraint:blast radius ≤ XCode + TestBehaviour Aligns(Failure is LOUD)Panel B: AI-Augmented (Decoupled)Intent: Reduce latencyAI Optimises for MetricConstraint: blast radius ≤ X(NOT encoded)Behaviour Violates Intent(Failure is SILENT)BYPASS
Visualising the Decoupling: In Panel B, the optimisation loop bypasses the implicit constraint because it was never encoded as an executable artifact, leading to silent alignment failure. In agentic systems, the failure deepens: not only is the constraint unencoded, but the agent dynamically selects tools and contexts that bypass it, without human visibility.