BUSFACTOR.TECH
Bus Factor

Knowledge Silos in Engineering Teams: How to Find Them

Knowledge risk45.2%SAY SILOS BLOCK IDEAS

Knowledge silos don't announce themselves - they surface the week someone resigns. How to detect them from commit and review patterns before that.

Source: Stack Overflow 20242 receipts in this article ↓

TL;DR: Knowledge silos are invisible in the org chart and obvious in git history. The three detection signals: areas where one person authors nearly everything, areas where one person reviews nearly everything, and expertise that never spreads past its origin. In Stack Overflow's 2024 survey, 45.2% of professional developers said silos prevent ideas from crossing the organization. And that's the before the resignation version of the cost.

No team plans a knowledge silo. You route the payments bug to the person who's fastest at payments - obviously. Their PRs go to the one reviewer who knows the domain - obviously. Three years of obvious decisions later, an entire revenue-critical subsystem lives in one head, and you discover the shape of it during their two weeks' notice. Silos don't announce themselves. They surface - always at the worst possible time, always fully formed.

The fix starts with detection, and detection is cheaper than you think, because the evidence has been accumulating in your git history the whole time.

What is a knowledge silo?

A knowledge silo is an area of your system - a service, a module, a gnarly integration - where the working knowledge is concentrated in one person (or one tight in-group) and does not flow outward. The code may be fine. The silo isn't a quality problem; it's a distribution problem: the map of who can safely change what has a region marked "here be one engineer."

Silos and bus factor are the same risk seen from different ends: a knowledge silo is how the risk forms, a bus factor of 1 is what it adds up to. Every single-owner area on a bus-factor report is a silo that finished forming.

Why silos stay invisible until someone resigns

While the expert is present, the silo looks like efficiency. Questions get answered in minutes and the domain's tickets close fast. Every metric a team normally watches (velocity, cycle time, bug counts) rewards the silo while its owner is in the building. The failure mode is entirely deferred: nothing hurts until the day everything does.

The costs before the departure are real but diffuse, so nobody books them against the silo. In the 2024 Stack Overflow Developer Survey, 45.2% of professional developers agreed that knowledge silos prevent them from getting ideas across the organization, and 61% reported spending more than 30 minutes a day searching for answers or solutions. That's the everyday tax: the queue behind the one qualified reviewer, the feature nobody else could estimate, the onboarding that takes months because the map is in someone's head. The resignation just presents the accumulated invoice.

The teams board: a team-by-team review-flow matrix showing which team reads whose code, with the intra-team diagonal dimmed and nobody ranked.The teams board: a team-by-team review-flow matrix showing which team reads whose code, with the intra-team diagonal dimmed and nobody ranked.
The team board - who reads whose code, no stack rankLive product · fictional demo org

What signals reveal silos in git history?

Three patterns, all computable from data you already have:

  1. Single-author areas. For each significant directory over the last 6-12 months, look at who lands the meaningful changes. Where one person authors the overwhelming majority and nobody else shows sustained activity, knowledge is pooling. (This is the input to a proper bus-factor calculation; truck-factor research found 34% of 133 popular GitHub projects at a truck factor of 1, per Avelino et al., so expect to find more of these than you'd like.)
  2. Single-reviewer areas. Sometimes authorship looks spread but every PR into the area is approved by the same one person. That reviewer is the silo: they're the only human who can judge a change there, which makes them a bottleneck and a single point of failure wearing the same face.
  3. Expertise that never crosses the boundary. Healthy areas show churn in who contributes over time: people rotate in, learn, contribute, move on. A silo's contributor list is frozen. If the set of names touching an area in the last year is identical to the year before and it's one or two names long, knowledge is not flowing.

Cross-reference the three and you get a silo map: areas flagged by authorship, by review, or by both. The "both" list is where your next resignation becomes an incident.

Rank silos by blast radius

Ruthlessly. A silo in a deprecated internal tool is trivia; a silo in the billing pipeline is a standing emergency. For each flagged area ask two questions: how much of the product stalls if this goes dark tomorrow? and how actively is it changing? Hot, critical, single-owned areas go to the top; cold, peripheral ones drop off the list entirely. Trying to de-silo everything is how teams de-silo nothing.

This ranked view is exactly what a continuously computed ownership map of your codebase gives you: every area, who really owns it, and which ones are one absence away from orphaned, refreshed as the code and the team move instead of rediscovered during offboarding.

The documentation-health view grading doc coverage and freshness per code area, showing which areas changed without their docs following.The documentation-health view grading doc coverage and freshness per code area, showing which areas changed without their docs following.
Docs health - which docs the code outranLive product · fictional demo org

How do you break a silo without slowing the team?

Spread ownership on the few areas that made the top of the list, using the cheapest moves first: add a rotating second reviewer to the area (reviewing is how outsiders earn context on someone else's diff), route the next real feature there to a non-expert with the expert reviewing instead of writing, and put short, close-to-the-code docs in the paths that churn most. Expensive moves (dedicated pairing, shadowing rotations) are reserved for the areas where a departure genuinely stops the business.

And handle the human well. The person at the center of a silo is usually the one who kept saying yes: they took the unglamorous on-call and carried the domain nobody else wanted. Done right, breaking the silo is the thing that finally lets them take a vacation without a laptop. Roast the system that concentrated the knowledge. Thank the person who held it up. Then make sure they're no longer the only one who can.

Frequently asked

What causes knowledge silos in engineering teams?

Mostly reasonable local decisions: routing work to whoever is fastest at it, letting the same expert review every change in their area, and never rotating ownership after the original author ships a system. Silos are an accumulation of efficient choices, not a character flaw.

Are knowledge silos always bad?

No. Specialization is how hard things get built, and a silo in code you're about to delete is not worth breaking. Silos are dangerous where they overlap with critical, actively changing areas. Rank them by blast radius and fix the intersection, not every silo on the map.

How do you detect knowledge silos before someone leaves?

Look at git history: areas where one person authors nearly all meaningful changes, where the same single reviewer approves every PR, and where questions in that domain always route to one name. The commit and review graph shows silos long before an exit interview does.

How do you break down a knowledge silo without slowing the team?

Rotate a second reviewer into the area, route the next feature there to a different engineer with the expert reviewing, and put short docs inside the code paths that churn most. Spread ownership on the few areas that matter instead of pairing on everything.

Receipts

Keep reading