Package Management Is a Wicked Problem
4 months ago
- #package-management
- #wicked-problems
- #software-development
- 霍斯特·里特尔和梅尔文·韦伯于1973年在城市规划领域提出'棘手问题'概念,将其描述为试图解决时会发生变化的难题。
- 软件包管理因其复杂性成为典型棘手问题——涉及数百万个软件包、版本和下载依赖,微小改进都会影响所有关联项目。
- 里特尔与韦伯提出的十个棘手问题特征,每个都适用于软件包管理领域:
- 1. 无明确界定:问题与解决方案相互纠缠,不同群体对'软件包管理'等术语存在理解差异
- 2. 无终止规则:软件包管理器持续演进,不存在终极解决方案
- 3. 好坏判断而非真伪判断:解决方案具有主观性,取决于利益相关方立场
- 4. 缺乏即时/终极检验标准:决策后果随时间显现,难以评估替代方案
- 5. 不可逆的影响:如PyPI的抢注漏洞或npm的版本范围设定都会产生持久效应
- 6. 无明确解决方案集:利益相关方的目标冲突导致无法穷尽所有可能方案
- 7. 本质独特性:不同系统(如npm/Cargo/Python)需要特定情境的解决方案
- 8. 其他问题的表征:软件供应链安全等议题与更广泛的系统性问题交织
- 9. 多重归因解释:不同利益方对问题成因及解决方案存在竞争性理论
- 10. 不容试错:软件包管理器设计者责任重大,失误成本极高
- 该理论框架解释了为何软件包管理进展缓慢且解决方案常引发新问题。
- 里特尔和韦伯主张参与式规划,强调利益相关方协作与持续迭代改进。
- 文章建议将焦点从追求完美工具转向改善沟通与接口设计,例如建立软件包管理的通用协议标准。