开发人员如何推广开源项目?
1原作者Hudson Borges, Marco Tulio Valente
Department of Computer Science, UFMG, Brazil{hsborges,mtov}@dcc.ufmg.br
原文“How do Developers Promote Open Source Projects?”。
翻译,方建勇,1978年生,浙江大学毕业,硕士研究生学历,曾在央企工作,担任过“国家千人计划”专家助理,计算机行业资深工程师与管理人员,中国制造2025浙江省第一批受训高管,IEEE(电气和电子工程师协会)会员、ACM(国际计算机学会)会员、CIPS(中国中文信息学会)会员、CSL(中国物流学会)会员、CSIAM(中国工业与应用数学学会)会员,华为云MVP,拥有10多项发明专利。
开源项目对现代软件开发越来越重要,与商业软件项目一样,这些项目应利用推广渠道与用户、贡献者进行沟通并建立联系。我们研究了用于推广100个受欢迎的GitHub项目的渠道。 首先,我们发现Twitter、用户会议和博客是所研究项目最常用的推广渠道。其次,关于所调查的推广渠道的使用情况,我们报告了所研究项目与随机项目样本之间的主要差异。再次,我们展示了流行的新闻聚合网站(Hacker News)在推广开源方面的重要性。最后,我们向开源项目经理和负责人就推广他们的项目提出了一系列实用建议。
数百万用户每天使用几个开源项目,为了增加长期成功的机会,不断吸引更多的参与者和贡献者对于这些项目非常重要,可以使用几个渠道来推广开源软件,从而帮助保持社区的兴趣并吸引新成员。
我们研究了开发人员用来推广开源项目的最常用渠道,在GitHub上手动检查了一大批受欢迎的项目,这是世界上最大的开源软件集合,拥有大约2700万用户和7700万个存储库。我们的贡献包括:(1)有关受欢迎的开源项目经常使用的推广渠道的数据;(2)比较流行项目和随机项目对推广渠道的使用;(3)分析推广对研究项目的受欢迎程度对热门新闻汇总网站Hacker News的影响。
我们的发现有助于从业人员了解在开源开发环境中使用推广渠道的重要性。为了揭示开发人员使用的最常见的推广渠道,我们手动检查了GitHub上星数最多的前100个项目的文档(星号是表达对GitHub项目的兴趣或满意度的流行功能),将分析限制在受欢迎的项目上,因为它们有大量的用户,因此需要更好和有效的方式与用户进行交流并吸引新的贡献者。
研究中考虑的项目星数的分布,这个数字范围从291,138星(freeCodeCamp/freeCodeCamp)到23,322星(tiimgreen/ github-CHEAT-SHEEt)。我们所考虑的项目主要是用17种编程语言开发的, JavaScript是最常见的(40个项目),其次是Python(9个项目)和Go(5个项目),有14个项目仅包含用于文档目的的markdown文件(例如,包含教程、书籍和超赞列表的项目),其中69个是组织帐户,31个是个人帐户。
对于这100个项目中的每一个,Hudson Borges最初在GitHub上检查了他们的README,以确定用于推广项目的渠道,并向用户提供有关它们的重要的最新信息。例如,下面的句子在adobe / brackets的自述文件中可用:“您可以在wiki上看到Brackets的一些屏幕截图,在YouTube上看到介绍视频,在Brackets博客上可以看到新闻”。在这种情况下,Wiki和YouTube用于用户支持,而Blog是用于传播有关新闻的渠道,在我们的研究中,只有博客被视为推广渠道。
经过手动检查,我们发现了以下推广渠道:
•博客,例如,用于发布新软件版本,即将发生的事件和改进的公告。
•活动和用户会议:组织活动和用户支持会议是推广项目的其他常用策略。在活动中,主动性通常来自开发团队或支持项目的组织,而在用户会议时,主动性通常来自特定区域或国家的用户,我们依靠Meetup(https://meetup.com)发现用户会议。
•Twitter,Facebook和Google+,它们也用于将项目连接到用户。我们只考虑了官方帐户,这些帐户在项目文档中明确广告过或通过社交网络进行了验证(例如https://support.twitter.com/articles/20174631)。
•时事通讯和RSS提要,指的是有关项目和RSS提要的最相关新闻的电子邮件。
此外,我们发现开发人员使用问答论坛(例如StackOverflow),讨论组(例如Google网上论坛)和消息传递工具(例如IRC和Slack)来推广他们的项目。 但是,这些渠道主要用于讨论项目并提供用户提出的常见问题的答案。 例如,在2017年Google网上论坛的adobe / brackets讨论组中打开的155个主题中,只有8个(5.1%)与新版本的公告相关,主要是针对社区测试的预发布版本。 此外,在facebook / react官方论坛上的近500个主题中,我们无法确定任何与项目开发相关的公告。 在本研究中,我们不将论坛、讨论组和消息传递工具视为推广渠道。
图2:GitHub上排名前100的项目使用的最常见的推广渠道
图2展示了GitHub上排名前100的项目所使用的最常见的推广渠道。最常见的渠道是Twitter,有56个项目使用该渠道。其次是用户会议(41个项目),然后是博客(38个项目),事件(33个项目)和RSS feed(33个项目),最不常用的渠道是Facebook和Google+,分别有18个和7个项目使用。
图3显示了每个项目的推广渠道数量的分布。几乎三分之一的项目(32个项目)不使用任何通道,相比之下,超过一半的项目(55个项目)至少使用两个推广渠道,推广通道的数量最多,为七个,例如facebook / react,facebook / react-native,meteor/meteor,golang / go,ionic-team / ionic,Angular / Angular和Adobe / BRACKETS。我们还发现Blog和Twitter是渠道的最频繁组合(35个项目),其他常见组合包括,例如,博客和RSS(31个项目),事件和用户会议(31个项目)以及Twitter,事件和用户会议(31个项目)。.
图3:每个项目的推广渠道数量
在第二个问题中,我们调查开发人员在博客和社交网络上推广项目的频率。对于博客,我们将推广频率计算为最近12个月的帖子数。对于社交网络,我们无法检索所有项目的所有帖子,因为它们的API将搜索限制在最近的时期(例如,Twitter过去7天,Facebook过去100篇)。因此,在这种情况下,我们仅将每个社交网络帐户分为两个不同的组:有效和无效。活跃帐户在过去三个月中至少有三个标题;否则,它被视为无效帐户。通过手动计算社交网络页面上的帖子数来执行此分类,该数字范围从1(nylas / nylas-mail)到1,300(freeCodeCamp / freeCodeCamp);第一个,第二个和第三个四分位数的值分别是7、19和54个帖子,表1列出了Twitter,Facebook和Google+帐户的活动状态。我们发现,使用Twitter的项目中有83.9%拥有活跃帐户; 55.6%的项目拥有有效的Facebook帐户,只有28.6%的项目具有有效的Google+帐户。
表1:有效的Twitter,Facebook和Google+帐户
最后,我们研究了在Meetup上推广的用户会议组的特征(此类会议是我们研究的第三种最常见的推广渠道)。聚会组织是一个当地人社区,负责组织会议活动,这些组通过主题标识,以帮助成员找到它们。在这里,我们依靠这些主题来收集有关已研究的开源项目及其位置(即城市和国家)的聚会。例如,jquery / jquery的主题是jquery,有关此主题的会议组的摘要可以在https://www.meetup.com/topics/jquery/all上找到,最大值始终是指torvalds / linux。换句话说,torvalds / linux有2,261个聚会组,分布在96个国家/地区的725个城市中。
我们调查了流行的GitHub项目使用的最常见的推广渠道,对比了这些项目和GitHub项目的随机样本对推广渠道的使用。为此,我们按星数从前5,000个存储库中随机选择了100个项目,并手动检查了其文档,此随机样本的星数范围为2,297星(超级档案/ image-diff)至22,558(VSOUZA / AWESOME-IOS)。
我们比较了随机项目和最受欢迎项目的推广渠道使用情况。在随机样本中,使用调查的推广渠道的项目数量比最受欢迎的项目少得多。但是,通过应用Spearman秩相关检验,我们发现每个组使用推广渠道的项目数量之间有很强的相关性(rho = 0.904,p值<0.01)。例如,在随机项目(31个项目)中,Twitter也是最常用的推广渠道,其次是博客(17个项目)和RSS(13个项目)。与最受欢迎的项目相比,“用户会议”和“时事通讯”较少见(分别为13个和6个项目)。最后,Facebook和Google+的用法也非常有限(分别为7个和4个项目)。
在博客,Twitter等上发布内容之后,开源开发人员还可以在社交新闻聚合器站点上推广此内容,这些网站汇总了来自不同来源的内容,以方便广大公众查看。最受欢迎和最重要的示例是Hacker News(https://news.ycombinator.com),该新闻致力于计算机科学和相关技术的内容。 Hacker News帖子仅包含标题和所推广内容的URL(例如,有关开源项目新版本的博客帖子)。在网站上注册的任何用户都可以在Hacker News上发布链接,即链接不一定由开放源代码项目的贡献者发布。其他Hacker News用户可以讨论这些帖子并对其进行赞扬,投票类似于社交网络中的点赞,帖子根据投票数列在《黑客新闻》上。由于受到黑客新闻的欢迎,我们在本研究中使用了它,到达网站首页的帖子在一两天内(例如https://goo.gl/evyP4w)会收到10-100K次页面浏览。此外,Hacker News提供了一个公共API,该API允许搜索和元数据收集。
对于研究中考虑的每个热门项目(100个项目),我们搜索了带有URL的Hacker News帖子,这些URL引用了项目站点或页面,包括GitHub页面。结果,我们在Hacker News上发现了3019个帖子,这些帖子引用了96个研究过的项目的内容(即从未在Hacker News上引用过四个项目)。我们发现每个项目的标题数量,投票和评论的分布,每个项目的员额数量为1至298个(铁轨/铁轨);第一,第二和第三四分位数的值分别是4、10和43个帖子,关于他们的投票,最受欢迎的帖子是关于appple / swift(“ Swift是开源”),有1,824票;四分位数分别是2、3和12个点数。最后,关于Microsoft Visual Studio的GitHub问题的评论最多为760条(“由于光标的闪烁,VS Code在空闲时使用13%的CPU”);四分位数分别是0、0和2个注释。这些结果表明,大多数Hacker News帖子并未引起关注,相比之下,少数标题吸引了很多关注。例如,排名前10%的标题至少有132个投票,这些标题在此调查中称为成功标题。
在Hacker News出版日期之前和之后的前三天,成功帖子涵盖的项目获得的GitHub星图数量,我们目的是通过比较每次成功发布前后获得的星星数量,来调查一次成功的推广活动对Hacker News的影响。从中位数看,成功帖子涵盖的项目在出现在Hacker News之前的前三天中获得了74颗星;在发布后的前三天,这些项目获得了138星。由GitHub星星衡量,Hacker News对项目的受欢迎程度具有积极影响,根据Mann-Whitney U检验的单尾变异(p值<0.05),分布在统计上是不同的,通过计算Cliff的增量,我们发现发现中等效应大小(d = -0.372)。
最后,我们检查了每个成功的标题,目的是对标题目的进行分类。最常见的类别包括宣布开源项目新版本的帖子(占44.9%;例如“ Angular 2 Final Released”)。其他热门类别包括发布有关项目的文章或报告的帖子(占25.4%;例如,“ Vue.js vs. React”),宣布项目的第一个版本(占16.5%;例如,“ YouTube-dl:开源YouTube 下载器”),突出显示了新的项目功能(10.6%;例如,“ Git和GitHub集成集成到Atom”)和开源产品(1.6%;例如,“ Visual Studio Code现在是开源”)。
尽管最近对开放源代码软件进行了详尽的探索,但对于开发人员如何推广这些项目知之甚少。主要的例外是Bianco等人进行的工作,他们分析了开发开源软件的三家公司的营销和传播策略,通过访谈,他们发现这三个组织采用了网站和产品发布活动。但是,这些组织在使用其他沟通渠道方面存在很大差异,主要是在开源社区和工业用户之间推广项目时。
一方面,本文研究的大多数沟通渠道都在其他研究中进行了探索,重点是发现Twitter给开发人员带来的好处。他们发现Twitter的采用者使用它来了解行业变化,学习和建立关系。通过关联开发人员的博客和提交行为,Pagano和Maleej观察到博客的大量使用,经常详细介绍不久之前在提交消息中描述的活动。 Bajic和Lyons分析了软件公司如何使用社交媒体技术来收集用户的反馈信息,他们的结果表明,初创公司主要使用社交媒体来获得竞争优势,而成熟的组织则使用它来监视用户中的噪声。通过研究成功的软件开发公司,Hansson等人确认采用了用户会议和新闻通讯,以包括并增加用户对开发过程的参与。最后,Aniche进行了一项研究,以了解开发人员如何使用现代新闻聚合器站点(Reddit和Hacker News),根据他们的结果,在这些网站上发布链接的两个主要原因是推广自己的作品并共享相关内容。
我们调查了流行的GitHub项目使用的最常见的推广渠道,此调查支持对开源项目经理和负责人的以下实用建议:
1.推广是开源项目管理的重要方面,项目负责人应强调此点。例如,最流行的GitHub项目(三分之二)使用至少一个推广渠道;一半的项目投资在两个渠道上。相反,在较低知名度的项目中,推广渠道的使用并不常见。
2.开源项目经理应考虑使用Twitter(在最受欢迎的GitHub项目中排名前100的47个项目中都有活跃的Twitter帐户),用户会议(由41个项目组织或支持)和博客(由38个项目人员使用) 。
3.开源项目经理还应该考虑在社交新闻聚合器站点上进行推广。成功发表在Hacker News上的帖子可能会对GitHub项目的受欢迎程度产生重要影响。但是,关于研究项目的Hacker News帖子中只有10%取得了一定的成功。(完)
有疑问加站长微信联系(非本文作者)