这篇文章是微软 web 开发系列的一部分。感谢支持我们的伙伴们,是你们让它成为了可能。 今天我想要从我的帖子中改变一些事情:不是去代替技术布道的话题,而是希望分享如何运行一个开源项目。 两年多来,我的朋友 David Rousset 和我领导了Babylon.js项目。我们开始这个项目是在听说IE11将支持 WebGL(Microsoft Edge会支持更多)之后,我们想让人们更容易地构建 3d 场景和游戏。之后的两年,我几乎花费了我所有的业余时间去构建 Babylon.js,让我成为一个简单而强大的 Web 3d 引擎开发人员。 奇妙之旅的开始在最初的 2 个月里,它如同梦一般:你开发着,并赋予你所有的想法以生命。它是纯粹的幸福。 这一阶段我称为预赛。就像在恋爱中一样,这是最好的时期,在把它带入可能出现困难的严重境地之前。
在某个时间点,你已准备妥当,或者你自认如此。 我和戴维很快就遇到了第一个挑战:编码这个产品是不够的,你还需要在沟通上下功夫。我们编写并商定了希望发布的关于 Babylon.js 的文章,想要发表的论坛,为了展示它而希望参与的事情,等等。 来自网络开发社区的反馈是强烈的。其中一个原因是,我们与一个天才的设计师(Michel Rousseau)共事。他不止帮助我们发布了一个框架,还开发了巨量的三维场景来展示人们可以用我们的工具实现些什么。
小狗综合征
当你是世界上最快乐的开发者的时候,有一件奇怪的事必然会发生。它开始很是微妙,但很快就会变得更加繁琐。用户反馈将成为压倒一切的要求:
这是小狗综合症!这是你可爱的、每天用爱和奉献亲抚的小狗,变异成你几乎无法控制的怪物。
这个阶段会花很长时间,你需要沟通良好,在用户群中寻求盟友。由这些盟友,你可以形成一个社区,带你进入下一阶段。 社区的发展你可以拥有全宇宙最好的产品,然而如果没有用户,你就一无所有。这就是为什么我逼着自己遵循以下 12 条法则: 1.准备好不要在开发你的产品上花大量时间。 2.准备好在产品宣传上花费大量时间。 3.从不遗留未解决或未回应的问题超过一个工作日。 4.从不遗留在论坛上未回应的问题超过一个工作日。 5.每天登陆论坛,展示给用户论坛的活跃状态(是的,在一开始这是一件累人的工作,但这很重要——没人在空白墙上写字)。 6.推特你在做什么。 7.有一个公开的路线图。 8.询问用户关于路线图的反馈。 9.拥有一个用户之声(http://babylonjs.uservoice.com/)。 10.友好待人,不要傲慢。你需要他们远比他们需要你。 11.寄希望于一个像样的文档编制系统:我知道你们讨厌写文档,但是这是你工程强制性的一部分,我们花了很多时间在http://doc.babylonjs.com/上,把它变得更漂亮,易用,以社区为导向(文档编制本身是一项社区可参与的 Github 工程) 12.准备一个简单的边干边学的方法,对我们来说这真的是重要的一点。我们创建了http://www.babylonjs-playground.com/ 使 web 开发者不用安装任何东西就可以可以测试babylon.js。减少所有的阻力很重要。我们都很懒而你如果能够移除全部障碍,那么你将使更多人尝试你的框架。正如 jsfiddle,也是一个与他人分享代码的方法甚至更简单地提供 bug 报告。我们尝试通过增加一款出色的工具智能感知(intellisense)切实的使编译时更加方便。
这是所有关于关注用户的需求和问题。用户需要能够信任你的产品,并有维护良好的沟通渠道,赋予他们对你的产品的信心。你处理请求越快,你的用户就越有信心。这是如何建立你的框架的声誉的主要构件。只要你关心你的用户,你可以用比其他工具更少的功能开始。 社区的形成 |