An independent perspective · October 2026
A manifesto for
software delivery
in the age of AI
Faster code generation becomes a delivery gain when we redesign how changes earn confidence and move into production.
Generating an implementation is one part of delivering software. The work also includes establishing that it behaves as intended, understanding its consequences, and making it useful to people. As code generation accelerates, these responsibilities deserve deliberate design.
Six commitmentsDelivery is the outcome
Judge progress by useful changes reaching people, the effort required, and the quality sustained afterwards. Read throughput alongside time to production, failures and rework. Keep the software understandable enough to change again.
Confidence needs evidence
Connect checks to intended behavior and real dependencies. Challenge assumptions shared by generated code and generated tests. Make the evidence, its limits, and the decision it supports visible at each handoff.
Automation must change the work
Automate validation and review wherever they can provide dependable evidence. Give every control a purpose. Decide what work it replaces, what it makes possible, and where additional inspection still adds value.
Trust is earned together
Give people timely feedback and clear expectations for relying on it. Investigate why they repeat checks. When a defect escapes an agreed process, take responsibility for repair and improve the process that allowed it through.
Scrutiny follows consequences
Choose review depth, test independence and release controls according to the harm a change could cause, how quickly failure would be detected, and whether its effects can be reversed. Make responsibility for the decision explicit.
Learning outlives the change
Turn failures into maintained tests, realistic examples and shared knowledge. Give that knowledge an owner. Help the next engineer and agent begin with what the organization has already learned.