《大教堂与集市》
这是一本开源发展历程的书。而推动开源社区发展的就是黑客。大教堂和集市是两种不同的开发方式。里面有很多专业术语。在阅读前你需要了解很多背景知识。我刚刚看的时候还是很懵的。虽然不好读,但跳过那些不熟悉的专业名词,也不会影响你理解作者想要表达的内容。
大教堂和集市指的是两种不同的开发模式。大教堂就是公司聘请员工,有规划的开发软件。集市则是开源的方式,大家因为兴趣或者因为某个问题而驱动去开发。我认为这本书想要表达的一个核心观点就是,大教堂模式开发的软件问题多,修复慢,不如开源出来,让所有人一起来完善软件。而公司则不再通过软件的“销售价值”来赚钱,而可以变通成为通过服务来赚钱。
开源的优势在于,软件存在的问题更容易被暴露出来。因为用的人多,他们能够和精准地把 bug 反馈出来。而这些反馈一般都是“源码级”的反馈,会很好地帮助黑客们进行软件修复。这种众人齐心协力解决问题、完善软件的行为,让软件越来越”完美“。
Linux 是第一个通过模式被开发出来的非常复杂的操作系统。在当时是不可思议的。就像是一群“乌合之众”造出来世界上最精致的工具一样,让人难以置信。从此,开源模式开始流行。我们现在使用的很多中间件、软件工具都是开源的。大家最近熟知的可能就是区块链,区块链的底层也都是开源的。
这是怎么做到的呢?要知道,在《人月神话》这本书里,有一个 Brooks 定律,讲的是项目的复杂度和沟通成本与开发人数的平方成正比。跟我以前听到的复杂性定律类似。复杂性定律讲的是工作的复杂度等于工作步骤的平方。对于软件开发来说,参与研发的人数越多,项目需要完成的时间越长,出错的可能性也就越大。
那 linux 系统的开发工作明显就不满足这个复杂性定律了。是什么原因呢?我的理解是,因为开源的规则本身就把任务切分为一个个非常小的模块,每个开发人员参与研发都遵循特定的编码规范。这样,只针对这一个模块是不需要进行大量沟通的。复杂度就不会增加。而且,每个提交的修改版本,都会有人专门审核,这样就建立了一种自我纠错的能力。开源软件就是这样生长出来的。
最后,看完本书后,我自己有一个感觉,那就是开源的一些特点其实已经深入到公司的开发中了。比如,开源发布频率非常高,我们现在开发软件也是如此。还有,我们说要以解决问题为导向,用软件的实用价值驱动开发人员。让开发人员从心底里感到自豪、满足。这跟开源基于兴趣和问题驱动是一样的。这背后的底层动机是利他,但利他本身也是利他者的自我满足的外在表现。利他最终会利己。就像那句谚语说的, 好人终有好报。
对于开发人员来说,开源带来的不仅仅是表面的被尊重,被满足的价值。在真实职场里,开源项目的贡献是面试的直通车,是个人能力的体现。
如果所有软件都开源,那么很多程序员是不是就找不到工作了?并不会,开源只是减少已有工作的开发,但事实上,我们在工作中需求的开发有停过吗?而且,随着开源的兴起,对开源的维护和支持也会产生更多新的岗位。社会整体是更高效了。
最最后,感谢 @李宇飞同学的赠书。否则我估计不会去看这本难啃的书。
版权声明: 本文为 InfoQ 作者【石云升】的原创文章。
原文链接:【http://xie.infoq.cn/article/88289349064a2acc9288f6d43】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论