偶然困难
概述
偶然困难是指由当前实现技术的不完善所造成的困难,是软件开发中由于工具和方法不够好而产生的障碍,可通过改进技术来消除。
关键内容
- 特征:
- 由当前实现技术的不完善造成
- 属于工具和方法层面的困难
-
可通过技术进步和工具改进来消除
-
典型例子:
- 机器语言时代的手动寄存器分配和内存地址管理
- 从汇编语言到高级语言的发展消除了大量编码困难
- 从单用户系统到分时系统缩短了反馈周期
-
统一编程环境(如Unix)的建立
-
与本质困难的关系:
- 与"本质困难"相对
- 过去几十年的主要技术进步主要消除了偶然困难
- 随着偶然困难的"低垂果实"被摘完,进一步提升空间变小
- 偶然困难的消除不会解决软件的本质复杂性
来源
- 16-brooks-no-silver-bullet.md — 核心概念阐述
- [[]] —
相关
- 本质困难 — opposite
- No Silver Bullet — central_concept
- 软件工程 — field
- Frederick P. Brooks, Jr. — analyzed_by