Engineering Goals That Don't Evaporate
Setting and holding quarterly goals when every sprint is already on fire
#SoftwareEngineering #EngineeringManagement #Agile #TeamProductivity #Leadership

We write quarterly goals in a kickoff deck. We stack five "P0" objectives so nobody feels left out. We call them OKRs, themes, big rocks — whatever the company vocabulary is this year. Then we run twelve sprints of Sev-2s, partner asks, and "just this one" threads. At the quarter review we discover the goals evaporated. We schedule a better OKR workshop.
That's the loop. The workshop is not the fix.
The people who write goals and the people who hold them are doing different jobs. Writing optimizes for articulate ambition. Holding optimizes for capacity that still exists in week nine. Most orgs promote the first skill and pretend the second is "discipline."
Wallpaper Goals
A wallpaper goal looks serious on slide three and spends zero headcount on the board.
Google's own OKR playbook draws a hard line here: committed OKRs are ones you agree will be achieved — and you are willing to adjust schedules and resources to deliver them. Aspirational OKRs describe a world you want without a clear path or the resources to get there. Mix the labels and you get the classic failure: teams don't reprioritize for a "stretch" that was actually a promise, or they panic-staff a moonshot and starve the real commitments.
That's wallpaper with better vocabulary: every goal labeled ambitious, none of them consuming a named slice of the team.
re:Work's guidance is blunt on count: pick three to five objectives — more over-extends teams and diffuses effort. Atlassian's playbook goes thinner still: one to three objectives. Five P0s is not ambition. It is camouflage.
If you can delete the goal from the deck and the sprint board still "makes sense," you never had a goal. You had wallpaper.
More goals make evaporation faster. Thin goals with reserved seats beat ambitious wallpaper.
Evaporation Diagnostic
By week six, evaporation usually shows one of three faces.
Too many P0s. Everything is critical, so nothing is reserved. The board fills with whatever yelled loudest this morning. The quarterly doc becomes archaeology. You can spot this in planning: the team forecasts a full sprint of "must" stories and still nods at three platform goals that have no tickets.
Interrupt load with no budget line. Production support, partner escalations, and "quick" security patches arrive as surprises even though they arrive every sprint. Capacity planning that ignores time for unexpected interruptions is how you over-commit on day one. Vendor models that leave interrupt work out of the plan fail the same way — protect a buffer and do not commit it to roadmap work.
No public kill switch. Goals die quietly. Nobody records the trade. The quarter review pretends the goals "almost shipped." Next quarter inherits the same fiction — plus a reputation that engineering "doesn't hit OKRs," which usually means engineering was never staffed to hit them.
Firefighting is not the villain. Unbudgeted firefighting is.
If reactive work honestly owns most of the team's time, forward-looking quarterly build goals are theater — they fail, then demoralize. The honest move is fewer (or no) build goals until capacity stabilizes, not a prettier OKR template.
The Capacity Contract
A Capacity Contract is a goal that spends headcount.
Not a vibe. Not a priority adjective. A named reservation: this objective owns N% of sprint capacity (or N engineer-weeks per sprint) until the team renegotiates in public.
Google's playbook says committed OKRs should credibly consume most — but not all — of available resources. If you cannot credibly promise delivery, escalation is required, not optional. That is the contract in institutional language. On an engineering board it looks simpler: a swimlane that does not disappear when Slack gets loud.
Worked example — payments squad, Q2
Six engineers. Q2 goal: cut ledger reconciliation from four hours to thirty minutes. The board is permanently full of Sev-2s and partner asks.
Without a contract, the reconciliation work never starts. Everyone agrees it matters. Nobody has a seat.
With a contract: 20% of capacity — roughly one engineer-week per sprint — is reserved for the reconciliation lane. The lane is visible on the board. Standup asks one question about it every day: did the reserved lane move?
The other 80% still absorbs fire. Fine. The goal was never "stop the fire." It was "stop pretending the fire is the whole plan."
Failure mode: leadership agrees to the percentage in the kickoff, then treats every inbound as exempt. The contract is only real if "exempt" traffic still forces a named trade — which goal shrinks, or which interrupt budget grows. Without that, you have a percentage on a wiki page and wallpaper on the board.
Stretch still exists — inside the reserved lane. Stretch instead of a reservation is wallpaper with better fonts.
Interrupt Budget
Name support as planned capacity, not "extra."
Scrum capacity planning already lists unexpected interruptions as an input to what you can forecast. Treat that line as an Interrupt Budget: a percentage (or rotation) the team expects to spend on production and inbound asks. Some teams staff it as a rotating interrupter. Others carve a fixed WIP slice. The shape matters less than the honesty.
When the budget blows — buffer consumed every sprint — you do not "try harder." You revisit the assumptions. Either the interrupt estimate was fiction, or the Capacity Contract was fiction. Pick one to renegotiate.
What you do not do is silently steal the goal lane to look responsive. That is how evaporation gets a hero narrative: the team "saved the quarter" on incidents and somehow still gets graded on the wallpaper goals that never had seats.
Mid-Quarter Renegotiation
Holding a goal is not the same as freezing a deck for ninety days.
Legitimate change triggers exist: the world shifts, significant new information reshapes priorities, or a key result becomes irrelevant (code freeze, lost dependency, partner outage that burns two sprints). The bar should be high. A shiny new idea is not enough.
Fear of missing is not a trigger. Changing goals because you are afraid you will fall short is sandbagging.
The ritual
When evidence hits the bar, someone with authority calls Mid-Quarter Renegotiation — same doc the exec saw at kickoff, not a side Slack.
- Keep — Capacity Contract stays; interrupt budget may grow by shrinking something else.
- Shrink — same objective, smaller key result, same reserved lane percentage or a reduced one written down.
- Kill — goal removed; capacity returns to interrupt or to another contracted goal.
Record the trade in the channel where the new ask arrived. "Yes, and we drop dashboard polish" beats "yes" followed by quiet death of the real goal.
If nobody with authority will call the ritual, you do not have a holding problem — you have a governance problem. The Capacity Contract cannot survive a culture where every ask is sacred and every trade is career risk. Name that. Do not paper it with another OKR template.
re:Work already recommends mid-quarter check-ins and revisiting OKRs a few times a quarter as a calibration tool — abandon what is clearly dead, add attention where it still matters. The ritual is that advice with a paper trail.
Worked example — week 7
Partner API outage burns two sprints of the payments squad. EM calls renegotiation. Team keeps the reconciliation Capacity Contract at 20%. They kill a secondary "dashboard polish" goal that was already wallpaper. Both decisions land in the kickoff doc. The quarter review will not pretend polish "almost shipped."
At sprint scale, Scrum already models the same honesty: negotiate backlog scope without endangering the Sprint Goal — or abandon a goal that became obsolete. Quarterly holding is the same muscle with a longer clock.
Holding Practice
You do not need another framework. You need a thin weekly habit that survives a loud Slack.
- One thin goal beats five wallpaper goals. If you cannot reserve capacity for it, it is not a goal yet — re:Work and Atlassian both cap objective count for a reason.
- Put the Capacity Contract on the board as a first-class lane. If it is not visible, it is not real.
- Fund an Interrupt Budget before you fund ambition. Unbudgeted support eats everything else.
None of these are optional garnish. Skip any one and the quarter reverts to wallpaper.
- Ask weekly: did the reserved lane move? If not for two sprints, you are already evaporating — renegotiate or admit the contract was fake.
- Renegotiate in public when the bar is met. Quiet death is the anti-pattern this whole piece is about.
None of this makes the fire go away. It makes the fire invoiceable — and it makes the goal something other than a slide.
Goal-writers leave the kickoff feeling aligned. Goal-holders leave week nine with a lane that still moved.
A goal that does not spend capacity is not a priority. It is decoration.
More in Lead
The Rewrite Decision
Whether you rewrite or refactor is a bet you're asking a room to fund — and most of us pitch it like it's a matter of taste.
8 min · July 3, 2026
ADRs Nobody Reads (And How to Fix That)
Architecture Decision Records that stay alive — what makes docs get read vs quietly rot
6 min · June 24, 2026
Stop Measuring Technical Debt. Start Pricing It.
Seventeen engineering metrics and zero dollars kills proposals in thirty seconds — here's the carry-cost worksheet that turns one module into a line item.
4 min · June 12, 2026