Hire Software Developers 7
Back to blogs

Bus Factor: Measuring Key-Person Risk Before It Bites

A tall stack of pale blocks resting on one small vivid block, representing a codebase carried by a single person

Bus Factor: Measuring Key-Person Risk Before It Bites

In 2016, four researchers computed the truck factor — the bus factor under its other name — of 133 popular GitHub projects and found that 65% of them ran on two developers or fewer [R2][R3]. Thirty-four percent ran on exactly one [R4]. Then they did the thing almost nobody does with a metric: they emailed the developers the algorithm had named and asked whether it had got it right. Eighty-four percent agreed, or partially agreed, that it had found the right people [R7]. Only 39% thought losing those people would actually put the project in trouble [R8].

Both numbers come from the same survey, in the same paper, about the same projects. That gap is the whole story. The bus factor is a good instrument for finding where knowledge has pooled. It's a much weaker instrument for telling you how much trouble you're in.

The bus factor — also called the truck factor — is the number of developers a project would have to lose before it is in serious trouble [R1]. In the standard algorithm it means one specific thing: the number of top authors you must remove before the remaining authors cover less than 50% of the project's files [R10].

Key takeaways

  • In the 2016 study of 133 GitHub projects, 84% of responding developers agreed or partially agreed that the algorithm had named the right people, but only 39% agreed that losing those people would put the project in trouble [R7][R8].
  • Concentration rates depend entirely on the sample: 34% of the 133 projects in the 2016 corpus had a truck factor of exactly 1 [R4], while 57% of the 1,932 projects in the 2019 corpus did [R18].
  • Losing the whole truck-factor set is survivable more often than the metric implies. In the 2019 study of 1,932 projects, 16% lost their entire truck-factor developer set and 41% of those recovered [R14][R15]; a separate 2024 replication across 36,464 projects put the recovery rate at 27.07% [R24].
  • Concentration is not purely a defect: across Windows Vista and Windows 7, Bird et al. found that high levels of code ownership are "associated with less defects" [R25].
  • Asked which practices most attenuate the loss of top-ranked authors, the developers surveyed in 2016 named documentation most often (36 answers), then an active community (15) and automated tests (10) [R12].

What is the bus factor, and how is it actually computed?

The definition is older than the paper and deliberately blunt: the truck factor is "the number of people on your team that have to be hit by a truck (or quit) before the project is in serious trouble" [R1]. Everything interesting is in how you turn that into arithmetic.

Avelino, Passos, Hora and Valente did it on a corpus of 133 popular GitHub projects holding more than 373,000 files, 41 million lines of code and over 2 million commits [R2]. Their headline result: 87 systems, 65% of the corpus, had a truck factor of two or fewer [R3]. Forty-five systems (34%) sat at exactly 1, including mbostock/d3 and less/less.js; forty-two (31%) sat at exactly 2, including clojure/clojure, jashkenas/backbone and elasticsearch/elasticsearch [R4]. The quartiles were 1, 2 and 4 [R5]. At the other end, torvalds/linux measured 57, android/platform_frameworks_base 19, git/git 12 and rails/rails 9 [R6].

The distribution is trivia. The mechanism is what you'd be adopting if you ran this on your own repositories, and it works in three moves.

First, score authorship per file. Each developer gets a degree of authorship for each file from a linear model: DOA = 3.293 + 1.098 × FA + 0.164 × DL − 0.321 × ln(1 + AC), where FA is first authorship, DL is the number of changes that developer made to the file, and AC is the number everyone else made [R9]. Writing the file first counts heavily. Coming back to it counts a little. Other people touching it erodes your claim, but logarithmically, so the twentieth external change hurts far less than the second.

Second, decide who counts as an author at all. A developer is an author of a file only if their normalised degree of authorship is above 0.75 and their absolute score is at least 3.293 [R11]. That threshold isn't a round number picked for elegance: the authors report 0.75 aligned results with manual inspection better than 0.50 did [R11].

Third, remove people until the system breaks. The algorithm rests on an explicit coverage assumption: "a system will face serious delays or will be likely discontinued if its current set of authors covers less than 50% of the current set of files in the system" [R10]. So it greedily removes whichever remaining author owns the most files, recomputes coverage, and repeats. The number of removals it takes to push coverage under 50% is the truck factor [R10].

Read that assumption again, because it does all the work. The number isn't a measurement of how badly you'd suffer. It's a measurement of how few removals it takes before authored files stop covering half the repository. Whether that constitutes "serious trouble" is an assertion the algorithm makes on your behalf — the same failure mode as any other engineering metric that claims to predict delivery.

The people it names agree — about the wrong thing

The 2016 authors validated their estimates by asking the developers, which is why this paper is worth more than the number it produced.

They contacted 114 systems and got answers covering 67, a 59% response rate [R7]. On identification the algorithm did well: developers of 49 systems, 84% of valid answers, agreed or partially agreed that the named truck-factor authors were in fact the main authors of their system [R7].

Then came the second question. Would the project be in trouble if it lost those people? Developers of 24 systems (39%) agreed, 6 (10%) partially agreed, developers of 27 systems (43%) disagreed, and 5 (8%) were unclear [R8]. More respondents rejected the consequence than accepted it outright.

The free-text answers are more useful than the percentages — and both of the ones below were counted as agreement [R8]. An SFTtech/openage developer: "If both of us left, the project would be kind of unmaintained." A bitcoin/bitcoin developer, answering the same question: "If Wladimir or Pieter left, it would be a serious loss, but not fatal I think." The second is hedged nearly to the point of contradicting itself, and it still sits in the same bucket as the first. Both developers are probably right about their own project; the bucket is doing a lot of flattening.

One reply from kivy/kivy names the structural flaw directly: "Yes and no, historically yes, currently no, a team has been picking up the activity, your analysis seems to be biased on capital (existing files) rather than activity (current commits)." The algorithm weighs who wrote the code that exists, not who's showing up on Tuesday. A clojure/clojure developer supplies the other half: "if the code is old enough, even the original author will have to approach it with essentially fresh eyes." Ownership decays without anyone leaving, which is the same decay behind rewrite, refactor or replace decisions on legacy systems.

So the output is a shortlist of names carrying 84% credibility [R7] and a risk verdict carrying roughly coin-flip credibility [R8]. Treat it accordingly. The names are the finding. The alarm is a hypothesis you still have to test by talking to the people on the list.

What happens when the truck actually arrives

Three years later, largely the same group went looking for the events themselves rather than the risk score.

The 2019 study by Avelino, Constantinou, Valente and Serebrenik analysed 1,932 popular GitHub projects, arrived at by taking the 500 most-starred non-fork repositories in each of six languages, then discarding 677 with lost migration history, 338 with under two years of activity and 53 that weren't software units [R13]. That's a much larger sample than the 2016 study's 133 projects, and it reports a different concentration profile: 57% of the 1,932 projects had a truck factor of exactly 1 and 25% exactly 2, the highest measured being 26, for edx/edx-platform [R18]. Keep the two apart when you quote them. The 34%-at-one figure belongs to the 133-project 2016 corpus [R4]; the 57%-at-one figure belongs to the 1,932-project 2019 corpus [R18].

The definitions are stricter than the folklore. A developer counted as having abandoned a project if their last commit occurred at least one year before the most recent repository commit; the authors tested 3 months, 0.5, 1, 1.5 and 2 years and chose one year because it produced the highest harmonic mean of precision and improvement, at 66% [R16]. A project counted as Active while at least one truck-factor developer remained active, and Inactive once all of them had abandoned it. It counted as having survived only if it moved from Inactive back to Active with respect to its most recent detachment, with the truck factor recomputed yearly from repository creation [R17].

The result: 315 of the 1,932 projects (16%) lost their entire truck-factor developer set [R14]. Of those 315, 128 (41%) survived by attracting at least one new truck-factor developer who took over maintenance [R15]. In 86% of the recoveries, exactly one new person did it [R20]. Sixty-six percent of all detachments happened in projects whose truck factor was exactly one, and 88% of affected projects went through only a single detachment event across their entire history [R19].

Two caveats keep the 41% honest. Recovery isn't passive: of 33 surveyed developers who took over after the original truck-factor developers left, 77% were fully or partially aware of the project's discontinuation risk before making the contributions that revived it [R21]. Somebody knew, and stepped in. And the cheerful number shrinks when the sample grows. A 2024 replication covered 36,464 GitHub projects — a different, far larger corpus than the 1,932 projects above. In that sample, 89.65% had lost their entire core team at least once [R22]. Seventy percent of those losses happened inside the project's first three years [R23]. Only 27.07% ever attracted a replacement core developer [R24], materially below the 41% recovery rate measured on the 2019 sample [R15].

Losing your only expert is a serious event with a recovery rate somewhere between one in four and two in five, depending on which sample you trust [R15][R24]. It is not the extinction event that "bus factor of one" implies.

Code ownership concentration isn't only a risk

Here's the finding most bus-factor advice leaves out, and it doesn't come from GitHub at all.

Bird, Nagappan, Murphy, Gall and Devanbu examined ownership and failures across Windows Vista and Windows 7, built by more than 2,000 developers, and concluded that "high levels of ownership, specifically operationalized as high values of Ownership and Major, and low values of Minor, are associated with less defects" [R25]. Their terms are precise: a Minor Contributor has changed a component but holds under 5% of its changes, a Major Contributor holds 5% or more, and Ownership is the share held by the single highest contributor [R26]. More concentration, fewer defects.

Their recommendations follow from that, and they aren't what a naive bus-factor reading would produce: review changes by minor contributors with more scrutiny, preferably by a major contributor; have would-be minor contributors communicate the desired change to a developer experienced with that component rather than making it themselves; and give QA priority to components with low ownership [R28]. That is advice to reinforce concentration in the short run, not to dissolve it.

One nuance rescues this from sounding like a defence of hoarding. When a component has a minor contributor, that developer is a major contributor to a component connected by a dependency roughly half the time [R27]. Most low-ownership edits come from neighbours reaching across a boundary, not from strangers.

I'm not going to resolve the tension, because the evidence doesn't. Bird et al. bound their own result: "Microsoft employs strong ownership practices and our results are much more likely to hold in other industrial settings where similar policies are in place" [R29]. Concentration is a position, not a defect. It buys quality now and costs continuity later, and the truck factor measures only the second half of that trade. If you spread ownership across a component to move a number, expect to pay for it somewhere, decide in advance where, and know what you'll monitor in production to catch it if you're wrong.

Why do bus factor tools disagree with each other?

Run two bus-factor tools over the same repository, get two answers, and neither is necessarily broken. The trouble starts in the complexity class.

Computing the bus factor accurately is NP-Hard under established formalisations, and the widely adopted degree-based heuristic — removing people in decreasing order of how many tasks they touch — can yield severely inflated estimates [R43]. That heuristic is the intuitive one. It's also the one most likely to hand you a scarier number than the truth.

The empirical work agrees. Rigby, Zhu, Donadelli and Mockus modelled knowledge loss the way finance models portfolio risk, running Monte Carlo simulations of disaster loss scenarios, and stated plainly that "simplistic estimates of the 'truck factor' exaggerate the potential for loss" [R30]. Their framing measures how much source code actually ends up orphaned, and how likely that is. It found projects susceptible to losses more than three times the expected loss, with historical simulations showing susceptibility to over five times [R31]. Exaggerated headline, real tail. Both things.

Tool-level error is easy to demonstrate. Evaluated against engineers' own estimates on 13 real JetBrains projects, a multimodal algorithm adding code-review and meeting data reached a mean absolute error of 5.46 against 5.80 for the version-control-only baseline, with an F1 of 0.48 for identifying key engineers on the eight of those projects that supplied key-engineer lists [R41]. In two of those thirteen projects, the version-control-only baseline named as a key developer someone whose last commit was more than 18 months old [R42]. Identity resolution adds its own noise. The 2019 study resolved aliases through a GitHub API mapping from commit e-mail to account rather than name matching. It still found a median of 11% aliases per project [R46] — roughly one in nine apparent contributors in a raw git log is a duplicate.

The "Bus Factor In Practice" authors, who built one of these tools, are the soberest voices in the corpus: "The tool should never be perceived as an ultimate arbiter on the bus factor (or any other health metric) of a project. It should be used as an additional source of information on the project that allows condensing scattered information about the code ownership into a small description with an inevitable loss of context" [R40].

One more limit, and it's structural: apart from the Windows study [R25] and the JetBrains work [R41], essentially all of this measurement is on public GitHub repositories. Whether the same patterns hold inside a closed-source codebase with a payroll behind it is not something these samples can tell you. Your codebase is in none of them.

What to measure instead of a single bus factor number

Stop trying to produce one integer for the organisation. Measure knowledge concentration where it actually costs you: coverage on the files that matter.

The coverage assumption is already sitting inside the algorithm [R10], so use it directly instead of the number it exports. Pick the systems where an outage costs you money or credibility. For each, list the files that carry that behaviour, and ask how many people hold a real authorship claim on them. That gives you a per-system answer, which is the granularity practitioners want anyway. Asked where bus factor should be computed, 269 surveyed engineers split 40% team-level, 39% project-level and 16% module-level. Of those same 269, 61% wanted the names of key engineers and the identity of critical low-bus-factor modules reported alongside the number itself [R39].

Then name successors. Rigby et al. adapted coordination-requirements matrices to recommend the correct successor for a departing developer 34% to 48% of the time, and found that having designated successors reduced expected loss by as much as 15% [R32]. Half-right recommendations plus a 15% reduction isn't magic, but it's a concrete instrument, and unlike a headline integer it produces an action: for each critical component there is a named second person, and you can check whether that person's degree of authorship is non-zero.

For the intervention itself, the developers surveyed in 2016 already said what works. Asked which practices most attenuate the loss of top-ranked authors, they named documentation most often at 36 answers, then an active community (15), automatic tests (10), code legibility (10), code comments (7), founding or paid developers (5) and popularity (5) [R12]. Documentation and tests, by a distance.

Two cautions. The names list is management information, not a team-wide broadcast: the "Bus Factor In Practice" authors record real social costs, including too much attention landing on the implicated modules, a named key engineer feeling irreplaceable in a way that damages their relationship with employer and teammates, and unnamed engineers feeling underestimated about their role [R40]. And most engineers have never seen any of this done — 51% of the 269 surveyed knew what the bus factor is, but only 19% had worked on a project where it was communicated to them [R35], even though 63% had spent time in the past year on a project they felt carried a high risk of the bus factor reaching zero [R36].

If you've inherited a system and don't yet know which files matter, the static-review pass comes before any of this — start with a code audit checklist.

Raising your bus factor is task-shaped work

Once you have the list, the remediation is unglamorous and almost entirely mechanical. Write the tests that pin behaviour only one person can currently explain. Document the two subsystems nobody else has opened. Instrument the paths whose failure modes live in one head. That's knowledge extraction: well-specified, delegable work that never wins a sprint. It is also exactly the shape of work that ships predictably in small batches.

Be precise about what an outside engineer does and doesn't fix here: a subscription engineer does not reduce your key-person risk by existing. It only moves if someone is pointed at the extraction work your own team keeps deferring, which is the shape of work Dev On Demand is built for. A single stream is $3,495/mo and a dual stream $6,795/mo, running on a 3-day task cycle with daily async updates and a task-by-task approval gate, with 1 dedicated AI-augmented engineer assigned the same business day and a 5-day first ship. If you want evidence before commitment, Proof of Quality is one real task you judge before subscribing. There's a 5-day replacement guarantee, and you can cancel any time — no lock-in, no notice period required.

Whether or not you buy anything, here's the move that costs nothing this week. Take the two systems you'd least like to lose and ask the people who own them a single question: what would you have to write down before you could take a month off? Then have them write it down. That document, not the integer, is the measurement.

Frequently asked questions

What is a low bus factor, and does it mean my project is in trouble?

A low bus factor means the algorithm found that removing one or two top authors drops authored coverage below 50% of the project's files [R10]. It does not confirm a crisis. When the 2016 authors asked developers of the 133 projects whether losing the named people would put the project in trouble, 39% agreed, 10% partially agreed, 43% disagreed and 8% were unclear [R8].

Is a bus factor of 1 an emergency?

It is a serious event, not an automatic extinction event. In the 2019 study of 1,932 GitHub projects, 16% lost their entire truck-factor developer set, and 41% of those attracted at least one new truck-factor developer who took over maintenance [R14][R15]. A separate 2024 replication across 36,464 projects found a lower recovery rate of 27.07% [R24]. Recovery is also not passive: of 33 surveyed developers who took over after the original truck-factor developers left, 77% already knew the project was at risk of discontinuation [R21].

Why do two bus factor tools give different answers on the same repository?

Computing the bus factor accurately is NP-Hard under established formalisations, and the widely used degree-based heuristic can yield severely inflated estimates [R43]. Data quality compounds it: the 2019 study still found a median of 11% aliases per project after resolving identities through the GitHub API [R46], and on 13 real JetBrains projects a multimodal algorithm reached a mean absolute error of 5.46 against 5.80 for the version-control-only baseline [R41].

Is concentrated code ownership always a risk?

No, and the evidence pulls in two directions. Studying Windows Vista and Windows 7, built by more than 2,000 developers, Bird et al. concluded that high levels of ownership "are associated with less defects" [R25], and recommended reviewing minor-contributor changes more closely and giving QA priority to low-ownership components [R28]. They also bound the result to organisations with strong ownership practices like Microsoft's [R29]. Concentration buys quality now and costs continuity later; the truck factor only measures the second half.

What actually reduces the risk the bus factor is pointing at?

Asked which practices most attenuate the loss of top-ranked authors, the developers surveyed in 2016 named documentation most often at 36 answers, then an active community (15), automatic tests (10), code legibility (10), code comments (7), founding or paid developers (5) and popularity (5) [R12]. Naming successors also helps: Rigby et al. recommended the correct successor 34% to 48% of the time and found designated successors reduced expected loss by as much as 15% [R32].

Sources

  • [R1] The paper "A Novel Approach for Estimating Truck Factors" by Guilherme Avelino, Leonardo Passos, Andre Hora and Marco Tulio Valente (ASERG Group, Federal University of Minas Gerais; Federal University of Piaui; University of Waterloo) defines a system's truck factor as "the number of people on your team that have to be hit by a truck (or quit) before the project is in serious trouble". — https://arxiv.org/abs/1604.06766
  • [R2] The 2016 truck-factor study analysed a corpus of 133 popular GitHub projects, which together held over 373,000 files and 41 million lines of code, with a combined evolution history of over 2 million commits. — https://arxiv.org/pdf/1604.06766v1
  • [R3] The 2016 study's conclusion states verbatim: "We show that 87 systems (65%) have TF ≤ 2" — that is, 87 of the 133 GitHub systems analysed had a truck factor of two or fewer developers. — https://arxiv.org/pdf/1604.06766v1
  • [R4] Within that same 133-project corpus, 45 systems (34%) had a truck factor of exactly 1 — the paper names mbostock/d3 and less/less.js as examples — and 42 systems (31%) had a truck factor of exactly 2, including clojure/clojure, cucumber/cucumber, jashkenas/backbone and elasticsearch/elasticsearch. — https://arxiv.org/pdf/1604.06766v1
  • [R5] Across the 133 GitHub systems in the 2016 study, the first, second and third quartiles of the truck-factor distribution were 1, 2 and 4 respectively. — https://arxiv.org/pdf/1604.06766v1
  • [R6] The highest truck factors measured in the 2016 study of 133 GitHub systems were torvalds/linux at TF = 57, fzaninotto/Faker at TF = 23 and android/platform_frameworks_base at TF = 19; php/php-src reached 18, git/git 12, v8/v8 11 and rails/rails 9. — https://arxiv.org/pdf/1604.06766v1
  • [R7] To validate the 2016 estimates the authors surveyed developers and received answers covering 67 of 114 contacted systems, a 59% response ratio; developers of 49 systems (84% of valid answers) agreed or partially agreed that the identified truck-factor authors were the main authors of their system. — https://arxiv.org/pdf/1604.06766v1
  • [R8] When the same 2016 survey asked whether the project would be in trouble if it lost those truck-factor authors, developers of 24 systems (39%) agreed, 6 systems (10%) partially agreed, developers of 27 systems (43%) disagreed and 5 (8%) were unclear — a combined positive-or-partially-positive rate of 30 systems, 53% of valid answers. — https://arxiv.org/pdf/1604.06766v1
  • [R9] The 2016 truck-factor algorithm computes each developer's degree-of-authorship per file with the linear model DOA(md, fp) = 3.293 + 1.098 × FA − first authorship + 0.164 × DL — number of deliveries, i.e. changes the developer made — minus 0.321 × ln(1 + AC), where AC is the number of changes to that file made by other developers. — https://arxiv.org/pdf/1604.06766v1
  • [R10] The 2016 truck-factor estimate rests on an explicit coverage assumption: "a system will face serious delays or will be likely discontinued if its current set of authors covers less than 50% of the current set of files in the system"; the algorithm greedily removes the author owning the most files until coverage falls below 50%, and the number removed is the truck factor. — https://arxiv.org/pdf/1604.06766v1
  • [R11] In the 2016 method a developer counts as an author of a file only if their normalised degree-of-authorship exceeds 0.75 and their absolute degree-of-authorship is at least 3.293; the authors report that setting the normalised threshold to 0.75 rather than 0.50 better aligned results with manual inspection. — https://arxiv.org/pdf/1604.06766v1
  • [R12] Asked which development practices most attenuate the loss of top-ranked authors, developers surveyed in the 2016 study named documentation most often (36 answers), followed by an active community (15), automatic tests (10), code legibility (10), code comments (7), founding or paid developers (5) and popularity (5). — https://arxiv.org/pdf/1604.06766v1
  • [R13] The 2019 study "On the abandonment and survival of open source projects: An empirical investigation" by Guilherme Avelino, Eleni Constantinou, Marco Tulio Valente and Alexander Serebrenik analysed 1,932 popular GitHub projects, arrived at by taking the top-500 most-starred non-fork repositories in each of six languages — JavaScript, Python, Ruby, C/C++, Java and PHP — for 3,000 candidates, then removing 677 with lost migration history, 338 with under two years of activity and 53 that were not software units. — https://arxiv.org/abs/1906.08058
  • [R14] The 2019 study found that 315 of the 1,932 GitHub projects analysed (16%) experienced a truck-factor developer detachment, defined as all of the project's truck-factor developers abandoning it. — https://arxiv.org/pdf/1906.08058v1
  • [R15] Of the 315 GitHub projects in the 2019 study that lost their entire truck-factor developer set, 128 (41%) survived by attracting at least one new truck-factor developer who assumed maintenance. — https://arxiv.org/pdf/1906.08058v1
  • [R16] The 2019 study's operational definition of abandonment is that a developer abandoned a project "if their last commit occurred at least one year before the most recent repository commit"; the authors tested thresholds of 3 months, 0.5, 1, 1.5 and 2 years and selected one year because it achieved the highest harmonic mean of precision and improvement, at 66%. — https://arxiv.org/pdf/1906.08058v1
  • [R17] The 2019 study's operational definition of survival is a state transition: a project is Active when at least one truck-factor developer is active and Inactive when all have abandoned it, and a project counts as having survived only if it moves from Inactive back to Active with respect to its most recent detachment event, with truck factor recomputed yearly from the repository creation date. — https://arxiv.org/pdf/1906.08058v1
  • [R18] Across the 1,932 GitHub projects in the 2019 study, 57% had a truck factor of exactly 1 and 25% a truck factor of exactly 2; fewer than 6% had a truck factor above 5, and the highest measured was 26, for edx/edx-platform. — https://arxiv.org/pdf/1906.08058v1
  • [R19] In the 2019 study, 66% of all truck-factor developer detachments occurred in projects whose truck factor was exactly one, and 88% of the affected projects experienced only a single detachment event across their history. — https://arxiv.org/pdf/1906.08058v1
  • [R20] Among the 128 GitHub projects that recovered in the 2019 study, in 86% of cases exactly one new truck-factor developer was attracted and was responsible for the project's survival. — https://arxiv.org/pdf/1906.08058v1
  • [R21] The 2019 study surveyed 33 developers who took over maintenance of a project after its original truck-factor developers left, and found that 77% of these new truck-factor developers were fully or partially aware of the project's discontinuation risk before making the contributions that revived it. — https://arxiv.org/pdf/1906.08058v1
  • [R22] A 2024 replication at much larger scale — Nourry, Kondo, Saito, Iimura, Ubayashi and Kamei — computed the truck factor for 36,464 GitHub projects filtered to at least 20 stars, at least 10 contributors, non-fork, GitHub-hosted and at least two years of history, and found that 32,689 of them (89.65%) had lost their entire core development team at least once. — https://arxiv.org/abs/2412.00313
  • [R23] In that 36,464-project 2024 study, of the projects that ever lost their whole core team, 70% did so within the first three years of the project's life, 78% within four years and 82% within five years. — https://arxiv.org/pdf/2412.00313v1
  • [R24] The 2024 study of 36,464 GitHub projects found that only 8,849 (27.07%) of the projects that lost their entire core team ever attracted a replacement core developer — a materially lower recovery rate than the 41% reported on the smaller 1,932-project sample — and in 10,124 of the 10,518 recorded recoveries exactly one developer was involved. — https://arxiv.org/pdf/2412.00313v1
  • [R25] Bird, Nagappan, Murphy, Gall and Devanbu, in "Don't Touch My Code! Examining the Effects of Ownership on Software Quality" (ESEC/FSE, September 2011), examined ownership and failures across Windows Vista and Windows 7, developed by over 2,000 software developers, and concluded that "high levels of ownership, specifically operationalized as high values of Ownership and Major, and low values of Minor, are associated with less defects". — https://www.microsoft.com/en-us/research/publication/dont-touch-my-code-examining-the-effects-of-ownership-on-software-quality/
  • [R26] In the Bird et al. Windows study, a Minor Contributor is defined as a developer who has changed a component but whose share of changes to it is below 5%, a Major Contributor is one at or above 5%, and Ownership is the proportion of changes held by the single highest-contributing developer. — https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/bird2011dtm.pdf
  • [R27] Bird et al. found that when a component has a minor contributor, that same developer is a major contributor to a component connected by a dependency relationship approximately half of the time — meaning most low-ownership edits come from people who own an adjacent component, not from drive-by contributors. — https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/bird2011dtm.pdf
  • [R28] Bird et al.'s three recommendations are that changes by minor contributors should be reviewed with more scrutiny, preferably by a major contributor; that would-be minor contributors should instead communicate the desired change to a developer experienced with that component; and that components with low ownership should be given priority by QA resources. — https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/bird2011dtm.pdf
  • [R29] Bird et al. explicitly bound their own result: "Microsoft employs strong ownership practices and our results are much more likely to hold in other industrial settings where similar policies are in place", and note that examining ownership where it is not stressed, such as in many open source projects, remained an open area of study. — https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/bird2011dtm.pdf
  • [R30] Rigby, Zhu, Donadelli and Mockus, in "Quantifying and mitigating turnover-induced knowledge loss" (Proceedings of the 38th International Conference on Software Engineering, 2016), used Monte Carlo simulations of disaster loss scenarios and state in their abstract that "simplistic estimates of the 'truck factor' exaggerate the potential for loss". — https://dl.acm.org/doi/10.1145/2884781.2884851
  • [R31] The same Rigby et al. ICSE 2016 study, which adapts financial risk-analysis methods to source-file abandonment, found that projects are susceptible to losses more than three times larger than the expected loss, and that historical simulations show susceptibility to losses over five times larger than the expected loss. — https://dl.acm.org/doi/10.1145/2884781.2884851
  • [R32] Rigby et al. also report a mitigation result: by adapting Cataldo et al.'s coordination requirements matrices they could recommend the correct successor for a departing developer 34% to 48% of the time, and having designated successors reduced expected loss by as much as 15%. — https://dl.acm.org/doi/10.1145/2884781.2884851
  • [R35] Jabrayilzade, Evtikhiev, Tüzün and Kovalenko, in "Bus Factor In Practice" (arXiv preprint, February 2022; authors at Bilkent University and JetBrains Research), surveyed 269 engineers working in code-related roles and found that 51% knew what the bus factor is but only 19% had ever worked on a project where the bus factor was communicated to them. — https://arxiv.org/abs/2202.01523
  • [R36] In that survey of 269 engineers, 75% rated the bus factor's importance as a project-health metric at 3 or higher on a five-point scale and 39% rated it at 4 or higher, and 63% had worked in the past year on at least one project where they felt there was a high risk of the bus factor reaching zero. — https://arxiv.org/pdf/2202.01523v1
  • [R39] Asked at what granularity bus factor should be computed, the 269 surveyed engineers split three ways: 39% preferred project-level calculation, 40% preferred team-level and 16% preferred module-level — and 61% wanted the names of key engineers and the identity of critical low-bus-factor modules reported alongside the number itself. — https://arxiv.org/pdf/2202.01523v1
  • [R40] The paper's own authors place the limit on their tool: the developers are the ultimate arbiter of who matters, not the algorithm. The "Bus Factor In Practice" authors record specific social risks of publishing the metric: that too much attention may be paid to the implicated modules, that a named key engineer may feel irreplaceable in a way that negatively affects their relationship with employer and teammates, and that engineers not listed as key may feel underestimated and uncomfortable about their role. — https://arxiv.org/pdf/2202.01523v1
  • [R41] Tested against engineers' own estimates on 13 real projects developed at JetBrains, the multimodal bus-factor algorithm — which adds code-review and meeting data to version-control data — achieved a mean absolute error of 5.46 against 5.80 for the Avelino et al. version-control-only baseline, and an F1 score of 0.48 (measured on the eight of those projects that supplied key-engineer lists) for identifying key engineers (precision 0.64, recall 0.39). — https://arxiv.org/pdf/2202.01523v1
  • [R42] In that same 13-project JetBrains evaluation, the version-control-only baseline algorithm named as a key developer, for two of the thirteen projects, someone who was no longer active — their last commit dating more than 1.5 years earlier. — https://arxiv.org/pdf/2202.01523v1
  • [R43] Sebastiano A. Piccolo (University of Calabria), in "Fast and Accurate Heuristics for Bus-Factor Estimation" (arXiv, August 2025), states that accurately computing the bus factor is NP-Hard under established formalisations, and shows that the widely adopted degree-based heuristic — removing people in decreasing order of how many tasks they touch — can yield severely inflated estimates. — https://arxiv.org/abs/2508.09828
  • [R46] The 2019 abandonment study resolved developer aliases using a GitHub API feature that maps a commit-header e-mail address to a GitHub account rather than name-matching heuristics, and reports a median of 11% aliases per project — meaning roughly one in nine apparent contributors in a raw git log is a duplicate identity. — https://arxiv.org/pdf/1906.08058v1
back to top

Related Articles

Book 30 min with Albert
Smiling man with short dark hair and glasses wearing a black suit, white shirt, and black tie against blue background.
Tell Albert what you're shipping.
He'll read this before joining the call. Phone number comes next, on the calendar step.
↳ info@you-source.com
↳ 4-hour response
Please wait while we retrieve meeting schedules.
Oops! There's a problem with your request. We're working on fixing it. Please try again later.