大教堂与集市(The Cathedral and the Bazaar)读书笔记
大教堂与集市The Cathedral and the Bazaar,一本不像计算机方面的计算机书籍
命令式管理,适合和奴隶共事
目标共识型管理,适合和自由人共事
心性气层
只要眼多,bug好找
黑客开源:产品相关富足,赢得尊重不是因为占有什么,而是贡献了什么
如果你把它当成资源,它就会成为你的珍贵资源
如果不想做,找一个合适的接手人,知道什么时候收手,是一个不错的主意
“我是一个很懒的人,别人干活,我得荣誉”linus
如果认真的态度对待,机会自然会来。做有价值的事,一直做,早晚会有收获的。虽然劳动的价值来自稀缺性
开发软件不一定要从头开始,有个基础,虽然这些代码早晚要被替换掉,但却会是一个好的脚手架
早发布,多发布。鼓励用户的反馈,以合作开发者的态度和用户交流,会有一个稀缺的bug查找资源
没有用户愿意为一个bug等半年的时间
python,perl,c,c++,java
perl代码可以不用,但要能看懂代码
要以脱离具体语言的思维来考虑问题
学习编程语言,不只是学工具,还有思考方式
一、畅想“企业内部系统开源”
企业内部的软件项目往往涉及企业业务流程,不适于对外公开,而且因为各企业业务的差异,开源后对其他用户的价值也不大。如何能让企业内部软件项目享受到“集市”带来的好处呢?我有几点想法:
1、将中间件、公共组件开源,这类代码不涉及具体业务,而且复用性强,能为更多人带来价值。
2、企业内部共享代码,所有人可以接触到所有代码,记录每个人的贡献作为激励手段。
3、尽量应用开源系统、中间件,为员工创造接触开源项目的机会。
4、借鉴优秀实践,比如“早发布。常发布。听取用户的意见。”等。
二、“开源”和“敏捷”,以工程师为本的软件开发模式
近两年敏捷在国内异常火爆,我们也有幸在11年引入了敏捷开发(袁斌老师是我们的启蒙老师)。工程师是一类特殊的人群,他们兴趣广泛,但是他们可以专注于自己喜欢的事情上;他们喜欢隐藏自己的喜怒,但是他们渴望得到认可;“给我一个支点,我可以撬动地球”,他们笃信通过自己的双手他们可以实现任何奇迹;他们有自己的信仰,他们渴望完美。
为什么会有无数素未谋面的人为了开源项目无私地贡献自己的时间和代码,这是工程师的本性使然。他们无法忍受不完美,他们希望自己创造奇迹,他们希望得到认可。“开源”和“敏捷”之所以成功与流行是因为他们创造了“工程师的天堂”。
Eric Raymond有一篇著名文章《大教堂和集市》(The Cathedral and the Bazaar)。
他说,世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。
当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。
Eric Raymond就问了一个问题,有没有可能用修建集市的方式,造出一所大教堂?
我多年前读过这篇文章,上个星期与朋友在Email里讨论问题时,突然想到了它。
我们的问题是,有一个项目,方案A是精心准备后再投入使用,方案B是将半成品先公开,然后再逐步完善。这让我情不自禁地就想到了"大教堂和集市"这个比喻。
我们想造出一个大教堂,可是眼下只有一个集市,怎么办?
我找出Eric Raymond的这篇文章,重读了一遍,很多模糊的印象一下子清晰起来。到底是经典文章啊,虽然写在10年前,但是很多问题他都考虑到了。
他说,集市要变成大教堂,有几个前提条件:
1)你不能从零开始建设集市,你必须先有一个原始项目。(It's fairly clear that one cannot code from the ground up in bazaar style.)
2)你的原始项目可以有缺陷,但是它必须能运行。(It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is run.)
3)你必须向用户展示一个可行的前景,且让潜在的合作者相信在可预见的将来它会变成一个真正漂亮的东西。(When you start community-building, what you need to be able to present is a plausible promise, and convince potential co-developers that it can be evolved into something really neat in the foreseeable future.)
4)项目的主持者本身不一定是天才,但他一定要能够慧眼识别出他人的优秀想法。(it is not critical that the coordinator be able to originate designs of exceptional brilliance, but it is absolutely critical that the coordinator be able to recognize good design ideas from others.)
5)项目的主持者必须要有良好的人际关系、交流技能和人格魅力。这样才能吸引他人,使别人对你所做的事感兴趣,愿意帮助你。(A bazaar project coordinator or leader must have good people and communications skills.)
4.
以上是一些必要条件,Eric Raymond也总结了一些成功的充分条件。
1)项目首先必须是你自己感兴趣的,但是最终能对其他人有用。
2)将用户当作合作者。
3)尽快地和经常地做出改进,多听取用户的意见。
4)健壮的结构远比精巧的设计来得重要。换句话说,结构是第一位的,功能是第二位的。
5)保持项目的简单性。设计达到完美的时候,不是无法再增加东西了,而是无法再减少东西了。
5.
Eric Raymond这篇文章,原始目的是要分析Linux的成功之道。为什么一个本科生的业余作品,最后竟变成了全世界最流行的操作系统之一?一个简陋的集市究竟是怎样变成壮丽的大教堂的?这个过程是否是可复制和推广的?
他认为,这就是开放的威力。一个开放式的项目,如果加以良好的管理和运作,能取得比同等的封闭式项目大得多的成功。
他这样看待大教堂和集市之间的竞争:
我认为,未来会更多地属于那些告别大教堂、拥抱集市的人们。
这不是说个人的远见和才华不再重要;而是在我看来,未来的成功者只是从自己的远见和才华开始工作,然后通过有效的社区合作,将其不断地放大。
开放式的文化会最终胜利,这或许不是因为"开放"在道德上正确,或者"封闭"在道德上错误,而只是因为开放式合作可以在一个问题上投入多几个数量级的技术工时,封闭的世界无法赢得这样的竞争。
大教堂与集市(The Cathedral and the Bazaar)读书笔记的更多相关文章
- 《大教堂和集市》笔记——为什么一个本科生业余作品却成了全世界最流行的操作系统之一Linux?
1. Eric Raymond有一篇著名文章<大教堂和集市>(The Cathedral and the Bazaar). 他说,世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到 ...
- 开源运动的"圣经"——《大教堂与集市》读书笔记
作者:Eric S. Raymond 一.黑客圈简史 1.早期 (1)MIT 与 ITS "黑客"一词大约就起源于MIT的计算机文化. 从PDP-1时代开始,黑客文化的命运就和DE ...
- [BUAA_SE_2017]个人阅读作业 + 总结
个人阅读作业 银弹 银弹是指能让狼人一枪毙命的致命子弹,对于软件工程而言,我觉得是不存在银弹的.每一项软件开发都是极为特殊的,有特定的需求.特定的功能,如果存在银弹能够直击要害解决问题,那么软件的开发 ...
- 个人博客作业Week7(阅读文章,心得体会)
Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能 ...
- 【SE】Week7 : Silver Bullet & Cathedral and Bazaar & Big Ball of Mud & Waterfall ...
1. Silver Bullet No Silver Bullet: Essence and Accidents of Software Engineering —— 无银弹理论,出自于美国1999年 ...
- 摘要评注The Cathedral & The Bazaar
2013年暑期买到这本书,距离其第一版已经有14年之久,而最早发布在互联网上的文章更是早在1997年.在我阅读的时候,很多事迹已经沉积为历史,很多预言已经成为现实.而这本书的意义却丝毫没有因此淡化,反 ...
- Beta阶段项目总结
1. 每个成员在beta 阶段的实践和alpha 阶段有何改进? 王文奇:对数据库的操作更为熟练,在java web中实现对数据库的修改更加完善 刘元柱:对javascript,css和servl ...
- 做个体面有尊严的IT人【转自界面】
向老罗致敬,好人终有好报: 转自网站:界面-http://www.jiemian.com/article/231843.html [华盛顿] 史蒂夫·马奎斯隐居在华盛顿郊外的一栋小木屋里,没有电视.没 ...
- [阅读]个人阅读作业week7
People-oriented in Agile People-oriented in Agile One Leader Prepare Good ideas from users People-or ...
随机推荐
- 新 Netflix 开源门户
Netflix 开源改革计划:新 Netflix 开源门户 http://www.oschina.net/news/67555/evolution-of-open-source-at-netflix ...
- 字符串匹配的KMP算法(转)
字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...
- SWT实践过程中遇到的问题
1.import org.eclipse.swt.widgets.Text; 诸如右所示的找不到这个包. 解决办法:project->properties->build path-> ...
- oracle之spool详细使用总结(转)
今天实际项目中用到了spool,发现网上好多内容不是很全,自己摸索了好半天,现在总结一下. 一.通过spool 命令,可以将select 数据库的内容写到文件中,通过在sqlplus设置一些参数,使得 ...
- 全面认识Eclipse中JVM内存设置(转)
这里向大家描述一下Eclipse中如何进行JVM内存设置,JVM主要管理两种类型的内存:堆和非堆.简单来说堆就是Java代码可及的内存,是留给开发人员使用的:非堆就是JVM留给自己用的,所以方法区.J ...
- 在Eclipse在使用JUnit4单元测试(0基础知识)
自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,须要写成千上万个方法或函数.这些函数的功能可能非常强大,但我们在 ...
- 什么是IT
这个是同事总结的,我补充了若干项,算不上原创,但这个没有在其他地方看到,在这儿权且当原创了.后面再配个软件架构图吧.看到缺的同学能够补充 什么是IT:Information-信息Technology- ...
- Visual Studio Tips: How to change project namespace
/* Author: Jiangong SUN */ If you want to modify a project's namespace and its physical container na ...
- Mybatis数据操作
Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) M ...
- mybatis与mysql插入时返回主键id的值
<insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> < ...