Hasty Briefsbeta

Bilingual

Package Management as Org Chart

9 hours ago
  • #dependency-management
  • #software-architecture
  • #organizational-structure
  • Conway’s Law states that an organization's system design mirrors its communication structure, including dependency management strategies.
  • Dependency management tools encode resolution strategies and manifest formats that define permissible dependencies and how conflicts are resolved.
  • Different strategies reflect organizational dynamics: monorepos enforce uniformity, workspaces allow autonomy, and tools like Bazel enforce explicit dependencies.
  • Maven uses 'nearest-wins' mediation, prioritizing proximity in the dependency tree, akin to top-down organizational decision-making.
  • Containerization (e.g., Docker) shifts control to developers, while infrastructure-as-code (e.g., Terraform) creates interfaces to reduce paging.
  • Runtime dependency negotiation (e.g., module federation) defers version resolution to avoid inter-team conflicts, reflecting fragmented leadership.
  • Strategies like vendoring dependencies or using lockfiles represent responses to past issues, such as upstream instability or bad experiences.
  • Automated tools (e.g., semantic-release) reduce human liability in releases, and Go's MVS ensures upgrades occur only when explicitly required.
  • Onboarding tools (e.g., Brewfile) may formalize processes but often fail, relying on informal support channels like Slack for actual setup.