Maintaining third-party dependencies in enterprise environments is rarely as simple as running an automated update tool or bumping a version tag in a configuration file. A recent Google case study on open source package maintenance reveals that while routine updates require less than four hours of engineering labor, complex updates can quickly scale into weeks or months of work. The research, titled “How much does it cost to maintain a copy of an open source software package (at Google)?”, provides empirical data on how local customizations, complex dependency graphs, and downstream remediation drive up the real-world operational cost of third-party software.
What the Study Measured
Between April and December 2024, Google tracked the engineering effort involved in 54 internal package updates and surveyed the engineers responsible for executing them. The dataset provides a distinct look into enterprise software supply chain maintenance:
- Language Concentration: 52 of the 54 tracked packages were written in Go.
- Monorepo Model: Google generally maintains a single version of each imported package across its internal repository, meaning an update to a core library affects every internal service using that library simultaneously.
- Low Initial Onboarding Friction: In 52 of the 54 updates, the assigned engineers were fluent in the relevant programming language but completely unfamiliar with the specific package and how it was deployed internally. Despite this, engineers took less than one hour on average to learn enough to start working.
While the study sample represented less than 1% of Google’s total package updates during the observation window and focused primarily on Go packages selected by internal business priorities, the findings offer valuable insight into why enterprise security patching frequently runs into operational friction.
The Heavy Tail of Engineering Labor
The quantitative metrics highlight a severe gap between typical dependency updates and high-friction edge cases:
- The median total effort across all updates was 2.2 engineering hours.
- The average effort jumped to 13.9 engineering hours.
- The single most demanding update required an estimated 400 hours of engineering time.
This disparity underscores the “heavy tail” phenomenon in dependency management. As Sophia Vargas from Google Open Source noted, for updates taking longer than two days, the vast majority of engineering time was consumed by remediation rather than applying the patch itself. Remediation involves resolving downstream dependency conflicts and repairing broken application code caused by upstream functional or structural changes.
Primary Drivers of Maintenance Complexity
Google’s analysis isolated several specific factors that directly correlate with increased update effort:
- Local Customizations (The “Fork Tax”): Out of 47 packages with usable patch-detection metrics, packages containing company-specific patches required a median update effort three times higher than unpatched packages. When an organization modifies its internal copy of an open source tool, engineers must adapt those custom patches to the new codebase, resolve merge conflicts, and re-verify compatibility on every cycle. Surveyed employees identified local patches as the primary cause of extra work.
- External Dependencies and Upstream Churn: Packages with a high volume of external dependencies and active upstream contributors consistently required more labor to update. Higher repository activity upstream frequently introduces architectural shifts and deprecated methods that cascade into downstream environments.
- Non-Factors: Interestingly, the time elapsed since a package’s previous update, the installation age of the version, and internal usage levels showed no consistent relationship with update complexity.
Security Context and Supply Chain Hygiene
From a security architecture perspective, these metrics illustrate why vulnerability patching schedules often slip. Organizations frequently adopt open source packages believing they are a cheaper alternative to internal development, but they fail to account for the ongoing maintenance overhead.
When a critical vulnerability is disclosed in a widely used library, security teams issue mandates to apply updates immediately. However, if that library has been modified internally or sits at the root of a dense dependency graph, bumping the version can trigger widespread breakage across dependent applications. This creates an immediate operational trade-off:
- Vulnerability Exposure: If fixing downstream breakage takes hundreds of engineering hours, business units face pressure to delay security updates, leaving known vulnerabilities exposed in production.
- Technical Debt Compounding: Carrying local patches creates a recurring penalty on every subsequent security release, making emergency patching significantly harder when active exploitation occurs.
- Transitive Risks: Deep dependency chains mean that a fix for a low-level package can force refactoring across multiple intermediate libraries before the target application even compiles.
Operational Takeaways
To reduce the maintenance drag identified in Google’s research, security and platform engineering teams should focus on structural dependency management:
- Minimize Local Forks: Enforce an “upstream first” policy requiring custom patches and features to be contributed back to the original project whenever possible. Eliminating local patch delta is the single most effective way to cut median update labor.
- Automate Downstream Integration Testing: Because remediation dominates complex updates, robust continuous integration (CI) pipelines that immediately surface breaking API changes prevent long, manual debugging cycles.
- Prune Unnecessary Dependencies: Evaluate the long-term maintenance cost of adding third-party code during initial design reviews, favoring lightweight, well-maintained libraries with minimal transitive dependency trees.
Related content
Adobe Fixes Critical Magento Zero-Day Exploited in Server Hijacking Attacks
Security NewsAdobe Patches Critical StyleSmuggler Zero-Day Exploited in Magento (CVE-2026-75650)
Security NewsGitHub and PyPI Introduce New Rules to Counter Open Source Supply Chain Attacks
Security NewsGitHub and PyPI Add Time-Based Defenses Against Supply Chain Attacks
Found something similar in your stack?
Let's find out before it becomes an incident.
Book an advisory call