Glue

AI codebase intelligence for product teams. See your product without reading code.

Product

  • How It Works
  • Benefits
  • For PMs
  • For EMs
  • For CTOs

Resources

  • Blog
  • Guides
  • Glossary
  • Comparisons
  • Use Cases

Company

  • About
  • Authors
  • Support
© 2026 Glue. All rights reserved.
RSS
Glue
For PMsFor EMsFor CTOsHow It WorksBlogAbout
BLOG

The Bus Factor Problem: What Happens When Your Best Engineer Leaves

Your lead backend engineer walks into your office on a Tuesday morning and tells you they're leaving. Two weeks notice. They found a new opportunity. They're excited about it.

SS
Sahil SinghFounder & CEO
June 26, 202613 min read

Your lead backend engineer walks into your office on a Tuesday morning and tells you they're leaving. Two weeks notice. They found a new opportunity. They're excited about it.

You tell them congratulations while your stomach drops.

Within 24 hours, you realize: nobody else knows how the payment service works. Or how the deployment pipeline is configured. Or why there are three different auth mechanisms and which one to use for what. Or how to fix a bug in production at 2 AM when your on-call engineer can't understand the error logs.

You now have a bus factor problem: if your best engineer gets hit by a bus (or quits, which is a more likely scenario), the team's velocity drops 40%. Critical systems have no backup. Bugs take twice as long to fix. New features are blocked because nobody understands the existing architecture.

And here's the uncomfortable truth: you probably have this problem right now. Most engineering organizations do.

Why This Matters More Than You Think

The bus factor has a formal definition in software engineering: the minimum number of team members whose loss would cause the project to fail or significantly slow down. A bus factor of 1 means one person is critical path. A bus factor of 3 means you need to lose at least three people before the project stalls.

Most teams don't know their bus factor. They assume it's higher than it is.

The cost of a low bus factor:

Immediate: Your senior people can't take vacation without being on-call. Key decisions get delayed because only one person can approve them. Critical projects depend on people working 60-hour weeks.

Medium-term: You can't hire aggressively (new engineers need to learn from people, and those people are already at capacity). You can't promote people who know the system (you'd lose depth in critical areas). You can't experiment with new projects (all your good people are busy maintaining old ones).

Long-term: Your best engineers get burned out (because they're critical path). They leave. Now you've got a crisis, not a risk factor. Your velocity crashes. You spend 6 months hiring and onboarding replacements, during which you're understaffed. And the new people hit the same knowledge silos - they have to learn through trial and error, which takes months.

The bus factor problem is a prediction of burnout, knowledge loss, and organizational fragility. It's not theoretical risk. It's the leading indicator of whether your team can survive change.

The Cascade When Someone Leaves

Let's walk through what actually happens when your critical person leaves.

Week 1: The Realization

Your team notices that PRs are piling up. Nobody wants to merge the payment system changes - the person who understood that was just fired or quit. A bug in production appears. On-call engineer is stuck. Someone pages the leaving engineer (awkward).

You start asking questions: "Who else understands this code?" The answer is often "not sure." You do an informal knowledge audit and discover:

  • Payment system: Only Alex knows it
  • DevOps/infrastructure: Only Marcus knows it
  • The API layer: Sarah knows it, but she just got pregnant and will be out for 4 months
  • The data pipeline: Three people know pieces of it, but nobody knows the whole thing

This is normal. It's also a problem.

Week 2-4: The Slow-Down

The leaving engineer is trying to wrap up work, but they're also your best explainer. Everyone is asking them questions. They're trying to document things, but documentation is hard - tacit knowledge is hard to make explicit. A lot gets lost.

Meanwhile, your team is taking longer to review code because they're double-checking things the leaving engineer would have caught. Bugs that would have been caught in code review slip into staging.

Month 2: The Real Damage

The leaving engineer is gone. Now you're actually operating without them. Here's what happens:

  • A bug appears in the payment system. It takes three people eight hours to figure out what the leaving engineer would have diagnosed in 30 minutes. You ship a partial fix that breaks something else. Rollback. Ship a real fix 24 hours later.

  • A new feature gets started that touches the infrastructure. It gets 60% done, then hits a problem. Nobody knows why the config is structured the way it is. You make a guess, deploy it, watch it fail in production, rollback, and ask for help from a engineer at a partner company who used to work here. They tell you it's an old pattern that was needed for a different constraint that no longer exists. The whole config could be simplified, but nobody knows that except in this person's external network.

  • The data pipeline gets slow. Your data analyst is frustrated. Nobody knows why because the system was architected around a constraint that the leaving engineer understood. You spend two weeks debugging before someone finds their notes from a 2019 design meeting. The architecture made sense then. It doesn't now. But changing it requires understanding the full history.

  • Recruiting slows down. Your recruiting team realizes the new hire they're trying to onboard is stuck without the leaving engineer. The onboarding goes from 8 weeks to 16 weeks. The new hire gets frustrated and quits in month 3.

This is not a crisis yet. But you're feeling it.

Month 3-6: The Long Tail

You've hired a replacement. They're smart and capable, but they're in the same position you were: trying to learn a system from code and occasional questions. They hit the same confusion every new engineer hits, but worse, because the original architect isn't around to ask.

During this period, your velocity is 70% of baseline. Your best remaining senior engineer is spending 25% of their time helping the new person catch up. You ship fewer features. Technical debt accumulates (because you don't have time to refactor). The new person is frustrated because they don't feel productive.

It takes them five months before they're truly independent in the domain. By that point, six months have passed. You've lost a full year of potential productivity from two people.

How to Measure Your Bus Factor

Before you can fix it, you need to see it.

Method 1: Code Ownership Analysis

For each critical module, ask: "If this person left, could someone else maintain this code?"

Go through your codebase and look at recent commits. Who modified the payment system in the last 90 days? Count commits per person. If one person has 80% of the commits, they're a bottleneck.

Create a matrix:

ModulePrimary AuthorBackupBus Factor
Payment ServiceAlex (87%)None1
API LayerSarah (52%)James (40%)2
Data PipelineCharlie (60%)David (30%)2
DevOpsMarcus (95%)None1

Count how many modules have a bus factor of 1. That's your biggest risk.

Method 2: Knowledge Audit Survey

Ask your team: "Who would you ask if you needed to understand X?"

Do this for 15-20 critical areas:

  • How to deploy to production
  • How payment processing works
  • How our API versioning works
  • How our database migrations work
  • Why the auth is structured this way
  • How the notification system works
  • How caching strategy was decided
  • How the deployment pipeline is set up

If more than two people answer the same person for most questions, you have centralized knowledge.

Method 3: Dependency Check

Look at Slack history. For each critical system, count how many times someone asked "how do I...?" questions in the last month. Who answered them?

If one person answered 80% of the questions about a critical system, they're carrying that knowledge.

Early Warning Signs

Before you get to crisis, watch for these:

  • Concentrated code ownership: One person has >70% of recent commits in any critical module
  • High interruption rate: A person is answering questions constantly. They're the "source of truth" for a system
  • Fear-driven deployment: Deployments only happen when a specific person is awake
  • Long PRs merged by one person: If all payments PRs need approval from one person, they're a bottleneck
  • Missing documentation: If the only way to understand a system is to ask someone, you have a knowledge problem
  • Burnout signals: The key person works long hours, can't take time off, becomes frustrated when asked questions
  • Turnover prediction: You know someone is probably leaving soon (startup fatigue, job searching, etc.), and they're critical path

Any two of these is a warning. All four is a crisis waiting to happen.

Strategies to Reduce Bus Factor

The solution isn't "hire people and hope they stick around." It's making knowledge resilient.

1. Documentation That Actually Matters

Most documentation is written after the fact and becomes obsolete. The solution: documentation that lives in the codebase.

  • Architecture Decision Records (ADRs): One-page documents explaining why big decisions were made and what was considered. When your payment person explains "why are there three auth systems?", they write an ADR. When they leave, the ADR is still there.

  • Code comments for the "why": Good code is self-explanatory about what it does. But the why - why this pattern, why this tradeoff - that lives in comments. "This uses eventual consistency instead of strong consistency because X service depends on low latency" is a comment that survives the author.

  • README for each module: What does this service do? What does it own? Who wrote it? What's the entry point? What should never be changed without understanding Y?

  • Runbooks for critical operations: How to deploy, how to handle on-call alerts, how to scale, how to debug production issues. Written in a way that someone new can follow them.

2. Code Review Rotation

Prevent any one person from being the sole expert on a system. Make code review a rotation.

If Alex is the payment system expert, set a rule: all payment PRs need review from either Alex or one person from the rotation. The rotation is James and Charlie. They review with Alex sometimes, learning as they go. After three months, James can review alone.

This forces knowledge transfer. The person reviewing with the expert is apprenticing, whether they realize it or not.

3. Pair Programming on Critical Systems

New person + expert person, working together on critical code. The new person types. The expert explains what they're thinking. This is the fastest way to transfer tacit knowledge.

Do this especially when you're running low on backup for something critical. If only Marcus knows DevOps, pair a promising engineer with him on 20% of their week for two months. That engineer becomes a backup.

4. Knowledge Mapping with Codebase Intelligence

Use tooling to create explicit dependencies and ownership.

Map which modules depend on which other modules. Identify concentration - if five modules depend on one person's code, and they leave, all five are blocked.

Codebase intelligence platforms can analyze code to highlight:

  • Which modules have changed recently (indicate active work)
  • Which modules have complex dependencies
  • Which modules are touched by few people
  • Which functions are most called

Use this to identify your critical path. Then assign someone to the rotation.

5. Structured Handoff Protocols

When someone is leaving (voluntarily or due to reorganization), don't just lose them. Capture what they know.

  • Two weeks of structured pairing: Instead of "wrap up your projects," it's "teach your knowledge." New person shadows the leaving person as they do normal work, asking questions constantly.

  • Deep-dive sessions: 1-hour sessions on each critical module. Recorded (with consent). The leaving person explains their decisions, the architecture, and the gotchas.

  • Documentation sprint: Last week, the leaving person's job is writing - ADRs, READMEs, runbooks. Not perfect documentation, but capture the knowledge.

  • Knowledge mapping: Create the ownership matrix. Identify who now owns what. Write it down. Socialize it.

6. Explicit Rotation Schedules

Don't rely on people naturally learning systems. Make it formal.

  • Every senior engineer learns the DevOps system over six months (4 hours/week)
  • Every engineer touches the payment system at some point
  • Every engineer gets trained on production runbooks

Make it a career expectation: you're not senior unless you understand three critical systems. You're not staff unless you've documented at least one.

The Broader Point

The bus factor problem is a symptom of a deeper issue: knowledge silos. And knowledge silos are a symptom of not making knowledge explicit.

The companies with low bus factor don't have smarter people. They have people who write things down. Who explain their reasoning. Who pair with colleagues. Who are measured on how much they've made transferable.

The fix isn't to find people who won't leave (they will). The fix is to make what they know transferable.

This requires:

  • A culture that values documentation and knowledge sharing as much as shipping features
  • Tooling that makes code understandable (tools that map dependencies, highlight complexity, show ownership)
  • Processes that force knowledge transfer (code review rotation, pairing, structured handoff)
  • Leadership that prioritizes resilience, not just speed

When someone leaves, you should lose a person. You should not lose critical knowledge. The bus factor problem tells you how far you are from that ideal.

A Framework for Your Team

Start here:

  1. Audit your knowledge: Do the code ownership analysis for your 10 most critical modules. Are they concentrated in one or two people?

  2. Identify your risks: Who would you most regret losing? Who has nobody to back them up? Write it down.

  3. Pick one system to de-concentrate: Maybe it's DevOps, maybe it's your core API service. Assign a high-potential engineer to learn it over the next quarter. Make it formal. Make it a development goal.

  4. Document as you go: When that engineer is learning, have them write the README, the ADR, the runbook. Force the senior person to explain their "why."

  5. Create a rotation: Next quarter, pick another system. Do the same thing. Build a pipeline of people who understand critical systems.

  6. Measure and track: Track bus factor for each module. Make it a quarterly OKR. "Reduce number of single-person modules from 8 to 4."

The bus factor problem isn't fixed overnight. But it's fixable. And it's worth fixing, because the alternative is your entire organization being held hostage by a few people.

When your lead engineer leaves, you want to feel relief - you've been training their replacement. You should not feel panic. The moment you feel panic, you know you have a bus factor problem.

Fix that, and you fix organizational fragility.

References

  • Knowledge Silos and Organizational Learning (MIT Sloan Review) - How concentration of knowledge affects organizational capability
  • The Mythical Man-Month by Fred Brooks - The classic on why communication in teams matters
  • Accelerate: The Science of Lean Software and DevOps - How organizational structure affects technical outcomes
  • Code Review Best Practices (Google's Engineering Practices) - How to use code review as a knowledge transfer mechanism

[ AUTHOR ]

SS
Sahil SinghFounder & CEO

SHARE

RELATED

Keep reading

blogJun 24, 202611 min

Technical Debt Is Not a Metaphor - Here's How to Put a Dollar Figure on It

Ward Cunningham introduced the technical debt metaphor in 1992, and it was useful. Talking about debt helped engineering teams communicate with business stakeholders about the cost of shortcuts. But metaphors have limits. The moment you want to make an actual decision about whether to refactor or ship the next feature, a metaphor breaks down. You need numbers.

SS
Sahil SinghFounder & CEO
blogJul 3, 20267 min

How to Convince Your CTO to Invest in Developer Experience

You know the problem. Your team loses two hours a day to slow builds. New engineers take three weeks to understand the codebase. Your CI/CD pipeline feels like it was built in 2015. And when developers finally ship code, half the bugs should have been caught earlier.

SS
Sahil SinghFounder & CEO
blogJun 27, 20269 min

Building an Awesome List That Actually Gets Stars (Step-by-Step)

A few months ago, I decided to start an awesome list. Not because I thought I'd become famous - mostly because I was frustrated that no single repository existed as a definitive guide to codebase intelligence tools and practices. I wanted to solve my own problem and maybe help others along the way.

SS
Sahil SinghFounder & CEO

See your codebase without reading code.

Get Started — Free