写点什么

开源软件公司易犯的 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:482922
用户头像

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

关注

评论

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

盘点冬奥会上的那些“黑科技”,你也可以掌握它!

博文视点Broadview

aPaaS将如何改变软件行业?

华为云开发者联盟

云计算 软件 软件开发 SaaS aPaaS

如何帮助金融客户“用好云”?

阿里云云效

阿里云 运维 云原生 云平台 阿里云混合云

面向推理训练一体化的 MNN 工作台

阿里巴巴终端技术

端智能

Lazada D11 体验升级技术实践

阿里巴巴终端技术

ios android 客户端开发 移动端 体验优化

奥运吉祥物——冰墩墩太难抢了,Python给你画一个

王小王-123

Python

网易传媒Go语言探索

月读

golang 开源治理

Moviepy+OpenCV-python结合进行音视频剪辑处理 | 社区征文

老猿Python

音视频 Moviepy 数字图像处理 新春征文 OpenCV-Python

新思科技BSIMM评估为安全团队提供“他山之石”

InfoQ_434670063458

汽车 新思科技 软件定义汽车 软件安全 BSIMM评估

做了一份前端面试复习计划,保熟~

CRMEB

人手一个数字人还有多远?百度吴甜做客央视《对话》

百度大脑

一文读懂 Serverless 的起源、发展和落地实践

Serverless Devs

2月月更

渗透测试之中间件漏洞复现

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

如何用建木CI导入导出Redis数据

Jianmu

DevOps CI/CD Redis 数据结构

推荐系统基础结构总结 | 社区征文

张浩_house

推荐系统 大数据开发 新春征文

如何让代码代码管理变的更安全更高效 | 云效开发篇

阿里云云效

阿里云 DevOps 云原生 代码管理 Codeup

探秘 k8e:极简 Kubernetes 发行版

张晓辉

Kubernetes 云原生

React Fragment介绍与使用

编程江湖

React

sql 学习笔记

孙青

监控治理有效性评价体系

焦振清

监控治理 评价体系

辩论这件事,其实不止奇葩说

小鲸数据

金融云原生漫谈(七)|云原生时代:从传统运维到智能运维的进阶之路

York

容器 云原生 金融科技 智能运维

卷起来了!软件开发正在越来越快……

飞算JavaAI开发助手

恒源云(GPUSHARE)_社区大佬的论文小记(Flooding-X)

恒源云

深度学习 计算机视觉

vivo 评论中台的流量及数据隔离实践

vivo互联网技术

mongodb 中台 分布式

优秀程序员的30种思维--行为准则篇(11/100)

hackstoic

零代码技能平台技术实践探索

OPPO小布助手

人工智能 低代码 零代码 智能助手 对话系统

你在央视春晚抢红包,京东云却在后台玩起了“剧本杀”

脑极体

Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩

张晓辉

Kubernetes 弹性 HPA

Spring Boot Serverless 实战 | Serverless 应用的监控与调试

Serverless Devs

云效x钉钉:让研发工作更简单

阿里云云效

阿里云 云原生 钉钉 研发 云钉一体

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