实用主义(Pragmatism)的工程师文化 —— OSCAR 2022 开源文化分会场

「开源之道」非常荣幸的能够在2022继续以协办的方式参与到中国信通院OSCAR可信开源大会中,适兕将策划和出品两个分论坛,文化是其中之一,这次我们继续解构开源文化 —— 细分到具体的最实用当中!当然,按照一贯的原则:文化是作用工具箱存在的,尤其是在开源的世界,我们并不会要求主体,而是希望主体能在开源的世界里学习和实践开源的优势:让世界进步和繁荣。

Sun Jul 10, 2022 | 1700 Words | 大约需要阅读 4 分钟 | 作者: 「开源之道」·适兕 |

引子

在一次LFAPAC 开源万里行活动中,我分享完主题为 世界的开源,我们的开源 后,和来自 RedHat 的一名开发人员进行了沟通,希望从更专业的人士中获得反馈,这位内核的开发者非常的爽快,和我说:

你说描述的,恰是我们的日常,我很奇怪为什么还需要说?

这个回答也让我反思倡导和宣传开源的意义,是的,我们对一种完全陌生的文化毫无察觉的时候,我们就会以自身的文化常识去理解和观察,这无疑会造成无数次的灾难。

知识的传播与运用

在软件遭遇危机的最初时刻,图灵奖得主,计算机科学家弗雷德里克•布鲁克斯表达过一个脍炙人口的定律 —— Brook法则:

向进度落后的项目中增加人手,只会使进度更加落后。[1]

其中最大的问题就是知识在团队中的流转与获取,由于人的固有特性,知识以及技能需要不断的学习和练习才能获得,进而参与到原来的项目中,而这是需要一个过程的,然而,工程却在不断的增长,人也需要相应的学习,于是一旦知识欠缺了流转,便会出现这样的危机。

在操作系统这样的大型项目中,科学家们最后选择了“一次只完成一件事”的哲学,UNIX 的诞生验证了这一点,并以开源式的方式将之发挥到极致—— Linux ,以实际的模块化充分的说明了这点,于是一部总结Linux的软件工程式的书籍风靡一时,这便是《大教堂与集市》[2]的背景。

开源是不是软件工程的银弹?

开源究竟是不是解决软件工程的完美方式?我们目前尚无法下绝对的定论,但是一个个成功的开源项目,极具生命力的可持续发展,或许就是我们要找的答案。在成千上万个以开放源代码方式作为实用的开发方法论,我们试图去寻找出可供我们参考的最佳实践。

软件工程是个失败率极高的事情,不确定的东西太多,再多的预算,也难以补足完全能胜任的开发者,传统的管理方式在分散在各地的组织已经完全失效,高昂的维护成本另绝大多数公司对于基础设施的改善心有余悸,为了将有限的资源投入到创新中,尽可能的将支撑体系交给开源共同体,这是最聪明的做法吗?

我们的答案是难以确定的,但是开源有一个巨大的优势,那就是利用时间的力量,我们都能够理解商业中的 go-to-market ,为了能够快速占领市场,商业可以付出很多,但是也会付出工程的代价,如果没有时间的限制,那么工程就会像詹姆斯·韦伯望远镜[3]一样成为跳票之王。开源的力量来自于:

  1. 企业可以利用现有的开源项目,达到快速上市的目标。
  2. 从长远目标而言,将少量资源投入到未来可能用得到的开源项目。

请提交议题 —— 我们希望的最佳实践

伟大的自由软件运动发起者 Richard Stallman 曾经写过一篇和开源分手的文章,认为开源本来在开发的实用方面是和自由保持一致的,但是忽略了道德的部分。[4] 可是作为一个经历的人类史上最伟大的社会实验的环境,我们看中的就是提升软件生产能力的部分。

我们称之为实用的部分,从技术架构到组织方式,流水线、release与持续交付,透明的沟通和友好的共同体氛围,甚至是代码品味与注释风格,显然都可以统统都包含进我们可以称之为“开源方法论”(Open Source development )当中来。

(点击下面图片,了解大会详情。)

我们希望你能够分享如下(但不限于)关于开源项目中工程文化方面的实践和思考:

  • 如何对陌生的issue、PR、版本反馈等
  • 代码风格、质量保证、安全性检测
  • 协作沟通交流
  • 持续集成及开发流水线
  • 工具集,如何处理结构洞
  • 知识分享与流动
  • 如何对待搭便车者,以及不友好者,甚至是捣乱分子
  • 如何奖惩
  • 项目开源许可对于开发团体的作用:优势与劣势
  • 合规和审核的平衡之道
  • remote 协作实践
  • ……

如果你对上述问题有很深的感悟,希望获得同行的交流,那么提交议题:OSCAR 2022 文化和前沿议题CFP,来和关注开源开发中的同道中人一起交流。

参考资料

  1. 《人月神话》, (美) 布鲁克斯(Brooks, F. P.) 著,清华大学出版社,2015-4-1
  2. 《大教堂与集市》,[美] Eric S. Raymond, 机械工业出版社,2014-5
  3. 如何评价 NASA 谈詹姆斯·韦伯太空望远镜? https://www.zhihu.com/question/284896835 ,最后访问:2022-07-25
  4. 为什么开源错失了自由软件的重点, https://www.gnu.org/philosophy/open-source-misses-the-point.html ,最后访问:2022-07-25