开发人员到底为什么甘愿为开源项目贡献辛苦编写出的代码?
我们不久之前就此进行了一次调查。受访者们给出的答案非常简单,当然不同受众的反馈信息也有所区别。我们可以比较宽泛地将贡献者们划分为两种基本类型,双方的核心差异在于其初始驱动因素:
已经在办公或者环境中使用特定开源软件的软件开发人员与专家。
目前尚未使用相关应用程序,但却出于某些理由而有意愿加入开源软件开发项目的其他人士。
下面是我们汇总出的七大主要理由:
功能特性
好的,这一条非常明确,而且同时适用于前面提到的两类开源项目参与者。作为开发人员,大家可能出于对某种新型功能特性的需要或者修改某项功能以使其符合自身需求的目的加入贡献者队伍。此外,对现有功能进行强化或者修复某项漏洞也是重要原因之一。最终,大家需要从贡献当中获得成果。
“也许开发人员着手进行开源项目贡献的最常见的原因就是因为他们需要借此获取自己需要的成果。他们所使用的软件可能存在漏洞或者缺少某种功能特性,而对于一部分这类问题、他们可能恰好帮得上忙。”
经验
明智的开发人员会意识到经验中蕴含的巨大力量——我所指的并不是长年累月的开发经历,而是具备广度与深度的接触与学习机会。没有任何一个人能够将编程世界中的全部知识融汇在自己的脑袋里头。很多人喜爱徜徉在全新代码库当中所带来的挑战感受,也很清楚只有这样不断学习才能提高自己的技术水平。
“经验。在这里你可能会用到一些在日常工作中永远无法涉及到的技能与知识。”
社交理由
从心理层面讲,我们每个人都属于社会性动物,而开源社区正是一个容纳社交关系网的良好处所。大家能够在这里遇到才能出众的同好、经验丰富的开发人员并结交到很多新朋友。程序员的生活有时候显得过于孤寂,开源社区作为技术大家庭足以温暖我们冰冷的内心。很明显,为开源项目作出贡献正是一种拓展交际圈并与对方分享知识交流经验的绝佳途径。
“你有机会与一些真正出色的成员共事。开源社区允许你同朋友以及同事圈之外的人们建立起深厚的友谊。”
自由(免费)
为开源项目作贡献所带来的自由感体现在两个方面。其一,我们能够将自己的聪明才智转化为真正杰出的作品,而且在这里我们可以自由自在地使用并分享各种灵感。其二,货币与价格的概念都是人为创造出来的——而生命中真正美好的东西都跟金钱没什么关系。
在另一方面,开源当中还蕴含着另一种自由——我们可以随意根据自己的喜好对软件作出改动。没有任何强制性的规则或者管理机制束缚我们完成任务的具体方式。
俗话说得好,重要的是自由而不是免费。
“我们为自己热情所寄托的开源项目作出贡献,而且在此过程中学习新的知识,没有任何人能来决定我们应该如何工作!”
成就感
出色完成工作所带来的成就感实在是种难以言喻的宝贵体验。对于一部分人群来说,成就感正是生活当中做人做事的首要原因。那么还有什么更好的选择能比加入开源项目带来更为广阔的施展平台?为开源项目作出贡献能够让你体会到从无到有构建成果的满足感,并因此得到承认与感激。
“我之所以这么做,是因为我喜欢完成任务的感觉。我希望通过实际行动证明我对这个世界是有所贡献的。”
个人声誉
必须承认的是,拥有开源软件贡献经历能够让我们的简历变得光彩照人。不过除此之外,大家还能够仅凭开源贡献在软件社区当中积累起人气与声望。你可能会被列入到某款软件的开发人员名单,而朋友们恰好都在使用这款软件。由此带来的激励效果要远远超过每天枯燥完成的业务应用代码行。这种感觉很赞,真的很赞。
“我爱技术挑战以及解决难题带来的荣誉。我爱自己发布且饱含着个人编程技巧体现的代码成果。”