殊途同归还是分道扬镳
感谢洛基开放文化实验室的译文
https://code.google.com/p/book-on-foss/downloads/list
Raymond这本书中也大量引述了Brooks《人月神话》中的观点,并予以讨论
Brooks的新作《设计原本》的提到了这本书,并给了很高的评价,真实英雄相惜啊
这本书旨在探讨Linux集市式的开发模式是成功的原因和意义
写于1999年,13年后,除了linux以外,Mozilla Firefox的成功再次印证了集市模式的可行性
如今虽然集市模式并没有成为主流,但是可以明显的发现,传统的软件开发模型中注入了大量集市模式的元素,如今流行的Scrum等敏捷方法论中大量借鉴了集市式开发的思想和实践,比如code review、pair programming、self-organize等等。
软件产品日趋复杂,工作趋于细分,开发者已经逐渐不是自己产品的用户,这种状态下只能引入大量的管理手段来控制项目。
集市模式提供了一个反管理的模式,一个自组织的社区,自发的培育出高质量的软件
目前集市模式两个成功的例子:Linux和Firefox都是技术型产品,但是Firefox比Linux往前迈了一大步,毕竟firefox的大部分用户不是开发者,我很期待一个集市模式下产生的商业产品
摘要
个人热情
(01) 一个好的软件的起因都是戳到了开发者本人的痛处
(02) 好的程序员知道写什么,伟大的程序员知道重写和复用
(03) “放弃一个,无论如何你总要放弃一个”(《人月神话》 11章)
(04) 如果你有正确的态度,有意思的问题会找到你
(05) 当你对一个项目失去兴趣的时候,你的最后职责是把他交接给一个称职的继任者
有用户
(06) 将用户吸纳为合作开发者,是快速改进代码和调试bug的最佳途径
不停快速发布
(07) 早发布、常发布,听取用户意见
通过快速发布反馈把在bug上的重复做功最小化
(08) “只要眼睛足够多,所有bug都好捉”
源码级别的bug报告比一般用户和测试的bug报告更有效,因为开发者和其他人的脑中的程序模型不一样,开发这从里往外看,测试者反之
作者Fetchmail项目实践
(09) 聪明的数据结构比逻辑良好的代码更重要
(10) 重视你的beta版测试者,他们是项目的重要资源
(11) 自己拥有好主意固然不错,但有时候用户的好主意更好
(12) 最有突破和创新的方案常常来自于意识到自己把问题的模型弄错了
(13) 设计达到完美的时候,不是增加的不能再增加了,而是减少的不能再减少了
(14) 任何一个工具都应该达到预期的用处,但是真正好的工具会带来意料之外的用处
(15) 写任何网关软件的时候,不要干扰数据流
(16) 多数时候语言对于人的方便比对于计算机的方便更重要
(17) 一个安全系统的安全性取决于它保守的秘密的安全性,小心伪秘密
市集式开发的必要前提
(18) 要解决一个有意思的问题,首先得找到一个有意思的问题
项目不能从零开始,至少有一个可以跑的原型
设计的原创性不是成功市集项目的关键
项目发起者有一点吸引人的本领是十分重要的
封闭环境中只使用个人脑力的开发者,将会输给一个知道怎样创造一个开放的、进化式的环境——从中吸收成千上万人的探索设计空间的反馈、编码贡献、bug hunting和其他改进——的开发者
执照许可、专利、贸易秘密和商业利益等法律限制会抑制集市的发展
(19) 如果开发的协调者有一个至少和互联网一样好的通讯媒介,而且懂得如何不通过强迫来领导,多个头脑不可避免地优于单个头脑
linux黑客们的功效方程是他们的自我满足和在其他黑客中的声望这些摸不着的东西 “egoboo”
集市模式 or 大教堂?
管理 or 反管理
钱 or 兴趣
在构建成功软件的路上,大教堂和集市是殊途同归还是分道扬镳,作者没有给出答案,但是从现代软件工程方法论的进化来看两条路在越走越近
https://code.google.com/p/book-on-foss/downloads/list
Raymond这本书中也大量引述了Brooks《人月神话》中的观点,并予以讨论
Brooks的新作《设计原本》的提到了这本书,并给了很高的评价,真实英雄相惜啊
这本书旨在探讨Linux集市式的开发模式是成功的原因和意义
写于1999年,13年后,除了linux以外,Mozilla Firefox的成功再次印证了集市模式的可行性
如今虽然集市模式并没有成为主流,但是可以明显的发现,传统的软件开发模型中注入了大量集市模式的元素,如今流行的Scrum等敏捷方法论中大量借鉴了集市式开发的思想和实践,比如code review、pair programming、self-organize等等。
软件产品日趋复杂,工作趋于细分,开发者已经逐渐不是自己产品的用户,这种状态下只能引入大量的管理手段来控制项目。
集市模式提供了一个反管理的模式,一个自组织的社区,自发的培育出高质量的软件
目前集市模式两个成功的例子:Linux和Firefox都是技术型产品,但是Firefox比Linux往前迈了一大步,毕竟firefox的大部分用户不是开发者,我很期待一个集市模式下产生的商业产品
摘要
个人热情
(01) 一个好的软件的起因都是戳到了开发者本人的痛处
(02) 好的程序员知道写什么,伟大的程序员知道重写和复用
(03) “放弃一个,无论如何你总要放弃一个”(《人月神话》 11章)
(04) 如果你有正确的态度,有意思的问题会找到你
(05) 当你对一个项目失去兴趣的时候,你的最后职责是把他交接给一个称职的继任者
有用户
(06) 将用户吸纳为合作开发者,是快速改进代码和调试bug的最佳途径
不停快速发布
(07) 早发布、常发布,听取用户意见
通过快速发布反馈把在bug上的重复做功最小化
(08) “只要眼睛足够多,所有bug都好捉”
源码级别的bug报告比一般用户和测试的bug报告更有效,因为开发者和其他人的脑中的程序模型不一样,开发这从里往外看,测试者反之
作者Fetchmail项目实践
(09) 聪明的数据结构比逻辑良好的代码更重要
(10) 重视你的beta版测试者,他们是项目的重要资源
(11) 自己拥有好主意固然不错,但有时候用户的好主意更好
(12) 最有突破和创新的方案常常来自于意识到自己把问题的模型弄错了
(13) 设计达到完美的时候,不是增加的不能再增加了,而是减少的不能再减少了
(14) 任何一个工具都应该达到预期的用处,但是真正好的工具会带来意料之外的用处
(15) 写任何网关软件的时候,不要干扰数据流
(16) 多数时候语言对于人的方便比对于计算机的方便更重要
(17) 一个安全系统的安全性取决于它保守的秘密的安全性,小心伪秘密
市集式开发的必要前提
(18) 要解决一个有意思的问题,首先得找到一个有意思的问题
项目不能从零开始,至少有一个可以跑的原型
设计的原创性不是成功市集项目的关键
项目发起者有一点吸引人的本领是十分重要的
封闭环境中只使用个人脑力的开发者,将会输给一个知道怎样创造一个开放的、进化式的环境——从中吸收成千上万人的探索设计空间的反馈、编码贡献、bug hunting和其他改进——的开发者
执照许可、专利、贸易秘密和商业利益等法律限制会抑制集市的发展
(19) 如果开发的协调者有一个至少和互联网一样好的通讯媒介,而且懂得如何不通过强迫来领导,多个头脑不可避免地优于单个头脑
linux黑客们的功效方程是他们的自我满足和在其他黑客中的声望这些摸不着的东西 “egoboo”
集市模式 or 大教堂?
管理 or 反管理
钱 or 兴趣
在构建成功软件的路上,大教堂和集市是殊途同归还是分道扬镳,作者没有给出答案,但是从现代软件工程方法论的进化来看两条路在越走越近
有关键情节透露