跳到主要内容

《大教堂与集市》

媒体或大众对于异域的理解能力近乎于“无知”,所以必须要有引爆点去吸引他们

从一开始我就明白一件事,那就是媒体完全不喜欢抽象的东西,如果没有名人站在他们面前说个什么观点,他们就不会报道它。所有东西都必须有故事、有戏剧性、有冲突、有亮点,否则的话,大多数记者宁愿去睡觉——即使他们不这样,编辑也会。

2020-12-02 08:40:48

多数软件都没有销售价值,反而服务价值中的定制服务更加贴合软件开发的目的

首先绝大多数开发者的薪水并不取决于软件销售价值,但最好的也是最值得强调的理由是:你什么时候见过一个软件开发团队的活不够干?在这个快速变化的世界里,经济社会日益复杂并以信息为中心,懂计算机的人可要有个好身体,因为总有很多活等着他们做——无论他们花了多长时间,传授了多少诀窍。

2020-12-02 08:28:43

软件服务的分类:

  1. 应用(文字处理软件)
  2. 基础架构(市场化服务、强标准)
  3. 中间件(数据库)

基础架构(互联网、Web、操作系统、跨越竞争者界限的低层通信软件)将会几乎全部开源,并由用户联盟和盈利性发布/服务机构(如Redhat所扮演的角色)共同维护。

应用,则非常倾向于继续封闭。当一个未公开算法或技术的使用价值足够高(且软件不稳定带来的相关成本足够低、供应商垄断带来的相关风险足可容忍)时,用户会继续为此类闭源软件付费。这种情况最有可能发生在自成一体的垂直市场应用中(其网络效应也较弱)。前面提到的锯木软件就是一例,1999年最热门和最有前景的生物识别软件则是另一例。

中间件(像数据库、开发工具或可定制的应用协议栈顶端)将处于开闭源混杂的状态,这类软件走向闭源还是开源,似乎更取决于软件失效的代价,代价越高,其走向开放的市场压力就越大。

2020-11-30 08:49:50

是否开源应根据业务类型进行评估,并不是所有的开源软件都具备优势

总而言之,如果满足下面这些条件,就该考虑把源码开放:

  1. 可靠性/稳定性/可扩展性非常重要。
  2. 除了独立的同行评审,没有其他便捷易行的方法验证设计和实现的正确性。
  3. 该软件对客户的业务非常关键。
  4. 该软件创建或运转一个公共计算或通信基础架构。

5.关键方法(或能实现同等功能的方法)属于公共知识。

2020-11-30 08:40:53

以我使用苹果设备来说,平台的一致体验和生态系统的完美融合,我享受高效的作业和学习的同时,也会反思自己是否过于依赖这种模式,假以时日失去这个依赖时我是否会像分手那样歇斯底里。以前朗朗上口的苹果yes是否会啪啪打脸,最后发现对一项“死物”如此上心大可不必,更重要的是自己能更多的掌控自己的人生。

当软件对消费者越来越重要时,消费者会在理性上希望避开垄断供应者,这导致他们对开源的兴趣变大(开源供应商的市场竞争力会因此增强),所以,另一个判断标准是:(c)当软件成为对业务起关键作用的资产(比如存在于很多企业的MIS部门中)时。

2020-11-24 08:15:45

公共资源的占用问题,当资源可以被利用,人们都偏向于毫无节制的开垦,直到资源被磨灭殆尽。

Hardin假想在某个村子里有一片公共的草地,每个村民都可以在这片草地上放牧,长期放牧使得土地退化、草皮损坏、到处都是泥坑,而草皮的恢复很慢,如果没有一个一致同意的(或者强制的)放牧权分配策略,就很难抑制过度放牧,出于自身利益考虑,每个人都会尽可能多和尽可能快地放牧自家牛羊,以便在公地退化成泥沼之前,从中获取最大价值。

2020-11-24 08:15:45

无论信息以何种方式获取,都不会是免费的

一张藏宝图、一个瑞士银行账号,或一个可用来索取服务的信息如计算机账号密码。即使这些信息的复制成本可以为零,该信息所能索取对象的成本也不会为零。因此,被索取对象非零成本的特性会继承到该信息上。

2020-11-23 08:43:18

闭源即使保护了软件的销售价值,没有足够的试错过程,软件的可靠性相比于得到同行的开源软件有所欠缺,除非提供足够多的人力成本与行政管理所需的成本,才能将可靠性提升至极高的阶段 (如 : windows系统,不包含Windows10)。当然售价也会随之上涨,还需要增加更多的客户服务岗

你也许被一些谬论误导,觉得闭源能使你的商业系统更安全地防范骇客入侵,如果是这样,我建议你立刻和密码工作者做一次彻底的交谈。比起用闭源来保障安全性,真正专业而审慎的人知道什么才是更好的做法,他们已经从惨痛教训中学到太多了。安全性是可靠性的一部分,只有在算法及其实现经过彻底的同行评审之后,才有可能被认为是安全的。

2020-11-23 08:24:24

注意 : 目前公地模型涉及更多经济学的范畴,不能很好的理解

公地悲剧事实上来自于两个互相联系的问题,一是过度使用,二是供应不足。在需求端,公地鼓励“竞次”行为 而导致过度使用——也即经济学家所称的公益拥挤问题。在供给端,公地奖励了“搭便车”行为 ——它打消或抑制了个体在开发新牧地上的投资意愿。

公地悲剧预言了三个可能的结果。一是公地退化为泥沼,二是少数有强制力的成员代表全村实施分配策略,三是将公地分割给村民,让每个村民自行保护(如围起篱笆)和管理自己那块草地的可持续性。

2020-11-13 08:23:11

很显然客户帮助中心不是效益最大化的部门,也无可否认会提升品牌价值的主要途径。一个影响即时体验另一个影响口碑

消费者会因此吃亏,虽然软件是一个服务行业,但基于工厂模式的激励机制会阻碍供应商提供足够的服务。如果供应商的收入来自于销售软件,那么大部分的努力就会是制造软件并将它们推销出去;至于帮助台(help desk),它们不是盈利中心,将会成为最低效员工的发配地,并只能得到仅供维持客户数量不低于临界值的资源。

2020-11-10 08:42:22

项目管理中最颠覆,风险大的做法,无论如何,他提到了这种工作方式的可能性

另一个略微不同的角度,重申了“大教堂与集市”中的论断:最终,当自由市场经济开始创造出足够的财富盈余时,大量程序员可以生活在后稀缺的礼物文化中,而软件产品的工业\工厂模式注定走向衰亡。

事实上,获取最高软件生产力的药方看上去自相矛盾而又颇具禅意:如果你想获得最有效率的产品,你必须放弃促进程序员生产力。做好他们的后勤,让他们自己做主,并忘掉最后期限。在传统的管理者看来,这种几近疯狂的宽容注定失败——但它的的确确有效,使用这种方法,开源文化正势如破竹地痛击着它的对手。

2020-11-10 08:38:50

心理学管理

这个领域的其他研究者把目光投向了黑客们非常在意的自主性和创意自由度问题,“如果一个人越是感受到自主性受限”,罗切斯特大学心理学副教授Richard Ryan说,“其创造力就会越少。”

2020-11-10 08:34:01

心理学范畴,项目管理可借此作为依据

布兰代斯大学心理学家Theresa Amabile,在1984年发表的一篇关于关动机和报酬的研究中谨慎地总结道:“与完全出于兴趣的工作相比,被委托的工作通常表现出较少的创造性。”Amabile还观察到:“活动越复杂,就越容易被外部的报酬损害。”该研究还指出,固定工资不会降低人们的积极性,但计件工资和奖金会,这一点很有意思。

2020-11-10 08:29:42

黑客不是封闭世界的推崇者,自身的性格特性也不是影视作品所描述的顽固、不近人情。黑客的世界需要极高的门槛,不能很好被理解不等于不接受懵懂的外来者,每一种文化渴望加入者和传播者。

但这其实很普遍,所有文化都会要求渴望加入者有这样的理解,而黑客文化从未表示出他们想把其内在逻辑和风俗习惯当做秘密来保守——至少从未有人因为我揭露了这些而发火!

2020-11-10 08:23:05

掌握某种技术秘密该有的一些性格特质

这是在宏观层面提要求,它起到了素质(比如抽象思考、毅力、心理弹性等能力)过滤器的作用。想在黑客文化中发挥作用,这些素质是必需的。

2020-11-10 08:16:47

冲突一般有两种解决方案,一 : 按投入程度 / 资深程度判断; 二 : 往让上级或外部的人员协助解决

冲突通常不会变得很严重,除非两种评判标准(“责任背后是权力”和“资深者胜”)指向不同方向且项目领导人权力较弱或者缺位时。发生这种情况最显而易见的例子是项目领导人消失后的继承权争议,我曾经历过一次这样的争斗,其过程令人厌恶、充满痛苦且旷日持久,直到所有相关方都耗尽心力而不得不交给外部人士处理时,问题才得到解决,我真心希望永远也不再和这种事扯上任何一点儿关系。

2020-11-06 08:20:20

大多数黑客会感觉不适,与lockean所有权不用一致。有可能委员会自身也存在着矛盾

一些非常大型的项目则完全抛弃了善意独裁者模型,其做法是将合作开发者转为投票委员(如Apache),或是在资深合作开发者内部轮流掌权,Perl开发者就是这么组织起来的。

2020-11-05 08:30:40

财产所有权部分借鉴动物行为学中的领土意识

养狗人几乎都体验过动物领土权和人类财产权在本质上的连贯性——狗在陌生人接近主人财产时会吠叫。作为我们驯养的狼类亲戚,狗在本能上知道,财产权不仅仅是社会约定或游戏,而是至关重要的防范暴力冲突的进化机制。(从这点上讲,它比很多人类政治理论家聪明。)

2020-11-05 08:21:46

声誉模型中得到认可才是最大的奖励

自称是黑客不代表你就是黑客,只有其他黑客认为你是黑客,你才是黑客

2020-11-05 08:19:40

要么创新,要么足够优秀

从全球看来,这两个倾向(“填补空白”和“类别杀手”)是开源项目发展的总体趋势。

2020-11-04 08:15:40

获得声誉的方式:

  1. 项目创建会比项目合作让人获得更多声誉
  2. 创意十足的产品会让人获得更多声誉
  3. 对现有项目做出贡献会比另起一个新项目更容易吸引注意力 (指功能相似)

需注意 : 和成熟项目进行竞争比填补领域空白要难得多。

项目创建会比项目合作让人获得更多声誉;相比增量改进现有软件的“me,too”(译者注:仿造)产品,创意十足的产品会让人获得更多声誉;一个软件如果只有作者本人才理解或需要,则在声誉竞争中几乎连参赛资格都没有;对现有项目做出贡献会比另起一个新项目更容易吸引注意力;和成熟项目进行竞争比填补领域空白要难得多。

2020-11-04 08:11:59

害怕因少部分有影响力的人的喜好而破坏共享价值

很多志愿者社区就是因为不能辨识共享价值观与领导者个性之间的差异而毁掉的,Larry和Linus肯定都已充分意识到这点。

2020-11-03 08:34:15

自我满足被认为是坏事,指顽固脾气的人

只有把“自我”升华或伪装成“同侪声誉”、“自尊”、“专业素养”或“成就感”时,人们才愿意接受它。

2020-10-29 08:54:50

礼物文化中,其中一个禁忌 : 项目分支。

分化后导致重复工作,而结果多数是不好的

另外第二和第三禁忌为 : 流氓补丁以及删除项目贡献者的名字 (最极端和恶劣的行为)

黑客厌恶项目分化的另一个原因是,他们惋惜那些被浪费的重复工作——分化后的两个子项目总是有着或多或少平行的演化路线。他们也会注意到分支倾向于分裂合作开发者社区,使得两个子项目的人手都比父项目的人手更少。

2020-10-29 08:41:15

物质充裕性导致礼物文化的兴起

所以才会有夸扣特尔族(Kwakiutl)酋长们的散财宴 ,才会有千万富翁们精心准备的并常常是公开展示的慈善行为,才会有黑客们编写高质量开源代码的不懈努力。

2020-10-29 08:40:16

政府、军队、组织处于命令模式下并寄生在更大的社会交换文化中

我们的社会显然是一个“交换经济”,这是一种对稀缺性的微妙适应。与命令体系不同,它的延展性相当好,稀缺物品的分配主要是通过贸易和自愿合作(在事实上,竞争意愿的主要效果是产生合作行为)这种非中心化的方式。在交换经济下,社会地位主要取决于你有多少资源(并非只是物质资源)可使用或交易。

2020-10-28 18:28:49

源码所有权的考究与土地所有权拥有类似的处理手法,开垦、转移、逆权侵占等。

黑客开发开源项目主要为兴趣驱动,即便获得更好的工作机会或者合作意向,其目的还是为自己带来更好的“声誉”

如何导致这种经济上的额外作用是值得研究的。下面我们会看到,如果能够理解开源文化自身的“声誉”动力,将能很好地解释这些。

2020-10-28 18:09:54

有三种方式拥有源码所有权

自己创建、找所有者移交、声明认领(各平台、论坛发布信息,越多越好,并写进history)

这些特点表明习惯做法不是偶然产生的,而像是某种内在程序或生成模式(generative pattern)的产物,这些程序或模式对开源文化起着至关重要的作用。

2020-10-27 09:03:09

因为无法顺利预测项目一定会按原有计划进行,原因是项目开发本身是一个探索过程

他们实际做的和他们所声称的并不一致,也就是说,开源文化的“官方”意识形态和他们的实践并不一致。

2020-10-27 08:56:36

可实现的目标可以增强驱动力

一个快乐的程序员是一个既没有被浪费也没有被压垮(由于不适当的目标或过程中充满压力与冲突)的人,乐趣预示着效率。

2020-10-27 08:55:36

工作与兴趣不相乎,对工作必然诸多不满

如果开源社区真的低估了传统管理的价值,那为什么你们中的这么多人都表现出对你们自己流程的不屑?

2020-10-26 08:39:47

即便那优秀的5%人才也要考虑动机问题,传统的管理方式会令自我驱动的意识减弱

传统开发管理是对缺乏激励的程序员们的必要补充,否则他们不会干得很好。

2020-10-26 08:35:44

需要与大众电脑的普及率来比较,毕竟初入门liunx的使用成本比Windows要高不少,普及率加上英语语言能力吓退了不少人

(这很容易被核实,比如说,比较Internet至今30年的历史和专有网络技术很短的半衰期;或者比较微软将Windows从16位过渡到32位的成本以及同时期Linux完成同样升级的毫不费力——不仅仅是在Intel产品线上,而且包括64位Alpha处理器在内的十多类硬件平台)

2020-10-24 21:42:06

共识原则与利他行为,运用自我满足去调动大家的兴趣

Linus成功地将自己置于项目看门人的地位——大多数开发工作是他人完成的,他不断培养大家对这个项目的兴趣直到它能够自我维持下去,这表现出他对Kropotkin“共识原则”的敏锐领会。用这种“准经济”(quasi-economic)视角来观察Linux世界,有助于我们理解“共识原则”是如何应用的。

2020-10-23 23:28:03

《程序开发心理学》书籍

Gerald Weinberg在经典之作《程序开发心理学》(The Psychology of Computer Programming)中提出了对Brooks定律的重要修正

2020-10-23 23:26:32

热情积极解决个人问题,渐渐演变为他人解决同类问题

想要解决一个有趣的问题,先去找一个让你感兴趣的问题。

2020-10-22 18:40:30

容易形成思维定势

另一方面,试图让语言拥有类似英语的语法,往往使这个所谓的“英语”严重走形,以至于这种对自然语言的表面模仿并不比传统语法让人更易懂一些(你可以在很多所谓“第四代语言”和商业数据库查询语言中看到恶果)。

2020-10-21 10:16:22

全身心投入,并保持开放吸收他人创意

你一定不要一开始就设定这样的目标和结果。你必须要有一个非常强大的设计创意并完全投入,以至于这个结果就像是不可避免、自然而然和预先设定的。要做到这一点,唯一的途径是你有很多创意——或者有一种采纳别人好主意的工程上的决策力,并将这些创意发展到超越其作者所能想象的地步。

2020-10-21 09:32:39

加到尽头是减法

Antoine de Saint-Exupéry (在不写经典儿童读物的时候,他是一名飞行员和飞行器设计师)说过:

13.“设计上的完美不是没有东西可以再加,而是没有东西可以再减。”

2020-10-21 09:21:02

似乎所有的工作都存在“思维定势”的问题

那些最有突破性和最有创新力的解决方案来自于你认识到你对问题的基本观念是错的。

2020-10-21 09:13:25

9.聪明的数据结构配上愚笨的代码,远比反过来要好得多。

Brooks在《人月神话》的第9章里说:“让我看你的流程图但不让我看表,我会仍然搞不明白。给我看你的表,一般我就不再需要你的流程图了,表能让人一目了然。”历经30年的术语/文化变迁,这个道理依旧没变

2020-10-21 09:07:26

传统开发在组织架构上的问题,Brooks定律

传统软件开发在组织结构上的根本问题由Brooks定律一语道破:“在一个已经延期的项目上增加人手,只会让项目更加延期。”更为一般地讲,Brooks定律指出,随着开发人员数目的增长,项目复杂度和沟通成本按照人数的平方增加,而工作成果只会呈线性增长。

Brooks定律是建立在经验基础上的,人们发现,bug很容易集中在不同人写的代码的交互接口上,沟通/协调的开销会随开发者间接口数的增加而增多,也就是说,问题规模和开发人员间的沟通路径数相关,即和人数的平方相关(更精确地讲,应该是N(N-1)/2,N代表开发者数目)。

2020-10-21 09:05:36

开源项目的优势之一

只要能有一个对出错条件在源码级别上的提示性描述(即便不完整),大多数bug在大多数时间里就很容易被发现。如果你的beta测试人员中有人指出“在第n行有一个边界问题”,或者仅仅指出“在条件X、Y和Z下,这个变量会溢出”,你扫一眼那部分代码,往往很快就能准确找到出错模式并得出修正办法。

所以,如果beta测试人员和核心开发人员都能意识到源代码的作用,就能极大增强双方沟通和合作的效果。相应地,即便在合作者很多的情况下,核心开发人员的时间也会节省很多。

2020-10-21 09:03:59

往往得到的是“前端”问题

理解这个问题的关键在于要弄清楚这个现象:如果报告bug的用户对源码不关心,则其报告通常不会很有用。对源码不关心的用户,往往报告的都是表面症状,他们把自己的运行环境当成是理所当然的,他们不仅省略了重要的背景数据,而且很少给出重现bug的可靠方法。

2020-10-21 09:00:26

并行排查是集市式开发的特性,若不是“早发布,常发布”,就会形成重复劳动的恶性循环

增加调试人员并不会带来增加开发人员那样的二次方复杂性和管理成本。

理论上,并行排错会由于重复劳动导致效率损失,但从Linux世界的实践来看,这似乎从来不是一个问题。“早发布、常发布”策略的一个效果就是快速传播反馈回来的修复,从而使重复劳动最小化。

2020-10-21 08:57:22

德尔菲效应

社会学家早在多年前就发现,一群专家(或一群无知的家伙)的平均观点要比一个随机选择的人的观点更有预见性,这就是“德尔菲效应”(Delphi effect)。看来Linus的做法表明这个理论甚至也适用于操作系统排错——“德尔菲效应”可以驯服软件开发的复杂性,甚至是操作系统内核开发这样的复杂性。

什么是软件

零复制成本催生了区块链的不可篡改的特性

软件是人类历史上最奇特的产物之一,它和其他事物截然不同,以至于拿任何事物来比喻软件,都给人以不够贴切的感觉,软件的自动化运行能力和几乎零成本复制能力给人们带来了前所未有的便利,而它带来的问题(比如版权问题、消费者权益问题、是否开源问题、开发管理模式问题等等)也是多少年来让各界人士争论不休的。

写博客的好处:长期写博客的习惯,可以边学习边整理,最终还能出书

黑客圈简史

kiss 设计思想:除了可移植性,UNIX和C还有其他的重要优势,它们都是KISS(Keep It Simple,Stupid)哲学下的产物。

集市开发的好处

如果有足够多的beta测试者 和合作开发者,几乎所有问题都会很快显现,然后自然有人会把它解决。或者说得更通俗一些:“只要眼睛多,bug容易捉。”我把它称为“Linus定律”。

黑客的态度

  1. 这个世界充满了迷人的问题等待人们去解决:保持解决问题的热情
  2. 不要解决一个问题两次:创造性头脑是无比珍贵的有限资源
  3. 无聊和乏味是有害的:尽可能将无趣的事情自动化,这不仅是为自己,也是为其他人(尤其是其他黑客)。
  4. 自由是好事:黑客天生是反权威的,保持有节制、理性的思维,而不是个人的绝对顺从
  5. 态度不能代替能力:怀疑并在尊重每一种能力,追求思维敏锐、动手能力强和全神贯注的技能能力。