RefactorOps

Michael Smith

Writing

Practical thinking on engineering leadership, digital delivery, and the systems that make technical organizations work.

AI Coding vs AI Delivery

AI tools have become extremely capable at generating code. But most software delivery failures do not originate in coding. The real opportunity for AI lies in managing the delivery system itself.

software deliveryartificial intelligence
Read →

Component Inventory: The Missing Artifact

Most delivery friction between design and engineering occurs because a critical artifact is missing: the component inventory. This artifact defines the reusable interface elements that make a system measurable and implementable.

software deliveryUX engineering
Read →

Why Figma Cannot Be the Source of Truth

Design tools are powerful for visualizing interfaces, but treating Figma as the system definition creates delivery problems. The real source of truth in software projects must span multiple artifacts.

software deliverydesign systems
Read →

User Journeys: Turning Capabilities Into Experience

Capabilities define what a system must do. User journeys describe how people accomplish real outcomes using those capabilities. Without clear journeys, design and development begin inventing the product.

software deliveryuser journeys
Read →

The Capability Map: Defining What a System Must Do

Before design and development can begin, a software project must define what the system actually does. The capability map organizes system behaviors into a structured model that guides design, architecture, and delivery.

software deliveryproduct strategy
Read →

The Artifact Chain of Software Delivery

Software projects fail when knowledge disappears between stages of delivery. The Artifact Chain explains how information should move from brief to code without losing clarity.

software deliveryproject artifacts
Read →

Truth Conditions: How Delivery Systems Measure Readiness

Stage gates require a way to measure whether a project is actually ready to advance. Truth conditions provide that mechanism — a defined set of facts that must be established before the next stage of work can safely begin.

software deliverydelivery methodology
Read →

Stage-Gated Delivery: From Hard Gates to Readiness Signals

Most software projects fail because teams begin work before critical knowledge is stable. Stage-gated delivery introduces checkpoints between phases — but rigid gates have limits. The modern approach replaces binary go/no-go decisions with continuous readiness signals.

software deliverystage gates
Read →

The Delivery Operating System

Most organizations treat software delivery as a collection of tasks. In reality, successful delivery behaves more like an operating system — coordinating people, artifacts, and decisions through structured stages and gates.

software deliverydelivery systems
Read →

Software Delivery Is a System of Conditions

Software delivery problems rarely originate during development. They begin when teams move forward before the knowledge required for the next stage of work actually exists.

software deliverydelivery methodology
Read →

The Quiet Collapse of Software Projects

Most software projects do not fail dramatically. They collapse quietly as small gaps in understanding accumulate across the delivery process.

software deliveryproject failure
Read →

More writing on delivery and operations at PreflightOps.