AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

开源软件公司易犯的 5 大错误,又该如何避免?

  • 2016-05-18
  • 本文字数:2293 字

    阅读完需:约 8 分钟

来自 Thevarguy Christopher Tozzi 撰文总结了开源软件公司常犯的 5 个错误,并给出了要避免这样的错误的建议。

在开始作者述说了为何要写这么一篇文章:

要如何做才能够让那些开源软件公司以及他们的合作伙伴茁壮成长?若是回到 15 年前,这个问题确实是难以回答的。但是,今天开源已经是一种常态,有太多的开源公司在这 15 年此消彼长的发展着,我们回顾过去,是什么让开源软件公司在健康成长,那些常犯的错误是否能够让后来者吸取教训,避免重蹈覆辙。

像一个严谨的程序员一样,作者对于文中出现的一些概念进行了解释:

本文所说的开源软件公司,指的是在开源生态系统下占据某个环节的公司,他们未必是需要将所有的产品都开放源代码,也未必一定是开发过开源的代码,他们只是以这样或那样的方式混迹于开源界。

当我们去回顾这些公司的历史时,其中的错误或成功都一目了然,以下内容是这些公司所常犯的 5 个错误,应该极力去避免,避免的方法也在其中。

以下是正文。

期望人们来为你的项目贡献代码

那时还是 1998 年,网景将其著名的浏览器开源成立了 Mozilla,这在当时是绝对的震撼新闻。Mozilla 是第一家闭源公司向开源模式转换的大型组织,因为当时他们认为开源的模式才是真正的出路。(编辑注:关于当年网景的决策,请移步网景的历史

但是,Mozilla 很快就意识到了问题的所在,简单的将网景浏览器开源并不能够让那些志愿者大军蜂拥而至,从而帮助他们开发出产品来,相反,Mozilla 一开始就陷入了项目延期的尴尬境地,甚至雪上加霜的是 Mozlla 的一名高管 Jamie Zawinski 在社区成立一年(准确的说,一年零几天)就跳槽了。

当然,后来的故事大家都知道了,Mozilla 解决了此问题,Mozilla 火狐浏览器最终成为了最为成功的开源项目,因为 Mozilla 学到了一件事,那就是将代码开源很容易,难得的是让更多的开发者参与进来共同开发!

对于自己的产品是有选择的去开源

其中一些开源公司将自己置于一个非常尴尬的位置,因为其对于自己的产品是有选择的去开源。举例来说,如 Canonical ,此家公司通过开源的 Ubuntu 操作系统成为了跻身于世界前列的 GNU/Linux 发行版,但是他还干了一件惹人恼怒的事情:其中一些代码并未开源。

让买卖做大有很多种办法,但是在社区这样做显然是有问题的。这等于向社区发送了多个信号,会削弱开发者们的热情。你可以不去选择开源,但是似开未开的“伪开源”着实令人反感。

忽略文档的重要性

如果你是一名开发者的话,可能相对于写文档宁愿去选择撰写代码,或者说更加的享受代码。但是由于软件的特殊性,若是设计师没有提供如何真正使用它的文档的话,其实这款软件用处不大。

但是文档的问题一直以来都是困扰 GNU ,自由软件项目的首要问题,(我知道,GNU 并非是一家商业公司,但是在此举例仍然适用。)在 1988 年 GNU 的开发者们已经开发出了令人印象深刻的代码。但是仅有非常少量的文档。那时 GNU 甚至都在邮件列表中发出“雇佣一些专门的人来撰写文档”的信息,通过呼吁捐款来尝试解决这一重大问题。当然,后来来自旧金山的加利福尼亚大学教授:Dick Karpinski 赞助了 1000 美元现金算是解决了此问题,直到这时方才有人开始撰写 GNU 的文档。

GNU 从此学到的教训就是在完成了代码之后,文档并不总是能跟上,你须在一开始就得确保文档的开发要和代码保持一样的进度。

采用了简单粗暴的商业模式

随便去问问你周边的人们,开源软件该如何赚钱?大多数的回答恐怕是免费奉送代码然后销售技术支持。但是,你仔细的去近距离的观察的话,这并不是那些成功的开源软件公司所采用的关键的商业模式。

红帽为例。是的,红帽确实也在售卖他们多个产品的支持服务,但是正如公司的创始人和前CEO Bob Young 在一篇名为“另辟蹊径:红帽是如何偶然发现新的经济模式并助力改进整个业界”(1999 年出版的图书《开源》,编辑:Chris DiBona、Sam Ockman 以及 Mark Stone)所指出的那样,红帽的壮大是因为专注于构建自己的品牌,而不是随大流的去为开源的产品提供支持服务。

Young 比较了红帽的产品和其它行业的商品,得出了一条结论:让 Linux 赚钱就像是售卖番茄酱。就其本身来说,番茄酱很便宜而且可以在自家的厨房里就可自行制作。但是亨氏就通过售卖番茄酱赚了上亿美元,为什么?因为亨氏构建了一个得到人们信任的品牌!人们可以在自家的厨房亲手来制作番茄酱,一如管理员们可以自行构建自己的 GNU/Linux 发行版一样。但是人们是不会这么干的。人们购买亨氏的番茄酱完全是因为亨氏的品牌,正如人们采购红帽企业版 Linux 的订阅服务完全是因为红帽的品牌。

成功的方法不仅仅是提供某种形式的支持服务就希望人们购买它。你需要给客户一个信服的理由去第一时间找寻商业的服务,一旦他们相信你了,他们就会决定购买你所提供的产品和服务。

重复制造轮子

人们之所以热衷于开源的其中一个论调就是开源可以让开发者们不去“重复发明轮子”,相比于从头开始一个项目而言,借用已经实现了同样功能的代码更加的划算,这样可以腾出时间和精力去做额外的创新和开发新的功能。

但是这并不能阻挡依然有很多的开源软件公司和项目在创建着冗余的代码。举个例子,目前针对 Docker 容器的编排工具平台至少有一打,如 Swarm、Kubernetes、Mesos 等等。它们是看起来不一样的,但是它们做的却是同样的事情,这样就难以让某一个编排项目、或者是其背后的公司,从中脱颖而出!

关于这点的教训就是,开源组织若想壮大就尽量的去避免构建冗余的解决方案,否则的话,很难出人头地。


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-18 17:482534
用户头像

发布了 33 篇内容, 共 12.1 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

七日算法先导(七)——字符串

工程师日月

8月月更

国际计费系统基于Sharding-Proxy大数据迁移方案实践

京东科技开发者

数据库 系统 数据迁移

看漫画MHGmhgui,Python爬虫之神奇的eval,附赠一个压缩模块

梦想橡皮擦

Python 爬虫 8月月更

研发需求的验收标准应该怎么写? | 敏捷实践

LigaAI

程序员 产品经理 敏捷开发 研发管理 开发流程

OpenSSF的开源软件风险评估工具:Scorecards

SEAL安全

开源 开源安全 软件供应链安全 开源合规 开源工具包

自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了

叶秋学长

Hiflow

程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果

HarmonyOS SDK

java软件培训费用怎么算

小谷哥

electron 应用开发优秀实践

vivo互联网技术

前端 Web Electron 桌面开发

MySQL索引的B+树到底有多高?

转转技术团队

MySQL 索引

使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令

汪子熙

Linux unix SAP abap 8月月更

前端该如何优雅地 Mock 数据

CRMEB

一文看懂大数据生态圈完整知识体系

博文视点Broadview

StratoVirt 中的虚拟网卡是如何实现的?

openEuler

开源 openEuler Open Source 内核态 虚拟网卡

java培训中心有哪些

小谷哥

你知道 Vue scoped 原理吗?这波你在第几层?

掘金安东尼

面试 前端 8月月更

集群部署spark、Hadoop环境

峥岳

hadoop spark hive

人物 | 从程序员到架构师,我是如何快速成长的?

安势信息

程序员 职场 架构师 程序员进阶 人物访谈

美的数字化平台 iBUILDING 背后的技术选型

TDengine

数据库 tdengine database

MySQL传统方案和通过SSH连接哪个好?

了不起的程序猿

MySQL 数据库 java程序员 :MySQL 数据库

大数据培训课程如何选?

小谷哥

对话跨国消费品牌DPO:数据安全合规从何做起?8.11直播见!

奇点云

数据治理 数据安全 数据合规

浅谈一线互联网大厂中算法岗的分类

码农鬼仔

数据挖掘 AI 算法工程师 校招 机器学习/深度学习

七日算法先导(六)——堆排序,桶排序

工程师日月

8月月更

web前端培训课程怎么选择

小谷哥

《数字经济全景白皮书》银行业智能营销应用专题分析 发布

易观分析

金融 银行 白皮书 智能营销

收到人生第一笔五位数工资

Amazing_eve

#开源

API接口是什么?API接口常见的安全问题与安全措施有哪些?

郑州埃文科技

API接口管理 非对称加密 md5 令牌桶算法

富媒体在客服IM消息通信中的秒发实践

得物技术

前端 即时通讯 客服 富媒体 大文件传输

在北京参加UI设计培训到底怎么样?

小谷哥

开源一夏 |最好用的脚本语言--JavaScript

叶秋学长

开源 前端 js 8月月更

开源软件公司易犯的5大错误,又该如何避免?_语言 & 开发_李建盛_InfoQ精选文章