近日,腾讯开源线下沙龙分享会在广州举办。分享会邀请了多位腾讯开源项目作者,分享自己在开源方面的经验心得。

会上,腾讯知名前端开源项目WeFlow的开发ZedHuang系统地介绍了一个开源项目从立项、生长、曝光到社区维护等各方面积累的经验。

项目

WeFlow是WeChat团队为web开发人员提供跨平台支持和环境准备的前端工作流开发工具,目前已支持微信游戏、微信·朋友圈广告、微信·城市服务等第三方合作团队的前端构建工作。WeFlow帮助合作商在微信快速部署业务和高效迭代,开发出的产品不仅布局优雅、界面精美,还具备易扩展、易接入、开发门槛低等优势。

作者

ZedHuang,黄自力,来自腾讯微信事业群,高级UI工程师,主要负责微信的UI界面相关工作,参与了开源项目WeFlow的开发,是腾讯开源社区里的活跃用户之一。

拥抱开源的初心

我在很早以前,就已经有做开源的想法。在互联网上,我一直以hzlzh的名称“混”在开源圈,运营属于自己的GitHub账号,发布了一些项目,也吸引了很多人一起参与。对我来说,接触开源圈最大的鼓励,是自己在WordPress写的文章被圈子内的开发者翻译成多个语言版本。这些,都成为我拥抱开源的原动力。

一个项目的开源历程应该分为3个阶段和1个结果。项目经过了生长,运营推广和社区维护三个阶段的努力之后,就能达到提升影响力的结果,最终把项目搞大、搞火。

何为影响力?

衡量影响力应该从这三个指标入手:知名度、口碑好、逆背书。

知名度

对于新用户来说,当我们的项目知名度提高之后,他们面对技术选型或遇到开发问题时,会优先想到我们的开源项目作为其备选方案。同时,开源项目知名度提高之后,才能在社区里引起开发者的关注,给它做贡献,使其更加健壮。

口碑好

对于已经使用我们开源项目的用户来说,口碑好显得尤为重要。因为项目的好口碑使这批用户不自觉地向身边的同事或其他项目组推荐,成为我们项目的“自来水”,达到良好的二次推荐效果。

逆背书

这个词看着陌生,换句话说,一个明星团队会做出很多明星产品。能够产出明星产品的团队,同样也是优秀的团队。所以,运营出影响力大的开源项目,可以佐证这个团队出的是精品,是对团队与个人实力的认可。

项目生长

产品立项——直击痛点,有吸引力

我们必须为产品找到一个痛点,才能吸引开发者来使用。

  • 深入调研
    我们要明白自己做的是什么。是一个轮子,还是一个新的轮子?
  • 产品定位

我们的产品是给小白用户用的,还是给高级开发者用的?我们要做简单易用的东西,还是高端的模块?这些在项目开始时就应该定位好。

  • 明确受众
    我们产品受众的是公司内的产品或业务线,还是为整个开源圈做贡献?相信大部分人都认为,开源项目首先要满足业务线上的需求。当满足大项目的需求之后,再把项目开源出去,用户就会觉得,“大项目都能用了,我的项目自然能用得如鱼得水”
  • 规划未来

梦想还是要有的。我们的每一个小项目开源出去,都有可能开花结果。所以项目初期,我就对它的未来做畅想,说不定它就成为下一个像微信一样优秀的产品。

快速迭代——注重体验,有竞争力

每进行一次迭代,都需要关注功能体验,尽力给用户“用起来很顺手”的感觉。这样我们的产品才能在同类竞品中闪闪发光,保持竞争力。

  • 尽早发布最小的可用版本
    不要一开始就追求完美,等到做出1.0版本才去发布。我建议,0.0.1版本就可以发布出去。这可以在市场有一次很好的试水,看看开发者的反馈。通常开发者会有两种表现。一是“好像别人已经做过了,你去看一下吧”。如果别人确实做得比自己好,这个项目就可以砍掉了。二是开发者对你的项目提出各种各样的点子,说明项目击中了痛点,打到了实处。
  • 合理制定功能迭代优先级

我们需要把自己要做的每个需求做简单地分类,哪些是要做的,哪些是用户真正用到的。把它们列起来,这样会显得非常直观。

  • 可回溯的版本号和发布日志
    不能每个版本都是1.0版。这里我推荐语义化版本(网址www.semver.org) ,它会告诉你1.1.0和1.0.1版本的区别是什么,如何按照这样的约定进行版本命名。大家以后管理项目版本的时候可以使用这个工具。
  • 打磨细节,优化体验

细节决定成败。往往很多时候,产品的一个细节,一个闪光点就可以秒杀竞品。如果他在这一点上的体验不如你,用户马上就会向你倾斜。

运营推广

假如我们已手握一个好产品,它的结果会是怎样呢?有句话说得好,“酒香也怕巷子深”。现在是卖家市场,越来越多的东西都需要推广出去,才能被用户接触到,否则很多好的产品都会被埋没。

推广曝光:以量取胜

简单来说就是拉新,拉拢新用户。我们要以量取胜,让更多人知道我们的开源项目。无论他是不是我的目标受众,他都会知道,有个产品叫WeFlow,是给前端使用的。这样,产品曝光的目的就达到了。

  • 一份引人入胜的readme
    一开始WeFlow的readme虽然很清晰,但用户不能一眼就看出来我们是怎样的软件。所以,我就做了WeFlow官网(http://weflow.io/ ),用户可以很清晰地知道,下载之后到底是什么东西。用户看到73M的软件时就望而却步了。因此我们必须要解决这个问题。
  • 方便优雅的使用体验

我们把整个软件的界面展示给用户看,把整个功能教程也放到readme里面。用户可以一条一条地去使用,不会有太多门槛。

  • 发表技术文章
    前期我们会在科技媒体,社交网络,热门论坛发表项目相关的技术文章。用和别人撕逼的方式去博得关注度是不可取的,有效的方式是诚恳地向别人介绍我们的项目,开源社区也会很快地接纳,并给出公正的评价。
  • 会议分享,线下沙龙

在线下与开发者交流,跟主办方取得联系,同样可以起到推广的作用。

  • 优化下载渠道
    对于软件来说,下载和分发的速度不太快。所以我们需要用到比较快的CDN,把常见的如Windows32位/64位的版本单独封装好,打包,提供各种下载渠道,尽量让用户点完就可以用。
  • 小技巧:GitHub统计数据

这个功能藏得非常深,需要admin账号登录到项目首页才能看到这些数据。数据呈现的是访问量,还有每一条链接来源于何处。这样你就可以看到,你在多个渠道发布的文章,哪些点击率更高,哪些渠道可获得更多的用户来源,利于后续开源项目的运营指导。

口碑打造:留存核心用户

留存,留住旧用户。经过推广曝光之后,就会有一大批用户涌入进来。一旦用户使用了我们的产品,那他就是我们的目标受众,是产品的核心用户。我们必须想方设法留住他,解决他使用过程中遇到的问题。

  • 详尽的wiki,完善的文档
    我们对项目的每一个功能点都写了一篇详细的文章去介绍它,并配有截图。同时我们还配备英文版,因为开源项目受众于的用户来自全世界。
  • 及时的社区答疑,保持GitHub issue跟进

对用户的反馈,即使不是你所能接受的,但不能表现出“爱理不理”的姿态。我们要把用户在GitHub提出的每条issue记录下来,解决之后进行回复。

  • 保持更新迭代频率
    一个项目需要保持一定的更新频次,因为很多公司或者项目组的选型的时候,他们发现一个项目八个月没有更新了,即便是很好的项目,他们也会觉得很多漏洞没有人修,就会放弃使用。比较好的更新周期应该是三个月以内有一次小的迭代,或者一个bug fix这样的补丁。社区维护开源项目经过推广和运营之后,可以得到一小撮核心用户和帮我们做宣传的“自来水”人群,这样就形成了一个初步的社区。那么,接下来就是社区维护的工作。保持活力
  • 扩大开源范围:设计、交互

开源不仅局限于代码。我们的定式思维是,只有代码才能开源。其实不是的,在前端项目中,我们完全可以把交互甚至产品阶段的草稿都对外开源。这样会有更多不同角色的人参与到你的项目中,为你添砖加瓦。就像WeUI整个设计稿都是开源的,对用户非常友好。平时在做一些交互稿的时候,我都会去参考,很方便,交互也很舒服。

  • 集成CI自动化,使用徽章
    因为我们的项目不是每天都能去管理和维护的,比如团建或者周末的时间。如果集成了CI自动化,再使用一些徽章,例如图中的Mac-build,Windows-build,还有我们的一些依赖,都用徽章的形式放在项目头部。当集成CI自动化之后,有人在社区里提出Pull Request,它会直接影响头部徽章的变动,可以很直观看到自己的贡献发生了作用。这对社区贡献者是很好的激励作用,所以我是非常赞成大家用徽章的方式管理这些开源项目的。
  • 寻求跨界合作&周边产品

当你的项目规模到一定程度的时候,就可以寻求跨界合作和产出周边产品。你可以基于开源项目生成一堆好玩的周边,发给项目的忠实贡献者,例如贴纸、文化衫。大家肯定也会非常的喜欢,感觉自己为开源事业做出了贡献。

注入血液

  • 提供简明的贡献方式
    曾经我做开源项目的时候,只做了简体中文、英文、繁体中文版本,我没精力去做其它语言包。而我给开发者做了语言包贡献的指引,之后便收到社区里日语翻译包,这让我非常欣喜。
  • 国际化,多语言

考虑开源社区的国际化。我们的开源项目首页基本都用英语写,然后提供中文版的readme入口。这样全世界的开发者都能看得懂你的项目。

  • 及时处理Pull Request
    对于改动很大的PR,必须先给代码做review,才能合上去。
  • 收集用户反馈及新需求

我们需要把用户反馈的需求都收集下来,并对需求的紧急程度做优先级排序,再考虑要不要做。

总的来说,要运营好自己的开源项目及整个开源社区,要“怀揣一个热情的心”,并保持一种激情,去迎接每一次改动。一个成功的开源项目,首先它必须是直击用户痛点的,其次也离不开好的运营方式,否则就没机会得到曝光了。这样,我们就能形成友好,有生命力的社区,产生该有的影响力。这就是我认为的,成功开源项目的必经之路。

点击可以直接访问WeFlow开源项目(https://github.com/Tencent/WeFlow)。 如果觉得ZedHuang的分享很不错,还可以关注他的GitHub账号(https://github.com/hzlzh), 向大神学习运营开源项目的技巧吧~

文章来源于腾讯云开发者社区,点击查看原文