← Back to Blog

Why Does No Project Ever Go the Way We Planned?

Rulian from Bonjour 5 min read
project reality scope creep planning reality estimates uncertainty

Every project starts with a plan.

You define the scope. Estimate the work. Build a timeline. Get buy in from stakeholders.

Then you start building. And within days, the plan is already wrong.

The feature is more complex than expected. A key person gets sick. Requirements change. Technical debt surfaces. A dependency slips.

By the end, the project looks nothing like the original plan.

Why does this happen every single time?

The Illusion of Control

Plans give us the illusion of control. If we think hard enough, document thoroughly enough, estimate carefully enough, we can know what will happen.

But software projects are inherently uncertain.

You're building something that doesn't exist yet. You're solving problems you haven't seen before. You're coordinating people with competing priorities.

There's no way to plan for every contingency. The plan is a guess. Sometimes an informed guess, but still a guess.

What We Don't Know

Here's what we underestimate when we plan:

Technical complexity: "This should be simple." Then you discover the API doesn't support what you need, the library has bugs, and the database schema needs refactoring.

Scope creep: "Just one more thing." Stakeholders add requirements. You discover edge cases. The definition of "done" keeps expanding.

Human factors: People get sick. They leave. They're less productive than expected. They misunderstand requirements.

Dependencies: Your work depends on another team. That team is delayed. Now you're delayed.

Unknown unknowns: Things you didn't even think to plan for. A security vulnerability. A performance issue. A compliance requirement.

Plans assume we know what we don't know. But we can't plan for what we can't anticipate.

The Planning Fallacy

Psychologists call it the "planning fallacy": we systematically underestimate how long things will take, even when we know we tend to underestimate.

Why? Because we plan based on the ideal scenario:

  • No bugs
  • No scope changes
  • No interruptions
  • No technical surprises
  • No people issues

We plan for the best case and call it the expected case.

Then reality introduces friction at every step, and we wonder why we're behind schedule.

The Compounding Effect

Small deviations compound.

Task A takes 20% longer than expected. That delays Task B. Task B reveals a problem that requires rework on Task A. Now you're 40% behind.

Meanwhile, stakeholders are asking for updates. That's more meetings, more context switching, more delay.

The further you get from the plan, the less useful the plan becomes.

Why We Keep Planning Anyway

If plans are always wrong, why do we keep making them?

Because organizations demand predictability. Finance needs budgets. Sales needs timelines. Marketing needs launch dates.

Plans make people feel comfortable, even if they're fiction.

So we make plans, knowing they'll be wrong, because not having a plan is worse than having a wrong one.

The Agile Compromise

Agile tried to solve this by shortening planning horizons. Don't plan six months out. Plan two weeks.

This helps. Short term plans are more accurate than long term ones.

But it doesn't solve the fundamental problem: even two week plans go off track.

And at some point, the business needs longer term visibility. You can't just shrug and say "we'll figure it out sprint by sprint."

What Actually Works

Since projects never go as planned, what should we do instead?

1. Plan lightly

Make rough plans that set direction without over committing to details. The further out, the lighter the plan.

2. Expect deviation

Build buffers. Assume things will take longer. Plan for interruptions.

3. Replan frequently

Don't treat the plan as sacred. Check it weekly. Adjust as you learn.

4. Focus on outcomes, not tasks

Instead of "complete these 20 features," aim for "improve onboarding conversion." You can adapt the approach while keeping the goal.

5. Communicate uncertainty

Be honest with stakeholders. "Here's our best guess, but expect it to change."

6. Ship incrementally

Release small pieces frequently. This reduces risk and gives you real feedback faster than planning ever could.

The Acceptance

Here's the mindset shift: stop expecting projects to go as planned.

Plans aren't predictions. They're starting points. They give you direction, not destiny.

The goal isn't to follow the plan. The goal is to ship something valuable. If the plan gets you there, great. If not, change the plan.

The plan is a tool, not a commitment.

The Better Metric

Instead of asking "did we hit the plan?" ask:

  • Did we ship something valuable?
  • Did we learn quickly when the plan was wrong?
  • Did we adapt effectively?
  • Did we communicate changes clearly?

Success isn't following the plan. It's achieving the goal despite the plan falling apart.

The Bottom Line

Why does no project go as planned?

Because reality is more complex than any plan can capture.

Technical work is uncertain. People are unpredictable. Requirements evolve. Stuff happens.

The teams that succeed aren't the ones with perfect plans. They're the ones who adapt quickly when the plan breaks.

Plan lightly. Ship frequently. Learn constantly. Adjust ruthlessly.

That's how you ship great products, even when nothing goes as planned.

Ready to try Bonjour?

A hyper-focused feed for your team. No endless lists. Just the work that matters.