Back to insights

A Journeyman's Guide to Three-Week Sprints

October 22, 202617 min read

A three-week sprint that ends in production is fifteen working days, and the decisions that matter run on a clock counted back from release. I look at that release clock, the three paths to production, and why the business owns the risk decision while engineering owns the accuracy of the risk assessment.

Leadership Philosophy Series — 14 articles
  1. The Power of Lifelong Learning
  2. AI and Critical Thinking in Software Development
  3. Sidetracked by Sizzle: Staying Focused on True Value
  4. The Managed Transition Model: Leadership Promotion as Power Exchange
  5. When the Pressure is On - Late Sprint Hotfix Governance
  6. Accountability and Authority: Walking the Tightrope
  7. Turtling: When a Team Stops Looking for the Door
  8. Every Arm Is Still Searching: The Octopus Model of Agency
  9. The Dependencies I Never Upgraded
  10. The Beaver Builds a Pond
  11. The Shark Stops Evolving When It's Done
  12. The Engineering Zoo: When the Dashboard Gets Better but the Zoo Does Not
  13. Tactical Excellence, Strategic Truth: Who Checks Whom
  14. A Journeyman's Guide to Three-Week Sprints

Filed under Leadership and systems thinking

Topic cluster

Project Leadership and Delivery

Project Mechanics, leadership judgment, delivery accountability, and team operating models.

"We're Almost Done"

I've sat in more release meetings than I can count where someone announced, with complete sincerity, that the team was almost done. Sometimes that was true. Sometimes the work wasn't even close, and nobody in the room knew it yet, including the person saying it.

Across waterfall projects, Agile transformations, Scrum teams, continuous delivery, and more variations of methodology than I care to count, the release-time decisions that mattered most were rarely technical. They were business decisions informed by technical realities.

That shapes how I think about the job. A good solution delivery leader is responsible for more than shipping software. The harder responsibility is making sure the people paying for that software understand their choices while those choices still exist. Three-week sprints are where I've seen that responsibility tested most often, so that's where I want to look at it.

Somebody Is Paying for This

Whether you're a consultant serving an external customer, an architect supporting internal operations, or a developer on a product team, somebody is paying the bills. There's a business owner who expects a return on the investment being made in the software, and that relationship sits underneath everything else.

It's easy to lose sight of when the days are full of user stories, pull requests, sprint commitments, and deployment schedules. Teams start talking about velocity, rollover, regression coverage, and release readiness as though those were the objectives. They're instruments. The objective is business value, and the business owner is the person who has to balance the cost, timing, expected value, and risk of delivering it.

My responsibility as a technology professional is to give that owner what they need to make an intelligent decision. That rules out making the decision for them, quietly leaving out the inconvenient details, and presenting every engineering preference as an absolute requirement.

A Choice Beats a Verdict

Clients rarely appreciate being told they have no options. "We can't release that." "It has to roll into the next sprint." "QA says no." Each of those may reflect a legitimate concern, but on its own it hands the business a verdict with nothing left to decide.

A more useful conversation lays out the paths. The change can go in the scheduled release, it can finish validation and ship as a fast follow, or, if the business impact justifies it, it can go out through an expedited release outside the normal schedule. Each path has a risk, a cost, a timeline, and an expected outcome, and the business owner deserves to hear all four.

The paths are rarely equally attractive. Some carry unacceptable risk, and some need more work before they're even feasible. That's exactly why the conversation matters. A client doesn't need me to pretend every option is safe; they need me to explain what each option actually means, while there's still time to choose.

Fifteen Working Days, Counted Backward

I like three-week sprints for certain kinds of work. They're long enough to finish something meaningful and short enough that delivery doesn't drift far from feedback. What I've noticed, though, is that people sometimes treat a three-week sprint as three weeks to write code.

If the sprint ends in a production deployment, those fifteen working days also have to hold requirements clarification, code review, integration, testing, regression, deployment preparation, and release approval. All of that is part of delivering software, and all of it consumes calendar.

The habit that has helped me most is reading the sprint backward from the release. Instead of asking how much development fits in three weeks, I ask when each decision has to be made for the release to stay safe and predictable.

The Release Clock

Picture a three-week sprint with a production deployment on its final day, and count working days back from that deployment. Here's the release clock I use, as a practical set of checkpoints:

Working Days Before ReleaseThe Conversation I Want Happening
D−10Are the requirements understood, and are the dependencies manageable?
D−7Is implementation moving toward integration and testing?
D−5What can realistically be included in this release?
D−3What has regression testing revealed so far?
D−2Which release decision best balances business value and risk?
D0Deploy, monitor, and verify production.

D−10 falls at the end of the first week, which means the requirements and dependency questions should be settled before the second week starts. By D−5, only a working week remains, and the honest answer to "what's in this release?" is usually already visible.

That ordering has an obvious gap: the scope call at D−5 comes before regression testing reports at D−3. I treat D−5 as the point where scope stops growing. Regression results after that can take work out of the release, but they can't add work to it. Anything that already looks shaky at D−5 goes to the business owner then, as a likely fast follow, so a bad result at D−3 confirms a risk they've already heard about. Pulling a story at D−3 costs more than pulling it at D−5, but far less than finding the problem on release day.

These aren't universal deadlines. Different applications, organizations, and deployment pipelines need different windows. What matters is that the whole team shares an understanding of when decisions become consequential.

Five working days out, the business has options. Two days out, several of those options have become more expensive. On release day, the list can be very short. The technology usually hasn't changed across those days; what has changed is the time available to understand and validate it. Time remaining before release belongs in the risk equation as surely as test coverage does.

What "Almost Done" Hides

I've written plenty of code that was almost done, and I've learned that the last tenth of a change can take longer than the first nine. Integration testing turns up a dependency nobody expected. A change in one service breaks a workflow in another. QA finds a condition nobody thought to test. Or the team discovers that the requirements weren't quite what the business meant.

That's why I care about the delta. What changed, why did it change, what else could it affect, and what evidence shows it behaves correctly? Those are engineering questions with business consequences.

If I tell a business owner a feature is almost complete, I owe them a clearer picture of what remains. "Development is finished, but integration testing hasn't started" and "All acceptance tests pass, and one regression scenario is left to verify" could both be described as almost done. They carry very different risk, and a good delivery partner makes sure the business hears the difference.

Three Paths to Production

As work approaches a release deadline, I try to keep the options simple. In most situations, three release strategies are worth considering. I explored the hotfix end of this in When the Pressure Is On through a composite engineer named Dave. Here I'm more interested in how all three look from the business owner's chair.

The Scheduled Release

When the work is ready, this is the normal outcome. The feature or fix is complete, testing has built reasonable confidence, and the team can stand behind including it in the planned deployment. The business gets its functionality on schedule, and the technology team delivers it at an acceptable level of risk.

The calendar doesn't make something ready, though. Readiness comes from evidence.

The Fast Follow

When the feature is important but not quite ready, the team can separate it from the planned deployment, finish the work, complete validation, and ship it afterward, a few days later or in the next sprint.

The business feels that delay. A marketing campaign may depend on the feature, an operations team may have prepared for a process change, or a contractual commitment may be riding on the date. Those consequences are real, and a concern about testing doesn't make them go away. The job is to explain the added risk of forcing the change into the scheduled release, the cost of delaying it, and what the fast-follow timeline would actually look like, so the business can weigh the trade-off with full information.

The Expedited Release

When the business can't reasonably wait for the next planned deployment, an expedited release outside the normal schedule may be the right call. Most often that's a hotfix for an active production defect that is hurting customers, blocking transactions, or creating material operational or compliance exposure.

The engineering realities still apply. Before anything ships, I want to know whether the correction can be isolated, whether the root cause is understood, whether the fix has been tested, what existing functionality it could touch, and whether the team can recover if the deployment misbehaves.

An expedited release deliberately accepts extra operational risk because waiting would cost more. It suits two kinds of work: production defects, and validated features whose delay would cost more than the risk of an off-cycle deployment. It isn't a route for enhancements that skipped validation, and it shouldn't be presented as risk-free because the business considers it urgent.

Who Owns Which Risk

This is where the client-provider partnership matters most. Technology professionals are responsible for understanding and communicating technical risk. The business is responsible for weighing that risk against value, commitments, customer expectations, and financial consequences. Neither view is complete without the other. Engineering may know that a change has had only limited regression testing, while the business knows that delaying it will break a promise to a major customer. A good decision needs both facts.

That doesn't let a business owner declare untested software safe. Some controls are non-negotiable: regulatory requirements, security obligations, clinical safety constraints, and the organization's own release authority all still apply. Those boundaries don't eliminate choice, though. They define the conditions under which each choice is available. Within them, the business may delay a feature, narrow its scope, fund more validation, renegotiate an external commitment, or accept a documented level of residual risk.

The business should own the business risk decision. Technology must own the accuracy and integrity of the technical risk assessment.

This raises a fair question: how does a business owner who can't read a test report know the assessment is accurate? I don't expect them to take it on faith. The assessment should arrive as evidence a non-engineer can follow: which scenarios were tested, which weren't, and what failed. Over time, the business can also compare past risk calls with what actually happened in production, which is where the trust I describe later comes from. And when the business chooses a path engineering advised against, I want the decision and the assessment written down side by side, so the outcome is judged against what was known at the time and blame doesn't drift to whoever is easiest to point at. That split is what makes the partnership work.

Bad News Has a Shelf Life

One of the harder lessons in delivery is learning to have the uncomfortable conversation early. Nobody wants to tell a Product Owner that a feature won't make the release, disappoint a client who has been waiting, or explain why a story picked three weeks ago is still open. It's tempting to keep pushing and hope it all comes together, and sometimes it does.

Waiting until the final day to report a problem suspected for a week takes choices away from the business. A Product Owner who hears about a likely delay at D−5 can reduce scope, reorder priorities, renegotiate a customer commitment, accept a fast follow, or decide the impact justifies an expedited release once the work is ready. A Product Owner who hears about it thirty minutes before the release decision has lost most of those options.

An early warning can turn out wrong, so I raise it as a risk with a confidence level attached, and a false alarm costs a short conversation instead of credibility. Bad news delivered early creates choices; bad news delivered late creates surprises.

Keeping Score Without Playing to the Scoreboard

Most software organizations measure some mix of delivery predictability (did the team deliver what it forecast?) and production quality (does what it deployed behave reliably in the live environment?). Somebody is keeping score, and dashboards and performance reviews are a fact of professional life.

The scorecard still shouldn't sit at the center of the release conversation. A customer doesn't care whether a team found a clever way to protect its sprint completion percentage. They care whether the solution meets their business needs and whether it works.

When a story rolls into the next sprint, either the forecast was wrong or circumstances changed, and it's worth understanding which. When a rushed change causes a production defect, that's a different and usually more expensive problem. A one-day delay to finish regression testing may be entirely reasonable. A one-day delay that triggers a significant contractual penalty may justify looking at other approaches. A minor enhancement never justifies a risky emergency deployment, while a defect stopping thousands of customers from completing a critical transaction might.

No option on the table removes risk entirely. The aim is to make sure the people accountable for business outcomes understand which risks they're choosing among.

When Pushing Is the Right Call

None of this is an argument for delaying anything that isn't perfect. I've worked with teams that could turn every uncertainty into a reason not to deliver, and that isn't useful either.

Sometimes the right answer is to push. A small, isolated change with a well-understood impact, strong automated test coverage, and a realistic window to finish validation is a good candidate. Concentrating the team on it can make perfect sense: a focused code review, QA prioritizing the affected scenarios, a lower-priority story deferred to make room. Those are legitimate decisions.

There's a difference, though, between concentrating effort to finish known work and hoping untested work won't cause a problem. The first is execution and the second is gambling, and engineering leadership has to show which one is happening rather than simply assert it.

What a Release Briefing Sounds Like

What I want at release time is a short conversation with the right people and the right information, rather than a hundred-page governance manual, another committee, or a readiness meeting where everyone recites status and nobody decides anything. Picture a delivery lead at D−2, the Thursday before a Monday release, talking to the business owner about a feature scheduled to ship:

"Implementation is complete, but regression testing turned up an integration concern. The team expects to resolve it, but not inside the normal validation window. There are three ways to handle Monday.

"The feature can stay in the scheduled release, with a compressed testing window and a go/no-go call on Friday based on whatever evidence exists by then.

"It can come out of Monday's release and ship separately once validation is complete.

"Or, if waiting costs the business enough, it can go out in an expedited release once the correction is made and validated, ahead of the next scheduled deployment.

"Here's how I'd rate the risk of each, how confident I am in each timeline, and which one I'd recommend. What business commitments or customer impacts should weigh on the decision?"

The business owner's answer might be:

"What matters is a customer launch at the end of next week. Monday was just the first release that could carry it. Pull it from Monday, finish validation, and ship it as a fast follow midweek. I'll let the account team know the date moved by a few days."

In that exchange, the technology side brought facts, alternatives, a recommendation, and boundaries. The business side brought the one fact engineering didn't have: the date that actually mattered was later than the release date. Together they chose the fast follow, and afterward everyone knew what was decided and why.

Trust Gets Built Before Release Week

Part of this doesn't fit neatly into a process diagram. I've worked with business partners who gave engineering teams tremendous freedom because they trusted the team's judgment. I've also worked in environments where every missed deadline triggered an escalation, every estimate was treated as a promise, and every technical concern became a negotiation.

Trust doesn't mean the client always agrees with engineering. It means that when engineering says a release carries real risk, the client believes the assessment rests on facts rather than convenience. It runs the other way too: when the business says a deadline matters, engineering treats that commitment as its own problem instead of somebody else's.

That kind of trust accumulates slowly, through realistic forecasts, problems raised early, commitments kept, mistakes acknowledged, and a willingness to recommend the option that isn't easiest for the team making the recommendation. A delivery partner who always recommends delay is hardly more useful than one who always promises the deadline. The value is in the judgment between those two habits.

Retrospectives Tune the Clock

I don't like rollover, failed deployments, or emergency hotfixes, and I've lived through enough of all three to know that stronger policies won't eliminate them. Learning is what reduces them.

If stories regularly miss the D−5 cut, planning or refinement probably needs work. If testing keeps becoming the bottleneck between D−3 and D−2, integration is probably happening too late, and the checkpoints may need to move earlier for that kind of work. If emergency changes keep destabilizing production, the gaps are likely in isolation, automated regression coverage, or deployment controls. And if the business is regularly surprised by release decisions, the problem is communication more than engineering.

Those are the questions I want a team working through in its retrospectives, rather than who caused the rollover or who closed too few stories. What could change so the next sprint delivers more value, more reliably? An iterative process is supposed to iterate on how people work together, and the software is only half of that.

The Journeyman's View

After decades of this, I still don't believe there's a universal formula for the right release decision. I wish there were; it would make life considerably easier. Every application has different dependencies, every customer has different priorities, every organization carries different risks, and every release happens under slightly different circumstances.

That's why I'd rather work from a few clear principles and a good working relationship than from a mountain of procedure. Know how much time remains on the clock, be honest about what's actually ready, put real choices in front of the people accountable for the outcome, and then execute their decision professionally. Sometimes that means pushing and delivering on time. Sometimes it means a fast follow, and sometimes a production issue justifies a hotfix through the expedited lane. Occasionally, even after a thoughtful decision, a release still goes badly, and that is part of the work too.

I've long believed that a good solution architect helps solve the problem and then gets out of the way. Delivery governance deserves the same treatment: give people the information, structure, and confidence to make good decisions, and keep the process from becoming the problem. Somewhere behind every sprint there's a client trusting the team to help their business succeed, and after all these years, earning that trust is still the part of this profession I enjoy most.

Explore More

Working through something similar?

If this maps to something you're working on, I'm glad to compare notes. Start with the system and the constraint that matters most.