Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

5.2 超越布鲁克斯定律

我第一次接触 Linux 是在 1993 年末,当时用的是开创性的 Yggdrasil 光盘发行版,那时我参与黑客文化活动已经有了 15 个年头。早年我接触过 70 年代末期尚不成熟的阿帕网,还短暂体验过 ITS 主机。早在 1984 年 FSF 成立前,我就已经开发了自由软件并发布到 Usenet 新闻组,也是 FSF 最早的贡献者之一。当时我刚出版了《新黑客词典》第二版,自认对黑客文化以及它存在的短板,都有相当透彻的认知。

我在其他文章里提过,我初次见到 Linux 时内心十分震撼。虽说我已在黑客文化中活跃多年,但我脑海中仍然暗藏着一个没验证过的固有观念:业余黑客即便天赋出众,也凑不齐足够的资源与技术,做出一套能稳定运行的多任务操作系统。毕竟 HURD 项目的研发团队,为此攻坚 10 年也没有见到成效。

可林纳斯・托瓦兹和他的社区,做成了这件他们没能完成的事,而且他们不只是达到了稳定运行、兼容 Unix 接口的基础门槛,他们的成就远不止于此。他们以充沛的精力和独到的才华远远超越了这个标准,配套程序、文档与各类资源累计数百兆。完整的网络工具套件、桌面排版软件、图形组件、文本编辑器、各类游戏,一应俱全。

当我看到这场绝妙的代码盛宴以一套工作系统的形态展现在我面前时,那种体验要比理智上直到“这些代码片段散落各处”要震撼得多。这好比多年以来我一直在整理一堆零散的汽车零部件,一转头却看见这些零件被组装成一台锃亮的红色法拉利:车门敞开,钥匙挂在锁孔上,引擎轻声低鸣,蓄势待发……

我持续观察了 20 年的黑客传统,忽然以一种充满活力的全新形态焕发生机。某种程度上,我早已是这个社区的一员了——我个人开发的多款自由软件项目都已经被整合进了 Linux 生态。但我希望更深入地参与其中……因为每一项亮眼的成果,都让我更加困惑。这简直好得令人难以置信!

软件工程的经典法则深受布鲁克斯定律支配,该定律出自弗雷德・布鲁克斯的经典著作《人月神话》。布鲁克斯提出:当开发人数 N 增加时,完成的工作量按 N 增长,但系统复杂度、对缺陷的脆弱性会以 N² 的量级上升;N² 对应的是开发者代码仓库之间沟通路径(以及潜在代码接口)的数量。

按照布鲁克斯定律的预测,拥有几千贡献者的项目,必然结构松散、稳定性差。可 Linux 社区却突破了这种 N² 量级的沟通损耗效应,产出了一个质量高得惊人的操作系统。我下定决心,要弄清楚他们实现这一切的底层逻辑。

我花了 3 年深度参与、持续观察,形成了一套理论,又用了 1 年时间通过实际项目验证这套逻辑。之后我动笔写下《大教堂与集市》,系统阐释自己观察到的这套全新开发模式。