Package Management
CMPR: Signs You’re a Level 3 in Package Maturity
This article is 3/5 in our series on Centrally Managed Package Repositories, also available as a chapter in our free, downloadable eBook Package Management at Scale
An organization at this level demonstrates a degree of technical maturity and team autonomy, with tailored tools and pipelines across projects. But without centralized oversight, this fragmented approach creates inefficiencies, inconsistent standards, and hidden organizational risks.
Your organization is technically sophisticated. You’ve got CI/CD pipelines humming with tools like GitLab, Jenkins, or TeamCity, and security scanners like Snyk are integrated into your workflows. Each team or project has its own package feeds, like Verdaccio for npm or BaGet for NuGet, tailored to its specific needs. It feels efficient: governance and security are customized for each technology or project. But this fragmented approach hides a deeper issue. Without centralized oversight, you can’t see if one team’s standards are lagging, leading to inefficiencies and risks across the organization. This puts your organization at Level 3.
Level 3 organizations are like teams working in separate locked rooms. Each does good work, but they are unable to share or benefit from each other’s efforts. Just as fragmented ownership can underuse shared resources, siloed package management underutilizes developer effort, approved packages, and governance policies. Teams optimize locally for good reasons, but this creates duplication, inconsistency, and blind spots at the organizational level. Well-funded teams mask these inefficiencies with more tools or staff, but when resources tighten, let’s say, during a 50% headcount reduction, these become glaring gaps.
In this chapter, we’ll explore how organizations end up at Level 3, why their fragmented approach is a hidden liability, and how to evolve to Level 4 with strategic, centralized package management.
| Centralization | Fragmented package registries make it difficult for developers to discover and reuse packages across teams, slowing development and onboarding. |
| Governance | Security is inconsistent and reactive, with vulnerabilities often caught too late and no unified pre-download scanning across sources. |
| Curation | Team-level governance exists, but without centralized standards, policies vary widely and are easily bypassed. |
| Distribution | Package usage and provenance data are scattered, making audits and incident response time-consuming and error-prone. |
| Scalability | While automation exists within teams, siloed tools and inconsistent practices create inefficiencies that don’t scale. |
How Organizations End Up at Level 3
Level 3 often emerges as software organizations grow and prioritize team autonomy. Each team adopts its own package management tools like Maven for Java or BaGet for .NET. They may also incorporate custom security scans and governance tailored to their specific needs. This makes sense in diverse environments, where regulated apps demand strict compliance and internal tools can tolerate lighter oversight. CI tools like GitHub Actions and scanners like Snyk are integrated, but only within team boundaries.
This autonomy, while practical, leads to “tool sprawl” and “pipeline sprawl.” Teams build and maintain their own feeds, scripts, and workflows, often without coordination. Governance varies widely, policies are manually enforced, and security scans produce untriaged noise. Well-funded teams may paper over these gaps with extra tools or staff, but the approach lacks long-term resilience.
When budgets shrink or headcount drops, the fragility becomes clear. Redundant effort, inconsistent standards, and duplicated tooling slow progress and increase risk. What began as flexible optimization turns into organizational drag. This highlights the need for centralized visibility, standardization, and strategic alignment. This fragmentation doesn’t just show up in workflows; it’s reflected across the core dimensions of package management. To better understand the risks and limitations of Level 3, let’s look at how these patterns play out across our five CMPR pillars.
What A Level 3 Organization Looks Like
At Level 3, your organization likely exhibits these characteristics across the five CMPR pillars:
- Centralization: Decentralized and fragmented. Teams use tech-specific package managers (e.g., Verdaccio for npm, BaGet for NuGet) or CI tools as artifact stores, each optimized for local needs. There’s no unified repository, so packages are scattered across team-level feeds or Git repos.
- Governance: Localized and inconsistent. Teams set their own policies (e.g., vulnerability checks or version controls), but there’s no global standard. Enforcement relies on manual effort or individual diligence, and role-based access control (RBAC) is minimal.
- Curation: Team-specific and reactive. Teams may scan packages for vulnerabilities using tools like Snyk, but that’s not really curation; it’s scanning what’s already in the pipeline, and it happens locally. There’s no organization-wide gatekeeping of incoming packages.
- Distribution: Siloed and ad-hoc. Packages are shared via team-specific feeds, Git repos, or shared drives. There’s no standardized promotion workflow (e.g., dev → test → prod), and global teams face inconsistent access or versions.
- Scalability: Stretched by growth. As teams, ecosystems, and package volumes grow, storage bloats, builds slow, and infrastructure strains. High availability or load balance of OSS packages is going to be extremely challenging because you have to set up HA and LB architectures for each silo.
Without a centralized, organization-wide approach, Level 3 organizations face growing inefficiencies and hidden risks. Fragmented control means duplicated effort, inconsistent standards, and missed opportunities to leverage shared resources effectively. This sets the stage for the real-world impact of staying at Level 3: the “boiling frog” effect, where isolated teams and siloed practices gradually erode agility, security, and scalability across the organization.
Impact of staying at Level 3: The Boiling Frog
Level 3 organizations differ by tech stack, team size, and regulatory context, but all rely on team-level optimization instead of centralized coordination. This leads to silos, duplicated effort, and underused resources.
For example, an in-house IT team at a manufacturing company might manage both legacy infrastructure and factory automation software that requires frequent updates. A software vendor is likely polyglot by nature. Some organizations have both regulated and non-regulated teams working side by side.
Not every issue applies to every team. However, across the board, these organizations face the same structural problem: teams operate in isolation, and attempts to fix things with more tools or automation often fall short without coordination.
Developer Enablement
⚠ Redundant Effort: Without a centralized repository, developers repeatedly spend time rediscovering or re-evaluating packages that other teams have already vetted and approved. This duplication not only wastes valuable development hours but also delays project timelines and reduces overall productivity.
⚠ Slow Onboarding: New hires face a steep learning curve as they struggle to locate approved packages scattered across multiple feeds, Git repositories, or shared drives. This fragmentation slows their ability to contribute effectively, prolonging ramp-up time and increasing the cost of bringing new team members up to speed.
⚠ Underutilized Internal Packages: Valuable internal libraries and tools created by one team often remain hidden and inaccessible to others due to siloed storage. This lack of reuse forces teams to reinvent the wheel, leading to duplicated work, inconsistent implementations, and missed opportunities for improving code quality and efficiency.
⚠ Inefficient Collaboration: Cross-team projects are hampered by inconsistent package sources, creating challenges in aligning dependencies and troubleshooting version mismatches. These issues slow down development cycles, increase coordination overhead, and become even more critical when headcount is tight, putting additional pressure on already stretched teams.
Security
⚠ Inconsistent Standards: When security practices vary widely across teams, some using advanced scanners like Snyk while others rely on default settings or skip scanning indirect dependencies. This creates weak spots that can compromise the entire organization. A vulnerability missed by one team can easily spread risk, increasing the chance of breaches.
⚠ Unscanned Transitive Dependencies: Many teams focus only on scanning the top-level packages, overlooking the dozens of indirect dependencies bundled within (for example, an average npm package has 79). This reactive approach leaves hidden vulnerabilities unchecked, increasing the attack surface. Adding more security tools often creates operational headaches, like managing multiple dashboards, handling overwhelming alerts, and dealing with poor integration. But it doesn’t solve the core problem of lacking clear, organization-wide visibility.
⚠ Risk of Malicious Packages: Without a centralized gatekeeping process, teams pulling packages directly from public registries like npmjs.org or PyPI are vulnerable to typosquatting and supply chain attacks, which have surged 700% between 2020 and 2023. Relying on multiple security tools to catch these issues can overwhelm teams, whereas a simple pre-installation check could prevent many incidents before they start.
⚠ Scan Result Fatigue: Multiple security scanners produce a flood of alerts, many of which are false positives or low priority. Developers become overwhelmed and desensitized, causing critical issues to be ignored or delayed. While organizations with ample resources can hire staff to triage alerts, teams facing budget or headcount cuts are left vulnerable to increased risks such as missed vulnerabilities and delayed responses to threats.
⚠ Delayed Response to Zero-Day Vulnerabilities: When a new vulnerability emerges, speed is crucial. Without centralized visibility into which applications or teams use the affected packages, tracking down exposures across scattered repositories and pipelines wastes precious time. This delay increases the risk of exploitation. Centralized storage linked to deployment records would enable rapid impact assessment and swift actions like patching, blocking, or rolling back vulnerable packages before threats reach production.
Governance
⚠ Policy Drift: When teams create their own policies for package approval, naming, or versioning, inconsistencies quickly arise. For example, one team strictly follows Semantic Versioning (SemVer), while another allows informal versioning. This lack of uniformity causes confusion, dependency conflicts, and integration issues across projects, slowing development and increasing the risk of bugs or failures during deployment.
⚠ Shadow IT: When governance processes are overly manual or cumbersome, developers often bypass them to meet deadlines, pulling unapproved packages directly from public registries. This practice undermines organizational control, exposing the company to legal and security risks from unvetted or incompatible packages. It also creates blind spots for compliance audits and weakens overall software supply chain integrity.
⚠ Lack of Global Standards: Without centralized role-based access control (RBAC) or consistent approval workflows, enforcing license or security policies across the organization is nearly impossible. Teams might unknowingly use restrictive licenses like GPL in proprietary software, exposing the company to legal disputes and costly remediation efforts.
⚠ Inefficient Oversight: Governance processes that rely on manual efforts or individual vigilance require significant staffing to maintain. While well-funded organizations can absorb this overhead, teams facing budget cuts struggle to keep up, leaving critical compliance gaps open. These gaps can result in regulatory fines, security breaches, and damage to company reputation.
⚠ Fragmented Accountability: With no single team responsible for organization-wide governance, policies become fragmented and inconsistently applied. This anarchical environment allows weaker standards to persist unnoticed, increasing the risk of non-compliance and making it difficult to respond effectively to incidents or audits. Ultimately, it weakens the organization’s overall risk management posture.
Auditability
⚠ No Unified Source of Truth: When packages are scattered across multiple feeds, Git repositories, and CI artifacts, it becomes nearly impossible to get a clear, organization-wide picture of package usage. This fragmentation hinders accurate tracking, making it difficult to identify where specific packages are used or whether they comply with policies, which complicates incident response and risk management.
⚠ Labor-Intensive SBOM Generation: Creating a Software Bill of Materials (SBOM) across siloed systems requires extensive manual effort. This process is not only time-consuming but also prone to errors, increasing the risk of incomplete or inaccurate reports. Under increasing regulatory pressure to provide SBOMs, this inefficiency can lead to missed deadlines, non-compliance penalties, and weakened supply chain transparency.
⚠ Untracked Licenses: Without centralized license management, teams may unknowingly use packages with restrictive licenses such as AGPL. This exposes the organization to legal liabilities, intellectual property disputes, and costly remediation efforts. While well-resourced companies can afford manual audits, resource-strapped teams often fail to detect these risks, increasing vulnerability.
⚠ Invisible Gaps: In the absence of centralized oversight, weaker standards within individual teams often go unnoticed. This creates hidden compliance risks such as skipped license checks or incomplete vulnerability assessments. These usually only surface during audits, potentially resulting in fines, reputational damage, or forced rework.
⚠ Delayed Audit Response: Gathering audit data from fragmented sources is slow and inefficient, making it difficult for organizations to respond promptly to regulatory requests or security investigations. This delay leaves the organization vulnerable to extended exposure during incidents and hampers its ability to demonstrate compliance, especially when staff resources are limited.
Scalability
⚠ Bloated Storage: When each team maintains its own package feeds, redundant copies of the same packages accumulate across the organization. This inflates storage costs unnecessarily and adds complexity to managing backups, retention policies, and infrastructure planning. This is especially true as package volumes grow.
⚠ Slow Builds: In smaller teams or slower release cycles, performance issues may go unnoticed. But as teams grow and builds become more frequent, the impact adds up. Packages are pulled repeatedly from external registries or scattered internal feeds. This strains bandwidth, clogs pipelines, and ultimately slows down development. Global teams accessing poorly mirrored servers feel this even more acutely, resulting in longer build times, wasted compute resources, and frustrated developers.
⚠ Fragile Infrastructure: Lightweight, team-level tools like Verdaccio or BaGet often lack critical features like high availability, load balancing, or geographic replication. As a result, outages in a single-node repository can halt builds across entire departments, creating bottlenecks and downtime. This is especially damaging when infrastructure or DevOps support is limited.
⚠ Tool Sprawl: As teams adopt different tools for different ecosystems (e.g., NuGet.Server for .NET, Verdaccio for npm, etc.), the organization ends up with a patchwork of incompatible systems. This lack of standardization hinders visibility and increases maintenance overhead. It also makes it nearly impossible to coordinate governance, security, and auditing efforts at scale.
⚠ Inability to Support Growth: As the organization grows in team size, technology diversity, and release velocity, these fragmented solutions simply can’t keep up. The absence of a centralized, scalable package management strategy becomes a bottleneck. This limits the organization’s ability to move quickly, maintain reliability, and respond to change efficiently.

Moving Forward: Evolving from Team-Level Autonomy to Organization-Wide Coordination
At Level 3, organizations often achieve technical maturity within teams, using ecosystem-specific tools, scanners, and local registries to manage their own package workflows. But without central coordination, these efforts remain fragmented. Tool sprawl, policy drift, and duplicated effort slow development and increase organizational risk.
To break out of this fragmented model, teams need more than just better tools; they need structural alignment. Advancing to Level 4 means shifting from isolated, team-level optimization to unified, cross-team enablement through centralization, coordination, and platform thinking.
✅ Centralization: Moving beyond project-specific registries and isolated CI storage requires consolidating packages into a single, trusted internal registry like ProGet. This becomes the source of truth for all ecosystems, enabling consistency in consumption, approvals, and policies across teams.
Why this helps: Centralization reduces redundant effort, improves package discoverability, and simplifies development workflows across technologies, creating the foundation for scale.
✅ Coordination: Level 4 organizations establish shared governance structures, approval workflows, and vulnerability policies that balance standardization with team autonomy. This shift requires deliberate planning, cross-functional buy-in, and often external expertise to accelerate execution.
Why this helps: Coordinated governance ensures that teams align on compliance, security, and quality standards, reducing risk without slowing innovation.
✅ Acceleration: Making this transition doesn’t have to mean starting from scratch. A guided assessment and implementation plan, like the one Inedo offers, can help identify friction points, consolidate tooling, and roll out policies that scale with your organization’s growth.
Why this helps: With expert support and a clear roadmap, organizations can move quickly from reactive processes to proactive control. This strengthens both developer productivity and platform resilience.

By progressing to Level 4, organizations create a reliable, secure, and scalable foundation for software delivery, one that supports modern development demands while reducing the operational burden on individual teams.
Where Are You Now? Map Assess Your Maturity and Plot Your Path Forward
Assessing package management maturity from inside an organization can be challenging. Internal reviews often miss gaps or assume practices are stronger than they are. A guided assessment with our team helps uncover these blind spots. With cross-industry experience, we highlight risks and opportunities that might otherwise go unnoticed.
You can schedule your assessment directly from our homepage:
The report you receive will map your current practices to our maturity model, offering a strategic overview along with level-specific guidance for practical action.
In the meantime, our guide that this article came from, Package Management at Scale, is available for download. It provides insights on centralization, distribution, and curation, along with a hands-on rubric for evaluating your team’s maturity. Download your free copy today!