为什么不开源(开源)

PS:文章仅为个人观点 —— 本文的内容基于我这几年在开源世界的观察得出的结论,并非调查所得到的结果。

上上周,我在 GitHub 上发布了 Ledge 知识平台(https://github.com/phodal/ledge),我以一种“重量级”的方式来运行这个开源项目。换句话来说,以正确的方式运行起了这个项目。因为我知道怎么运作一个开源项目,加上一些外部的原因,我开始思考个人开源和组织开源的一些困境。

开始之前,让我讲个笑话和无奈:

组织开源的四大笑话是:一次性开源、按揭开源、KPI 驱动式开源、社区是什么?(分别代表了国内的几加大公司的开源做法)

不好意思,你们是对开源有什么误解吗?

什么是开源

事实上,我们经常混淆了两个概念,那就是开源软件和开源这个行为。

开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。开源软件依托同行评审和社区生产,皆以分散、协作的方式开发。—— 红帽官网

换句话来说,你选择一个协议,将你写的代码公开发布,这叫开源一个软件。但是,它并不叫你搞开源。开源源于开源软件,但是它现在已经成为超越软件生产的运行和工作方式。

开源源于开源软件生产的运行和工作方式,它是一种基于去中心化、自组织式的软件开发模式运作的工作方式。它以社区作为根基,通过开放、透明、协作几项原则开展的活动。

开源不是公开代码

在那本开源的《GitHub 漫游指南》里,我一直在讲述如何在 GitHub 上开发一个 “成功” 的开源项目。因为开源不仅仅只是说源代码的开源,还包含了设计文档、产品的内容等等,还要以开源的方式来运作。以 opensource.com 对于开源方式的解释来说,需要这么五个维度:

透明度。

协作。

迟早发布、持续发布。快速建立原型,发布第一个版本,并且不断地快速地迭代。

精英制度。根据提出的最佳方案做决定的方式

社区。形成社区,提升社区参与度,转化为社区目标。

也因此,如果只是公开源码的话,那是走到开源的第一步,刚来到开源的起跑线上而已,还没参与到这个游戏中去。

一个开源项目是一个产品

作为一个资深的开源运动参与者,我有一个这样的体会:运营一个开源项目,就好像创业一样。我们需要采用《黑客与画家》作者 Paul Graham 所说的创业公式:

1. 搭建原型
2. 上线运营
3. 收集反馈
4. 调整产品
5. 成长壮大

所以,开源就像是一场小型创业,需要进行竞品分析,需要制定合理的策略。当然了,如果你的东西绝无仅有,那就无需如此。而除了分析市场,针对于开发人员,还要考虑:

1. 作为投资人(技术投资),他们能获得什么?提升技术?找个好工作?
2. 作为潜在的用户,从哪里知道这个项目?
3. 作为贡献者,如何提供不同级别的贡献计划?
4. ……

你并不一定非得去考虑这些问题,只要在持续完善的过程中,这些问题的答案就会浮现出来。只是呢,在你开始之前想好,可能会事半功倍。

开源的重点在于生态建设

(0)
上一篇 2022年4月30日
下一篇 2022年4月30日

相关推荐