The costly mistakes in software tend to be made in one phase and paid for in another. A design that never asked how its feature would be tested, deployed and watched in production usually passes its review. The bill arrives later, in whichever phase it skipped.
In a 2020 draft on architecture and design, I wrote that the design phase is already the time to think about how a feature will be developed, tested, built, deployed, monitored and changed. This page reads the whole lifecycle that way, as one piece of work. Each of the nine phases gets a question to ask, one principle to carry, and, where the site has earned them, up to two supporting lines. Build and Deliver carry one line each. They are the two phases this site has written least about, and padding them would only hide the gap.
Read a phase before it starts, while its principle is still cheap to follow. The phases themselves are defined in How Software Gets Built, what AI changes inside each one is mapped in AI Across the Full SDLC, and the long-form essays for each phase are being written, one at a time, in Part VI of Technical Excellence.
The Nine Phases
Analyze
What is the problem, who has it, and is it worth solving?
A proposal that only lists benefits was not analyzed; it was sold.
An estimate does not need to be right. It needs to be close, fast, and defensible enough that the room moves on to the actual decision instead of arguing about the arithmetic.
from Precision Is Not the Point
Design
What shape will hold, and what will each choice cost later?
Decide on merit, not momentum.
Drawing service boundaries is drawing team boundaries.
from When Architecture Becomes a Leadership Problem
Develop
Will the next person be able to read this, and change it safely?
Good enough is a number we agreed on, not a question of who feels most strongly in the review.
Readability is not a courtesy to yourself. It is a bill you either pay now or hand, with interest, to whoever inherits the code.
from Five Stepping Stones to Systems That Last Outsource the typing if you like. Never outsource the answer to the only question that matters when it breaks.
from You Cannot Prompt Ownership
Test
What do we know works, and what are we only assuming?
A partial with its reason written down is worth more than a pass you rounded up.
Redundancy you never exercise is not insurance. It is a guess wearing a confident face.
from Nobody Promised You 100% Uptime
Build
Can the same source produce the same artifact, every time?
Writing the code feels like the finish line. It is closer to the starting gun – almost everything expensive happens after the commit lands.
Deploy
Can this change reach production on an ordinary afternoon?
The goal is not to deploy less often to reduce risk. The goal is to reduce the risk in each deployment so much that you can deploy as often as the work demands.
The cloud was up. We were the incident.
from Nobody Promised You 100% Uptime If a change would break a consumer, it did not ship.
from Your API's Users Are Developers
Monitor
When something fails, who finds out first, and how fast can they find it?
The code is what you count. The request id is what you find.
An alert that fires when nobody is on call is not an alert. It is a diary entry.
from The Signal Didn't Stop Your load balancer knows if your API is slow. Your error tracker knows if your API crashes. Nothing tells you if your AI feature is confidently wrong.
from 8 Forces Reshaping How Software Gets Built
Deliver
Did the value reach the person it was meant for?
We were not processing transactions. We were keeping promises that people did not even know they were trusting us to keep.
Change
When the ground moves, can the system and the decisions behind it move too?
The category is a decision. The tool is a lease.
"Our monolith has run for seven years, why modularise it now?" Those seven years are the bullet holes on the wing: proof of what it survived, not proof of what it can still take.
from The Planes That Didn't Come Back