← cd ../blog

Friday Deploys: It's Not About the Day

A take on why the real question isn't when you deploy — it's how.

| 7 min read
#engineering-culture #devops #ci-cd #observability #leadership

Every engineer has heard it. Someone’s about to merge a PR at 4:30 on a Friday afternoon and suddenly a senior dev leans over: “You’re not going to deploy that today, are you?”

The “no deploy on Friday” rule is one of those pieces of tribal wisdom that gets passed down like a sacred text, rarely questioned, rarely re-examined. I used to follow it too. Then I started asking myself: what problem is this rule actually solving? And is it still solving it?

My answer now is: it depends — but for most modern teams, the rule is doing more harm than good. Let me explain why, and what I think we should care about instead.

Where the rule came from — and why it made sense

To be fair to our past selves, the “no Friday deploy” rule wasn’t invented by cowards. It was born out of real, painful experience.

In an earlier era, deployments were massive, manual, infrequent events. Developers would accumulate weeks of work, hand-craft a deployment script, FTP files to a server, restart processes by hand, and hold their breath. If something broke, rolling back meant doing the whole thing in reverse — also manually. The blast radius of a failed deployment was enormous, and debugging meant untangling several weeks’ worth of interleaved changes.

In that context, deploying on a Friday made no sense at all. You were betting the weekend on a coin toss. The rule was sound.

But that context no longer describes how most software teams work.

The world has changed

Modern engineering teams deploy differently. Continuous integration catches broken builds before they ever touch production. Automated test suites validate behavior on every commit. Feature flags decouple deployment from release, so shipping code doesn’t automatically mean turning a feature on. Rollbacks take seconds. Canary releases and staged rollouts let you expose changes gradually and monitor their impact in real time.

Some of the most sophisticated engineering teams in the world reached a point where they could deploy hundreds of times a day. That wasn’t recklessness — it was the result of deliberately building infrastructure to support it: monitoring, alerting, lean testing strategies, push-button rollbacks. The risk profile of each individual deployment dropped dramatically precisely because those deployments were small and frequent.

The fear of frequent deployment usually comes from extrapolating the experience of the old, risky kind. Once teams actually live with CI/CD for a couple of weeks, the anxiety fades. Deployments stop feeling like events and start feeling like commits. When that’s your reality, what does “don’t do it on Friday” even mean?

The perverse effects of the rule

Here’s what actually happens when teams follow a blanket “no Friday deploy” policy.

First, you create batch pressure. If nothing can ship on Friday, then everything that was in progress on Thursday gets held until Monday. That Monday deployment is no longer a small, targeted change — it’s a collection of everything that didn’t quite make it out the week before. You’ve recreated exactly the batch deployment anti-pattern that made Friday deploys dangerous in the first place, except now it happens every Monday.

Second, you make emergency Friday deploys far more dangerous. If your pipeline isn’t designed to handle Friday releases, but a critical security patch drops at 3pm Friday, now you’re doing an exceptional, off-script deployment under time pressure, possibly on infrastructure that hasn’t been touched since Tuesday. The very thing you were trying to avoid.

Third, you create perverse incentives. A developer who isn’t sure about a change might wait until Friday to merge it, knowing it won’t touch production until Monday — effectively using the deploy freeze as a hidden staging period. That’s a dangerous practice masquerading as caution, because if someone does need to ship something urgent on Friday, that untested change goes along for the ride.

The real risks worth taking seriously

None of this is to say that Friday deployments carry zero risk. They carry risks that deserve honest assessment.

Team availability is a genuine concern. If something does go wrong at 5pm on a Friday, the people who know the system best are about to disconnect for the weekend. The risk here isn’t the deployment itself — it’s whether your team has the on-call coverage, monitoring, and rollback capabilities to handle an incident with reduced staffing. If you do, deploy. If you don’t, the problem isn’t Friday — it’s that you’re not ready to deploy safely on any given afternoon.

Customer trust is real too. A production incident that starts Friday evening and bleeds into Saturday erodes confidence in ways that a Monday incident, fixed by Tuesday, often doesn’t. This is a business context question more than a technical one.

These are legitimate considerations. But notice that neither of them says “don’t deploy on Fridays.” They say “make sure your deployment infrastructure, monitoring, and on-call processes are mature enough to handle any deployment at any time.” That’s the actual problem to solve.

What we should talk about instead

The “no Friday deploy” rule is really a proxy for a set of deeper questions that teams should be asking explicitly:

Do we trust our deployment pipeline? If a deploy requires a checklist, a babysitter, and crossed fingers, the problem is the pipeline — not the day of the week. Automate the risk away rather than avoiding the deploy.

Do we have observability? Can you know within minutes if something went wrong? Do your alerts mean something, or are they drowned in noise? Good monitoring is more valuable than exhaustive pre-deploy testing. You can afford to ship when you can see problems immediately and fix them fast.

Do we have feature flags? Decoupling deployment from release is one of the most powerful practices a team can adopt. You can ship code on Friday afternoon that does nothing until you flip a switch on Tuesday, at which point you have full team availability to monitor the rollout.

Do we have a rollback story? Not “we could roll back in theory” but “we’ve done it, it takes two minutes, anyone on the team can do it.” If yes, Friday is fine. If no, fix that.

How big is this change? The question of change size matters far more than the day. A small, well-understood fix to a non-critical path, shipped Friday with good monitoring, is safer than a large architectural refactor shipped Monday morning without feature flags or rollback tooling.

A note on team culture

There’s also something worth saying about what the rule signals culturally. When a tech leader enforces “no Friday deploys” as a blanket policy, they’re implicitly communicating that deployments are inherently dangerous, that the team can’t be trusted to make good judgment calls, and that the safe move is always to wait.

That’s not the culture of a high-performing team. High-performing teams treat deployment as a non-event. They ship small, they ship often, they monitor carefully, and they fix things fast when they break. They don’t accumulate work and batch-release it in anxiety-inducing ceremonies.

As the book Accelerate documents extensively, deployment frequency is one of the strongest predictors of overall team and organizational performance. Elite teams deploy multiple times per day. They also have shorter lead times, lower change failure rates, and faster time to restore service when incidents happen. The causation runs both ways: frequent deployment forces you to build the practices that make deployment safe, and safe deployment enables you to ship more often.

So, should you deploy on Friday?

If you’ve built your team and your infrastructure to the point where deployment is routine, monitored, and recoverable — yes, deploy on Friday. The day is irrelevant.

If you haven’t — don’t deploy on Friday, but also don’t deploy on Tuesday under false confidence. Fix the underlying problem: your pipeline, your observability, your rollback process, your deployment size.

The conversation worth having with your team isn’t “what day should we deploy?” It’s “what would need to be true for us to feel comfortable deploying any time, any day?” Start from there, and work backwards to build it.

Friday deploys aren’t the enemy. Fragile processes are.


If this resonated, I’d love to hear how your team handles deployment culture — reach out directly.