5W1H聊开源之Why——为什么要参与开源?

陈哥聊测试
• 阅读 94

中国开源的发展速度发展加快,个人和组织对于为开源作贡献有着前所未有的激情。据《2023年IT行业项目管理调查报告》,深受测试工程师欢迎的前两性能测试工具依旧是JMeter和 LoadRunner/Performance Center。正如朱少民老师所说:“开源工具目前越来越受欢迎,工具厂商也普通采用开源商业模式。”

创建和维护那些被广泛使用的开源项目每年可能需要耗费数千小时,为什么开发者会愿意花费时间和精力编写这些免费公开的代码?为什么企业会愿意让他们的员工编写代码,开源让其他公司甚至是竞争对手都可以使用?个体参与开源会得到什么?

5W1H聊开源之Why——为什么要参与开源?

一、个人为什么要开源?

1.提升代码质量

参与开源项目是提升个人代码质量的好方法。一方面开源会激发程序员的“耻感”,一旦清楚这些代码是要公开给别人看的,就会自觉将代码写得更加整洁、干净,加更多注释。另一方面,如果项目有一定的影响力,其他关注、参与的程序员也会给予更多建议,这样可以博采众长,无形之中约束自己的代码规范,改进自己的代码质量。

开源运动旗手 Eric S. Ray­mond 就曾说过:“只要经过足够多双眼睛的审查,所有的 bug 都将失去藏身之地。这就是 Linus 定律。”

2.展示个人代码

一个小时的面试可能只能展示你掌握的某些底层基础或者前沿知识,但如果有开源项目傍身,就可以从你长期的代码中看出代码质量如何。而且参与开源项目还能展示出你对技术的热爱,向面试官展示你引以为傲的开源项目,这将是个不错的加分项。而深度参与知名开源项目的开发者,从来不缺工作,参与开源的经验不仅能帮助他们获得更广阔的职业机会,而且能拓深职业发展空间。正如 jQuery 的创始人 John Resig 曾说过的那样:“不管在任何时候,只要涉及到招聘,相比普通的简历而言我更看重的是应聘者在 GitHub 上开源共享的东西。”

3.建立个人品牌

正如上述两条,代码质量提升和简历的加分项都会指向同一个成就:打造个人影响力,建立个人品牌。最为典型的就是Git的发明者Linus,尽管他的自述是“只是为了好玩”,但从他的名声大噪来看,倒是有些“凡尔赛”了。现今活跃的很多技术大牛往往是在大公司工作过的顶级工程师,凭借开源贡献在软件社区当中积累起人气与声望,摆脱公司标签,成功打造个人品牌。

5W1H聊开源之Why——为什么要参与开源?

二、企业为什么要参与开源?

1、改进代码和功能

大多数的组织和个人首先参与的是他们正在使用的开源项目,主要目的是想让项目/软件变得更完善,更便于自己使用;或者直接打造自己所需的工具并将其开源,也就是常说的“造轮子”。 这部分改进的功能当然可以自己使用不提交,但继续分享才是让利益最大化的方式,因为如果不贡献自己的代码,就有可能面临新版本这些功能不再工作的风险。

2.获取竞争、招聘优势

在程序员的世界中,开源虽说不上是多么崇高的事,但整体形象确实是正面的。开源意味着企业愿意与其他企业和个人共建生态,这个企业的大体上来说,是有拥抱开放的这样的倾向的。所以参与开源有助于提高组织和企业的声誉,且更能吸引志同道合的求职者共同发展。此外,这种行为也有助于提高组织和企业的声誉,提升品牌形象,特别是在开发者之间的口碑,带来的好处就是利于招聘和留住人才。

3.开源商业模式直接获利

开源不抵触商业,开源的目的是分享共享,但不是做慈善事业。具体盈利模式有技术支持、培训、高级功能、云服务等方式收费。不同的软件、不同的领域有不同的盈利模式,但所有模式的基础都是用户数。只有用户数量达到了一定的规模,才有成其商业化模式的可能。

商业开源是通过更多人的参与,减少软件的缺陷,丰富软件的功能,同时也避免了少数人在软件里留一些不正当的后门。企业通过开源的商业模式可以直接获得经济利润,开源软件最终还会反哺商业,让商业公司为用户提供更好的产品。

三、写在最后

赠人玫瑰,手有余香。开源最美妙地方就是不必花时间解决同样的问题,当你遇到的大问题已经有人做了开源项目时,一定感觉如释重负。同样,当看到你的开源项目为其他人解决了问题时,巨大的成就感也是一种巨大的激励。

所以参与开源的原因或好处,除了上述具体因素,也有各种心理原因,也包含其他诸如降低开发成本、促进行业标准、支持开源价值观甚至纯粹的享受开源乐趣或回馈开源项目等因素。参与开源的“动机”当然可以“不纯粹”,也不讲究“默默无闻,无私奉献”,参与即贡献,开源领域的发展与每一位开发者都息息相关,进一步有进一步的欢喜。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
晴雯 晴雯
1年前
Visual Studio Code for Mac的安装与使用
VisualStudioCode(简称VSCode)是一款由微软推出的免费开源文本编辑器,有着出众的用户体验和丰富的功能。在软件开发领域中,它成为了众多开发者的首选工具之一,并因其卓越的性能和扩展性而备受欢迎。本文将介绍VSCode的特点和优点,以及为什么
Wesley13 Wesley13
2年前
Uber准备放弃自动驾驶,转手卖给前谷歌无人车CTO,估值曾被孙正义炒到72.5亿美元
!(https://oscimg.oschina.net/oscnet/0fe7cb00a0cf4872b022342d1e21d47e.png)杨净发自凹非寺量子位报道|公众号QbitAI最新消息,Uber要出售无人驾驶部门(ATG)了。据TechCrunch报道,Uber有意向出售,而也有人愿意买。
Wesley13 Wesley13
2年前
初探 Objective
作者:Cyandev,iOS和MacOS开发者,目前就职于字节跳动0x00前言异常处理是许多高级语言都具有的特性,它可以直接中断当前函数并将控制权转交给能够处理异常的函数。不同语言在异常处理的实现上各不相同,本文主要来分析一下ObjectiveC和C这两个语言。为什么要把ObjectiveC和
Stella981 Stella981
2年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
陈哥聊测试 陈哥聊测试
4个月前
5W1H聊开源之What——开源是什么?
开源软件就是公开源代码的软件。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。
陈哥聊测试 陈哥聊测试
3个月前
5W1H聊开源之Who——谁“发明”了开源?
本系列文章就以5W1H体系来讲一讲开源的那些事。这一次,讲讲开源的Who——谁“发明”了开源以及开源的起源。
陈哥聊测试 陈哥聊测试
3个月前
5W1H聊开源之Who和How——谁、如何参与开源?
上次Who的主体是谁“发明”了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中?
陈哥聊测试 陈哥聊测试
1个月前
5W1H聊开源之What——开源协议有哪些?
开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。