New in Swarmia: Measure the adoption and usage of AI coding tools →

Why we don’t set deadlines at Swarmia (and why you shouldn’t either)

Rebecca Murphey, Field CTO · Aug 14, 2025

Setting deadlines in software engineering is like scheduling creativity. It doesn’t really work, and pretending it does might end up costing you more than you realize — because deadlines don’t tend to produce quality software.

It can be tempting to treat software development like manufacturing: as if there’s a predictable, linear process from idea to shipped feature. But you likely know as well as I do that this approach can not only fail to deliver faster, but can actively make things worse.

The trust erosion, the rushed work, the technical debt that compounds over months ... and for what? A date on a calendar that was never based on reality in the first place.

At Swarmia, we’ve built a culture that mostly rejects deadlines, because of a practical recognition of how software development actually works — and how to get the best results from engineering teams.

Software engineering is the design part, not the manufacturing part

When we set deadlines in software engineering, we’re often misunderstanding the nature of the work.

Writing code is the design part of the process, not the manufacturing part. As Titus Winters from Adobe put it in a recent conversation about software delivery phases, the creative human work part can’t be scheduled like components in a factory process.

Again, the process isn’t linear. You need feedback, you’ll try things that don’t work, and you’ll discover constraints you didn’t know existed.

As an experienced engineer, I can tell you “that should take about a week,” but I can’t say “that will take exactly 42 hours.” Nor should I need to.

I learned this the hard way. My first “real” job was at a newspaper on the night news desk. We had three deadlines every night — real deadlines, where if we missed them, the paper wouldn’t make it onto trucks in time for morning delivery. Those deadlines were motivating and clarifying. They created a common enemy that united the late-night team in purpose.

But newspaper production is manufacturing. Software engineering is not.

The parts of software development that actually are like manufacturing — deployment pipelines, build processes, testing suites — those are exactly the parts we should be automating. It’s exactly why CI/CD exists.

So if and when you find yourself setting deadlines for these repeatable processes, that’s a signal to invest in automation, not project management.

The rare times deadlines aren’t terrible

Yes, some deadlines are real. When we have contractual obligations, those dates matter. Sometimes a critical customer needs a feature by their renewal date. Maybe you work in an agency model where contracts are defined by deliverables at deadlines.

But notice what these have in common? They’re externally imposed by actual events or requirements, not artificially created for “motivation” or “speed”.

And even then, meeting these deadlines is a business decision. It’s perfectly fine to communicate that something will be done “in H2″ rather than committing to a specific date. We accept that risk as a business, rather than pushing it down to engineering teams.

Your deadlines are making things worse, not better

Here’s what I’ve observed over decades of working with and without deadlines:

  • They encourage unsafe behaviors. “We don’t have time for more tests” might be the most expensive sentence in software engineering. Deadlines create permission structures for cutting corners that you’ll pay for. Maybe not now, but someday.
  • They delay productivity improvements. When you’re hurtling toward a deadline, there’s never time to improve your deployment pipeline or internal tooling. The very things that would make you faster get perpetually postponed.
  • They create unsustainably high utilization. Deadlines tend to assume 100% capacity, leaving no room for the interruptions, incidents, opportunistic improvements, and innovation that are necessary parts of the software development process.
  • They foster short-term thinking for products that have long-term ownership costs. Even though nowadays, products can be spun up in minutes at dubious quality, you’re still not building a newspaper that gets recycled tomorrow. Ideally, you’re building software that needs to be maintained for years.
  • They limit a team’s ability to prioritize emerging work. When teams are locked into a fixed deadline, they can’t easily adapt when more important or higher-value work appears. This creates an unnecessary limitation where teams have to choose between meeting their commitment or doing what’s actually best for the business.

All of these outcomes can lead to teams realizing over time that the deadline is meaningless — often the actual launch or integration or whatever Very Important Thing happens weeks later anyway, or sometimes it never does.

Then, people learn that these made-up deadlines don’t actually matter, and they either stop meeting them or meet them with sub-par quality work. The deadline goes from being a “common enemy” to background chatter that gets ignored.

What actually happens when you miss a deadline

When that arbitrary deadline passes and the feature isn’t ready (because of course it isn’t — the date was fiction from the start), here’s what happens:

  • The blame game starts. Product blames engineering for being slow, engineering blames product for unclear requirements, and everyone loses.
  • Engineers start hiding problems instead of surfacing them early. Why raise a blocking issue when you’ll just get pressured to “find a way”?
  • Trust erodes between departments. Each missed deadline makes the next interaction more adversarial.
  • Technical debt gets buried. That hacky workaround to meet the deadline is now a permanent part of your codebase.
  • The next deadline becomes even less realistic because now you’re dealing with the mess from the last one.
  • There’s little time to make changes that would lead to faster delivery in the future.

And all of this damage to your culture, your codebase, your team dynamics — again, for what? To maintain the fiction that software development is predictable?

Deadlines are about mistrust (yeah, I said it)

The origin of deadlines in knowledge work is capitalistic mistrust of workers.

It’s a management technique based on the assumption that you can’t trust people to work without external pressure. When you set artificial deadlines, you’re essentially saying to your team: “I don’t trust you to make good decisions about how to spend your time.”

And wouldn’t you know it: when you treat people like they need to be managed with arbitrary deadlines, they start behaving like people who need to be managed with arbitrary deadlines. They optimize for meeting the date, not for building the right thing. And they make short-term decisions because that’s what the system rewards.

Fixed deadlines and fixed scope are fundamentally incompatible

In knowledge work, something has to give. Either it’s the deadline, or the scope.

If you absolutely must have a deadline, then scope must be flexible. It’s a mathematical necessity.

As you build, you discover new information that should change what you’re building. Locking both the timeline and the deliverable eliminates the ability to incorporate this learning.

When we rigidly adhere to an initial scope defined before any code was written, we’re essentially saying “we don’t want to learn anything new during development.” But that’s the exact opposite of what should happen. We should be learning and adapting as we go.

Learning through the course of the work will — and absolutely should — change the ultimate deliverable. The optimal solution often emerges when teams have the flexibility to incorporate new insights along the way.

If your organization insists on maintaining both fixed deadlines and fixed scope, what you’re really doing is setting up your for one or more risks:

  • Deliver poor quality work that meets the letter of the requirements but misses the spirit of what users actually need
  • Accumulate technical debt that will slow you down more in the long run than if you’d taken the time to do it right
  • Hide the reality of development progress, leading to last-minute surprises when the deadline arrives

What this means in practice is that with a deadline, you prioritize ruthlessly, focusing on delivering the highest-value items first. This way, if and when you reach the deadline, you’ve delivered the most important functionality — even if it’s not everything originally envisioned.

So what are we supposed to do instead?

Now, I know what you’re thinking: “But work expands to fill available time!” And yes, Parkinson’s Law is real. Without deadlines, some work will take longer than it needs to. But it’s still better than the alternative of rushed, untested code that breaks in production. And it turns out there are better ways to create urgency than arbitrary dates.

At Swarmia, we’ve found several alternatives that work better than deadlines:

Time-boxed exploration

Saying “let’s spend no more than a week investigating this” is very different from “this must be done by Friday.” The first acknowledges uncertainty, and the second pretends it doesn’t exist.

Broader commitments that acknowledge reality

  • Quarter-level commitments: “We’ll make meaningful progress on customer onboarding improvements in Q1″ gives teams flexibility while still providing direction.
  • Outcome-based planning: “We’ll reduce churn by X% this half” lets teams figure out the how and when, focusing on what actually matters.
  • Capacity-based commitments: “We’ll dedicate 3 engineers to this initiative for Q2″ acknowledges that time and people are finite resources.

These approaches work because they’re honest about uncertainty while still creating accountability.

Clear shared context

When teams understand the business need, they can make good decisions about prioritization. You can’t make good decisions about how to spend your time without understanding what the business and customers need.

Continuous shipping

We sound like a broken record here, but: monitor your cycle times and ship continuously.

When things are flowing smoothly, the pressure for deadlines often disappears.

This isn’t theoretical for us — our teams maintain healthy cycle time without arbitrary deadlines by focusing on continuous flow, keeping work-in-progress low, and maintaining crucial slack time.

Which, of course, allows us to deliver value to customers quickly, with better quality work and happier engineers.

Cultural rewards for doing the right work at the right time

This requires trusting your teams and building healthy relationships between engineering and product management.

The truth is, in a deadline-free world, you need different motivators. It could be cultural, where you’re rewarded for doing the right work at the right time. It could be incentive-based with bonuses. Or it could be intrinsic, where feeling connected to customers and understanding their needs is the reward.

There will be rare times when people need to flex for the business — like working a weekend when something critical breaks. But that should be extremely rare, not an expectation of 80-hour weeks. And it should be recognized as the exception it is, not normalized into “just how we work here.”

Removing deadlines is not enough

Simply announcing “we don’t do deadlines anymore” is just about as effective as announcing “we don’t do bugs anymore.”

The absence of deadlines creates a vacuum, and if you don’t fill that vacuum with something meaningful, you’ll either end up with chaos or (more likely) deadlines will creep back in under different names.

So with that in mind, there are a few things that you’ll need to constantly work on to get people working on the right things, within a reasonable time frame:

  • Building trust between leadership and teams
  • Creating clear communication channels about business priorities
  • Investing in the automation and tooling that makes continuous delivery possible
  • Accepting that sometimes you’ll communicate ranges or estimates instead of dates
  • Developing a culture that values long-term thinking and sustainable practices

Pick your tools wisely

Deadlines are a tool for transactional relationships and manufacturing processes. Software development is neither.

At Swarmia, we’ve found that trusting our teams, setting clear goals, and maintaining strong connections to business outcomes creates better software, faster, than artificial deadlines ever could — by replacing the stick of deadlines with the carrot of meaningful work and shared success.

Next time someone insists on a deadline, ask them: “What are you really trying to achieve?” If it’s predictability, show them your cycle time metrics. If it’s urgency, show them your continuous delivery process. If it’s coordination with other teams, offer a better way.

If it’s “motivation” for its own sake, what you really need is trust, clarity, and better communication — not a date on a calendar.

Your alternative to arbitrary dreadlines?
Visibility. With Swarmia, you get real-time insights into cycle time, bottlenecks, and team flow — so you can ship based on data, not dates.
Learn more
Rebecca Murphey
Rebecca Murphey helps Swarmia customers navigate people, process, and technology challenges in pursuit of building an effective engineering organization.

Subscribe to our newsletter

Get the latest product updates and #goodreads delivered to your inbox once a month.

More content from Swarmia
Rebecca Murphey · Oct 30, 2023

Reduce interruptions to help engineers stay in flow

Interruptions — anything that yanks a developer out of that elusive “flow” state — can appear out of nowhere. They’re often untracked and underestimated in their ability to derail focus and…
Read more
Ari-Pekka Koponen · Oct 5, 2021

Well-researched advice on software team productivity

Understanding how individual people and productive teams behave is crucial for improving team performance. Often, it can be hard to distinguish ideological advice from insights grounded in…
Read more