近距离看开源是什么?有什么?

科学管理的奠基人:泰勒,在做了两年的基层工作之后,并没有像马克思一样对工人充满同情,相反,他对工人的消极怠工是深恶痛绝,于是,他开始专门研究如何细化工作,制定标准,然后训练工人,自那以后,科学管理成了世界发展的主流,影响深远。泰勒的秘密是什么?就是将劳作过程细化!近距离的观察、实验,以详细获得最佳效率。其实开源的过程也是可以这么做的,问题是看你有多大耐心了。

你要认识到你的目标是对世界历史上曾有的和现有的社会结构进行充分的比较性理解。要认识到实现这个目标,你必须避免普遍存在的学院科系的武断的专业化。你要根据你的主旨,最重要的是要根据特定的问题,来对研究进行不同形式的专业化。在梳理和解决这些问题的努力中,不要犹豫不决,相反,要持续不断并富有想像力地去探索,从所有关于人和社会的明智研究中汲取视角、现实资料、思想和方法。它们是你的研究成果,它们与你血肉相连;不要让那些使用神秘难懂的话语和以专家自居的人从你这掠走它们,扼杀它们。 ———— C.赖特.米尔斯 《论治学之道》

开源之道2019图书共读历史书评

过去十个月的导读与书评:

开源之道图书共读短评

文章内容提要及作者介绍

本书类似学术圈的专门会刊,由来自各个领域、多个高校的教授、博士们撰写的合集,围绕开源所衍生的各种探索和总结。

该书区分了五大部分:

自由/开源软件开发的动机

该部分遴选了三篇文章,重点诠释人们开发自由/开源软件的背后动机,从多个角度来说明:技能提升、声誉、礼物经济、金钱激励等。

自由/开源软件开发的演化

从科学哲学的角度讲,没有什么是一成不变的,自由/开源软件本身也在发生着进化/演化。让我们从十几年之后去看,还是非常之明显的。

自由/开源软件的过程和工具

主要是从软件工程的角度来考察开源,有详尽的优秀的项目跟进。

自由/开源软件经济和商业模式

创新、服务、垄断、商业秘密等角度来阐释自由/开源软件对于商业的影响。

法律、共同体和社会

人类的协作是不可能凭空产生的,必须有强大的社会体系作为支撑的,人类在历史上走过很多的弯路,这部分开源之道认为才是本书的精华部分,无论是法律上的诠释,还是共同体的治理,以及背后的社会机制,都是值得学习和思考的地方。

(限于内容篇幅,笔者就不给大家将全部的作者、编辑整理到这里了。)

本书编辑

  • Joseph Feller : Ireland Cork 大学博士,是《理解开源软件开发》一书的作者。
  • Brian Fitzgerald:Limerick 大学教授
  • Scott A.Hissam : 卡耐基梅隆大学研究员
  • Karim R.Lakhani : MIT 开源研究项目的联合发起人,并运营MIT的开源研究社区的web门户。

作者介绍

(这里仅介绍开源之道个人倾向性的)

  • Audris Mockus:现任美国田纳西大学电气工程与计算机科学系 Harlan D.Mills 首席教授。他于卡耐基梅隆大学获得硕士、博士学位,毕业后曾担任卡耐基梅隆大学统计学部客座助理教授、贝尔实验室软件产品研究部的科研人员。之后 Mockus 教授担任 Avaya 实验室研究科学家,致力于软件工程、软件数据挖掘等方面的研究。
  • Siobhan O’Mahony:(贡献该书时)是哈佛商业学校的助理教授,她拥有斯坦福大学的科学和工程管理的博士学位,方向为组织学习,她的研究是对自由和开源软件的80多位领导者们的访谈和观察,以检验一个基于共同体管理的软件项目如何设计治理架构,采用新的原则来进行协作,是一位非常多产的研究开源共同体治理和基金会组织的专家学者。
  • Tim O’Rilly : 是 O’Reilly 媒体的创始人兼CEO,众所周知,O’Reilly 出版过非常多的优秀的技术书籍,尤其是和开源相关的,关于其本人就更具传奇色彩了,Web 2.0的提出者,开放源代码运动的领袖人物,在IT 领域有着极大的影响力。
  • Eric von Hippel: 教授,MIT Sloan 管理学院的创新和企业的带头人,Hippel 教授的研究重点是创新的源头和经济,特别聚焦于来自普通大众在工程中的创新,开源之道图书共读活动明年会选取Hippel的两本经典著作。

开源之道点评

本合集虽然是2005年发表的,但是对于当下的中国来讲,丝毫没有陈旧的感觉,反而会让人耳目一新,为什么会这么说了呢?因为当你和人们交流和沟通的时候,绝大多数人都在谈钱、公司生态、国家战略等宏大理论,而很少还有人谈论代码匠人、共同体文化、中立的治理组织、沟通、透明、知识产权、驱动力、社会与经济……这些开源现象没有的机制和动力。正如开源之道作者适兕在 WeChat 朋友圈中所感慨和表达的:

最近几天的一个感悟,开源其实需要逆向思维的,也就是说当人人都能看到代码托管平台、非盈利软件基金会、上市公司、优秀项目、重大会议活动等时,没什么了不起的,这是公众事件。真正需要的是去追寻其这些浮出水面之下的内容:匠人、共同体、原则、哲学、决策、法律、文化 ……

我们要尝试拒绝简单武断式的下结论,开放源代码能走到今天,背后是有着强大的力量支撑着的,而且这些力量来自四面八方,我们需要沉下心来,抽丝剥茧,将之一一的找出来。

软件工程

被世人所诟病的软件质量,始于《软件质量经济学》一书,该书的二位超过50年软件从业人员下的结论是:“软件质量低下一直是困扰在这个行业”,如此的描述,确实是让每一个人都心里哇凉哇凉的。该书的合著者之一 Capers Jones 在其新著的野心勃勃的《软件工程通史1920-2019》中对于软件工程做了如此的描述:

60年过去了,软件工程仍然没有像医疗、法律等领域一样,成为一个有认证、董事会和督导的专业,尽管编程语言、需求、设计和开发方法有所提升,但还是有相当大的提升空间。 …… 只要应用软件仍然基于传统设计和逐行手工编码,软件就无法成为真正意义上的工程领域。更糟的是,它在将来也一直是人类历史上劳动力最密集的行业。 现在,软件的构建与装配F1赛车或美洲杯帆船差不多,首先,经验丰富的设计师负责自定义设计,然后,熟练的程序员手工完成具体的编码。 ……. 现在创建的软件应用,算得上真正“新颖”的简直凤毛麟角,很伤有应用是前人没有做过的,绝大多数现代软件是以前软件的新副本或只是对以前软件的增强版。现在真正算得上“全新”的软件可能不到10%,设计得相当新颖,类似的软件应用前所未有。这意味着可以从历史上最成功的软件提取模式并将其应用于设计和构造相似的新的应用成为可能。

软件工程的基本目的是减少成本,用自动化任务替换容易出错的人工任务,综合利用标准化模式和认证的可重用部件,可以使自动化任务成为可能。

只要软件仍然基于自定义设计和手工编码,都将是低效的,成本和风险都比较高的,并且容易出现严重的安全漏洞。自定义设计和手工编码的软件本质上都容易出错,而且目前还没有什么有效的方法,所以只能逐步改善。

接着 Capers 描述了他希望在2010~2020这个十年软件工程能够获得的改进,现在看来,Capers下面的这些描述可能要让他失望了,但是这十年,开源的崛起,可能会让他略有所慰藉。

软件生产力和质量将缓慢发展,有时甚至像酒鬼走路一样,有进也有退。软件工程想要取得重大的进展,还需要解决大量长期存在的问题:

  • 即使是在今天,软件生产力和质量度量也做得很差,通常也不精确,代码行和每个缺陷的成本都有违标准经济学的原则,虽然从经济学角度来讲功能点度量最精确,但它们很慢、很贵,在软件项目中的占比还不到10%。
  • 存储认证可重用组件需要成为主流。自定义设计和自定义代码,即使是用敏捷方法开发出来的,也低效。只有用认证可重用组件构建的代码才是高质高效的。成功重用是需要技术的,其中之一是完整的标准软件特征分类,软件的重用率还达不到理想的程度。可重用素材的认证几乎完全缺失,使用未经认证的素材可能是有害的。
  • 质量控制仍然不稳定,静态分析和检验达不到理想的使用程度。软件质量度量仍然是一个专业困境。很难想象医生或药剂师会公布软件文献那样不可靠的数据。这个行业依赖于测试,目前的测试在缺陷去除率上相当低。高质量来源于缺陷预防和预测缺陷去除,还有采用数学推导测试案例的正规测试。
  • 变更控制也做得不好。开发阶段,软件的月增长率在1%~4%之间,发布之后,软件年增长率超过7%。
  • 项目估算也有待提高。
  • 软件安全一直在警戒水平之下。
  • 软件行业已经有一些年头了,遗留软件的维护现在是软件工程的主要工作。在许多公司,65%以上的财务预算用来优化遗留软件,维持它们的运作。维护工作比新的开发更复杂,而且现在的研究工作还远远不够。维护方面的专业图书占比不到开发类新书的十分之一。现在需要更好的方法来更新和修补遗留软件,也需要更好的方法将历史数据移植到新的软件平台。

从直觉上讲,软件工程这门课程正在被大家所忽略和摒弃,大多数同学认为没有什么用,到实际的工作环境中现学现卖即可。那么问题来了,开放源代码式的开放方式是否是拯救软件工程的良方?

可持续性

说到可持续性,我们可能会想到环境保护,人类无限制的制造和生产,将大自然的空气、海洋、陆地不断的吞噬,世人一直都在思考可持续性。那么开源的可持续性怎么保障了呢?面临人类贪婪的本性,搭便车者无处不在,无论是被中国自古以来所压制的商人的理由角度,还是处于资本的性质,都要从另外的角度来保障可持续性,而吊诡之处却是仍然需要商业的支持,这中间该如何平衡?

这个问题吸引着很多仁人志士,进行相应的思考和行动。比如:

  • Linux 基金会旗下的 CommunityBridge
  • GitHub 的赞助者计划
  • Google 的暑期夏令营
  • 开源软件非营利基金会的崛起
  • 鹏城实验室
  • ……

商业

先讲一个故事(内容来自《公正:该如何做是好?》第110页):

新的生育技术在很多方面改变了代孕经济,并加深了它所体现出的伦理困境。当marry同意为了报酬而怀孕时,她提供了卵子和子宫,因此她是婴儿生物学意义上的母亲。然而,试管受精的出现使得由一位妇女提供卵子而另外一位来孕育它成为可能。哈佛大学商学院的商业管理教授德博拉.斯帕(Deborah Spar)分析了这种新型代孕的商业优势,(内容来自《the baby business》)从传统意义上说,那些签署代孕合同的人,“本质上要购买一个‘卵子加子宫’的包裹”,现在她们可以从一处获得卵子,而从另一处获得子宫。

Spar 解释道,这种供应链的断开,推动了代孕市场的发展。是不是很奇怪的结论?但事实就是如此。

商业是个非常奇妙的事情,比如律师的存在:“一座城市通常无法养活一个律师,但可以养活两个。” 开放源代码是可以制造出非常优秀的软件的,而且协作模式和招募创新方面都有天然的优势,其商业化却是有违直觉的,因为有所有权、授权的模式在先,那么开放源代码本身就被有相当的误解。

那么这样的话,就会产生非常有趣有料的研究对象!开放源代码的商业正在崛起,而且越发的后发优势。

贡献开源的动机

人类是一个非常复杂的事情,尤其是人的心理世界,简直是微妙而神秘的宇宙世界。做一件事情需要理由吗?需要,而且要有充分的理由。

我们将视线先移开开源的领域,看看地球上其它的动机,促成人们完成伟大的事情。

  • 莱特兄弟,仅仅只是对于飞行有着执着的梦想,克服了无数的困难,而挑战了的飞机的发明。
  • 特斯拉发明的交流电,根本不在意什么专利权。
  • 2018年最佳纪录片:《徒手攀岩》,挑战肉体的极限。
  • Wikipedia 的编辑是没有任何薪酬的,但是它的百科全书打败了所有的商业公司。
  • ……

在开源共同体中活动,无论是提升技能,赢得尊重,还是实现自我,交换认可,甚至是为了找一份合适的工作,都是人类众多动机中的一种,所以你最好不要去做厚此轻彼的错误判断,而是去拥有一个同理心,去尝试理解人们的内心深处,每个人都在寻找意义,因为生命本身足够的卑微。

法律

著名历史学者丹尼尔.布尔斯廷在其经典美国人三部曲之《民主的历程》当中是如此描述律师的崛起的:

任何一项改变美国人生活的新技术的重要性,大致上可以用它所花去律师们精力的多少来衡量。因此,内战后的那一个世纪虽然只出版了少数几种法律名著,产生了不多几个有名声的美国法官,但却产生了大批富有的著名的美国律师。

开放源代码的诞生和发展,是基于知识产权、著作权、商标权等法律的基石之上的,如果不谈及法律,开源将不复存在,换句话说,在盗版(犯罪)活动猖獗的中国,是无法诞生开放源代码软件项目的,因为抄袭、盗窃、山寨将横扫所有的创新、买卖。

开源之道在这篇文章就法律而言想说的就一句话,信息产品的法律一日不普及,就无法谈开源。

共同体

Community 是颇难以解释的一个词汇,若想详细把这个词解释清楚了,这恐怕要耗上任何人的毕生精力,更何况它的外延一直都在发展,如果加上要澄清那些谬误的话,真是难以想象啊。据上世纪50年代中期的定义,已经超过了49种之多,而后来经过互联网的崛起,有了更多的涵义。不过还是有人希望能够以宽泛的形式综合这些定义:

一群客观上相互联系的团体或网络,能够产生相对持久的社会关系,除了超越眼前的家庭关系之外,且彼此能够定义出关系作为他们社会身份和社会实践的重要事项。

Community 在引进中国的过程中,也被曲解、重构,到开源进来中国的时候,已经扭曲到不知道该如何诠释了。但是就开源共同体而言的几篇论文,共同体是一个项目发展起来必要经历的重要阶段,这适应了从人到共同体,再到体系生态的生长过程。

而且研究开源共同体的发展过程,将对于本土建设和打造开源软件项目具有重要作用。这点也是开源之道未来一年的重要工作,所以关于共同体的内容,敬请期待。

社会

本文以社会学家 C.赖特.米尔斯 的引言开始,也想以米尔斯的话来结尾。人类社会是一个迷人的话题,社会学家试图要解释这一切,开源从其中一个角度讲,也是人类社会的产物和现象,那么其本身构成就是值得大书特书的事情。不妨以经典著作《社会学的想象力》的论点结束本文。

人类的多样性也包含着个体的多样性;这些同样须被社会学的想象力所把握和理解。在此想象中,1850年的婆罗门与伊利诺伊州的拓荒者站在一起;18世纪的英国绅士和澳大利亚土著人比肩而立,同时在场的,还有一百年前的中国农民,当代玻利维亚的政治家,法国的封建骑士,参加1914年绝食抗议的英国女权运动者与一位好莱坞新星和古罗马贵族。写到“人类”,就不能不写到这些男男女女——既有不凡如歌德,也有平凡如邻家女孩。

哦,对了,还有一句话值得从社会的角度思考:

开源项目本质上不是一款软件,它是一个以向互联网输出软件为主的在线共同体(城市)。

​ ———— 化用 迈克尔.尼尔森 《Reinventing Discovery》中的经典语录