Linux源代码公开发布
群体的智慧Linux源代码公开发布将一名芬兰黑客的操作系统项目变成了全球性的分散协作,展现了一个系统如何从分散的专业知识和许多相互竞争的解决方案中汲取力量。林纳斯·托瓦兹没有从上而下地分派程序员的任务,而是邀请贡献者检查代码并提交改进;由此发展起来的Linux成为微软最重要的挑战者。
邀请及早期响应
1991年,林纳斯·托瓦兹创建了自己的Unix操作系统版本,并将其命名为Linux。他公开发布了源代码,使任何能够读懂计算机代码的人都可以使用,并邀请人们贡献可以自由分发的成果。这份邀请不仅仅是允许他人检查一件已经完成的产品;它把外部人士参与改进纳入了项目的设计之中。
人们很快作出了回应。最初下载Linux的十个人中,有五人寄回了错误修复、代码改进或新功能。随着时间推移,这种交流发展成持久的协作流程,成千上万名程序员无偿工作,提交了数以千计的大大小小的修复。操作系统因此变得更加可靠、稳健,而这些贡献无需由任何单一开发团队预先估料。
分散式开发模式
Linux没有所有者,也没有正式组织。与由微软所有并由其员工开发的视窗不同,Linux没有分派工作的老板,也没有界定贡献者职责的组织架构。只有在有人主动提出出色的解决方案时,问题才会得到修复。程序员可以从事自己感兴趣的工作,也可以不理会其他问题。
按照传统管理标准,这种安排显得杂乱无章,但它的开放性让项目得以汇聚范围异常广泛的努力和专业知识。企业可以动员员工解决特定问题,并在其已知的工作领域积累专长;与此同时,企业的人力和时间终究有限,组织内部的政治因素也可能缩小人们考虑的解决方案范围。Linux较少受到这些限制。程序员人数足够多、彼此差异足够大时,有人或许能为某个特定错误设计出修复方案,也可能由另一个人首先发现这个错误。埃里克·雷蒙德用一句话概括了这一优势:“只要有足够多的眼睛,所有错误都浅显易见。”
多样性、搜索与浪费
本书将Linux的运作比作市场,也比作蜂群派出众多采集蜂,希望其中一只找到最佳路线。这种搜索不如挑选最聪明的采集蜂或预先指定路线高效——数百乃至数千名程序员可能花时间追寻解决方案,而最终只有少数人能找到可行办法。若以最终的修复成果衡量,这些努力可能显得浪费。
然而,表面上的浪费也是韧性的来源。项目会产生许多可能的答案,让其中一个好的答案脱颖而出,而不是依赖中央权威事先找出最佳方法。两者的差异并非单纯在于秩序与混乱——Linux松散的结构使协调贡献成为可能,同时保留了其寻找解决方案所依赖的独立性和多样性。从这个意义上说,公开发布为一个开放系统创造了条件,使其既变得更加稳健,也成为微软的主要挑战者。
