GitHub 发起的开源星期五之意义所在

其实重点是为企业,那些重度依赖开源,却又不知道如何贡献的企业所量身定制,多数企业意识到了开源的意义对于自身业务的重要性,但是就是不知道该如何参与?或者说如何调整现有的团队组织和文化?而这也是布道师一直想要解决的难题,那么好了GitHub开启了这样一条道路!

引子

某次国内开源的圆桌会议,我听到这样一个案例:

我们是基于Linux做一些嵌入式、服务器的定制发行版,为了和社区跟进,我们鼓励大家向社区提交代码,并为此专门设置了奖金池,可是多年下来,奖金池根本无人问津,反而还造成一些人员的流失。我们非常纳闷究竟是哪里做错了?

是的,这样的例子比比皆是,大家都是一副“我本有心向明月,奈何明月照沟渠”的姿态,是这届工程师不行,大约一般都会得出这个道理。基于开源做商业发行版的,多虽不多,但总归是有的,基于开源做业务系统的,这就多如牛毛,不胜枚举。

还有一个现象和大家分享,那就是我们经常会说本土的大型互联网企业不懂开源,以为在GitHub上开个账号,自己说自己是开源了,然后自娱自乐,然后,也经常听到他们说积极的 “反馈” 1 开源,也就是说都是存在着误区,认知和理解上的误区。

问题的症结就在于对于上游贡献,如何贡献?怎么贡献?失去控制权怎么办?

开源星期五

GitHub 从其外界所表现出来的,从来就没有止步于代码托管本身,而是不断的在锐意进取!尤其是今年对开源的发力,在2月14日发布开源指南站点,全方位的针对开源,进行了方法论的总结和最佳实践指南,详情可参考我的演讲稿:开源之道解读开源指南;稍后又发布了GitHub开源站点,并自豪的宣称自己是全球最大的开源社区;继而在6月份,发布了开源调查:开源界的现状如何

正是因为有了上面的动作,GitHub继续前行,开发了开源星期五项目。从三个纬度介绍了开源星期五的理由、原则和方法,当然最重要落实的,还是提倡大家每个周五,从百忙中抽出2个小时或以上的时间来为开源做贡献,益处多多,何乐而不为?

贡献者角度

开源得益于无数的像你我这样的普通人的贡献,如果你总是徘徊在开源项目的大门之外,那么可能永远无法做到真正的融入,为开源做贡献并没有你想象中的那么难,恰恰相反,开源从来就是严重缺人,缺各种人才的,非常欢迎愿意花时间和精力的任何人。如果你已经对开源项目非常熟悉,那么可以找到自己热爱的项目,继续挑战自我,或者是帮助新入门的有意者。这里对开源指南中的如何为开源做贡献进行一次简单的概述。

首先是一个认知的过程,和人类做任何事情一样,在作出选择之前,先要明白开源能为你带来什么?你是否承认它的价值,是否相信它,是否能够愿意为之付出。开源因为源代码对全世界都是开放的,对于学习、沟通都是绝佳的“地方”,当然,就目前开源渐趋主流的情况下,开源所带来的益处是显而易见的。

第二,你得知道真相,参与到开源当中来,并不意味着你不需努力,或者说可轻松得到你想要的,相反,为开源做贡献,需要你付出很多时间、精力。当然,不一定是非得懂编码,撰写文档、设计、组织活动等都是可以的,只要你有热情来做,甚至开源都毋需局限于软件项目,现在有很多的开源项目未必是软件项目。你也可以参与进来。

接下来要做的就是寻找能够让你感兴趣的项目,然后就去做就是了,做完之后记得要负责、善后哦。

是的,参与到开源项目中,远没有看起来那么的让人焦虑和茫然失落,而是有条有理。记得问自己一句:“你究竟要的是什么?” 剩下的交给我们,我们会手把手的教你如何做。

公司的角度(重点)

这才是这次“开源星期五”的重点指导对象,可以毫不做作的说,整个互联网都是得益于开源软件,而既然加入了这个巨大的生态系统,参与其中是更能够获得更多好处的。

公司参与到开源的好处:

  • 改进所依赖的技术,能够在社区发出自己企业的声音。
  • 让企业的沟通、协作更加的流畅。
  • 企业最喜欢的:能够有效的节省成本
  • 吸引和留住人才:人才才是王道

GitHub 的团队甚至还专门制作了一个添加到日历,利用一下刚刚热起来的大脑,本周五就撸起袖子干起来。

其实,不用过多的废话,看看业界榜样是怎么做到,如Google、微软、FaceBook等业界是如何让自己的员工为开源做贡献的,剩下的就是KPI考核这些细节问题了。所以你先和你的HR商量一下,或者给HR上上开源的课,诱惑就是可以帮你招到人哦。

开源项目维护者

看看各个巨头为了攻城掠地,已经在开源布局了,那么这个时候,对于开源项目就有了更高的要求,项目的维护者需要加倍的用心。要真正做到:帮助人们加入到贡献者阵营。

GitHub 从三个纬度给出了相应的建议:

宣传你的项目

我们经常会看到这样的情形,在GitHub、SourceForge等地方创建了一个项目,然后就不闻不问了,要知道,这是一个项目盈余的时代,必须发出自己的声音,方能让更多的人知道,然后才有可能产生兴趣,进而参与进来。

在你的源代码中,将README文件写的尽可能的全面:项目是干什么的,贡献需要何种技能,如何共享等。

利用社交媒体、博客等互联网工具来尽最大可能来传播你的项目。

让社区野蛮生长

在GitHub刚刚结束的开源调查:开源界的现状如何中,排名的第一的,就是开源项目的文档糟糕极了。一定要完善项目的文档,这点毋庸置疑。并且尽可能的写全面了。

寻找有希望的潜在贡献者或维护者分享您的项目的所有权。要对第一次作出贡献的贡献者进行特别的鼓励和欢迎。

经营社区是一件系统工程,对于任何企业或个人都是非常大的挑战,若是以科学的细致分析来看的话,这是一个涉及人类学、工程学、经济学、心理学、文化等诸多领域的跨界工程。但是千万记得:信任和尊重是靠自己的赢取的,永远无法索取得到。

改进项目的工作流

从优秀的项目中吸取经验,以一名合格的维护者身份要求自己,并承认自己也是血肉之躯,应诺自己能够通过努力做到的,对做不到的事情及时的说不。贯彻工程思维,凡是能够自动化的人工绝对不会干涉。更多内容,请参考维护者最佳实践

意义所在

开源所带来的 “技术负债”,正在困扰着现在的诸多企业,无论是基于开源项目做商业产品/项目的公司,还是利用开源做支撑运行自身IT业务的大中型企业,不可回避的问题就是开源已经占据了绝大部分。那么,随着社区上游的快速发展,自身业务的增长,成本随之上升。这引来了一个看起来蛮占便宜却花了更多钱的悖论:成本为零的开源软件,随着时间的推移,维护成本在无限升高。 具体的表现就是:

  • 新特性合并困难重重
  • 自身开发的维护步履维艰
  • 人员不堪重负
  • 影响上市速度

参与到开源项目,已经是迫在眉睫的事情,不参与就得被淘汰。所以你准备好了吗?还不赶紧学习?


  1. 关于反馈的话题,我会专门撰文撰写,“要参与,不要反馈!” [return]