Package Management Is a Wicked Problem

https://news.ycombinator.com/rss Hits: 2
Summary

In 1973, Horst Rittel and Melvin Webber published “Dilemmas in a General Theory of Planning”, introducing the concept of “wicked problems” in urban planning. These aren’t just hard problems. They’re problems where the act of trying to solve them changes what the problem is. Problems where you can’t test solutions in advance. Problems where every stakeholder has a different definition of success. Package management fits the definition. I’ve spent years working on package manager data and tooling, and the more I learn, the more the wicked problem framework explains why progress feels so difficult. Tens of millions of packages, hundreds of millions of versions, trillions of downloads. Small improvements at this layer affect every project built on top. Rittel and Webber identified ten characteristics that distinguish wicked problems from tame ones. Here’s how each one applies to the work of managing software dependencies. 1. No definitive formulation “Formulating the problem and the solution are essentially the same thing.” The term itself is ambiguous. Say “package management” and some people think npm or Cargo, others think apt or Homebrew. One is about managing dependencies while building software, the other about installing finished tools and libraries onto a system. Same words, different problems. Even within a single ecosystem, the naming is contested: is the unit a package, a module, a crate, a distribution? These aren’t synonyms. They encode different assumptions about what gets versioned, what gets published, and what gets installed. Package management is naming all the way down, and naming is famously one of the two hard problems in computer science. Ask ten people what package management should accomplish and you’ll get ten different answers. Should it prioritize reproducibility or freshness? Security or convenience? Should it be centralized for coordination or federated for resilience? The answers shape the problem definition. When npm added lockfiles, it wa...

First seen: 2026-01-28 15:27

Last seen: 2026-01-28 16:27