快捷搜索:

13 个人的工程团队将 Quip 应用到 8 个平台上,怎么做到的?

创见干货:
如果你的团队规模很小,如何能够开发出影响百万人生活的产品来呢? Quip 给我们所有人做了一次非常漂亮的演示。这是 13 个人通过「杠杆」撬动地球的故事。这个「杠杆」是什么?答案就在本文中。

当 Edmond Lau 加入到 Quora 的时候团队一共 12 个人,当他加入到 Quip 的时候团队只有 13 人。这两家初创公司的相同之处就是精小的团队背后都藏着雄心壮志。Quora 想要分享世界的一切知识,并提升其知识总量;打造一个只有互联网能够承载的知识宝库;而在 Quip,团队希望能够打造出新一代的生产力工具,每一家公司的每一位员工都乐于在每一天使用。

当你有了一支规模很小的团队,并且也拥有非常远大的志向的时候,唯一能让梦想照进现实的途径便是:去做那些能够造成极大影响力的事情,那种投入了时间之后,能带来丰厚回报的事。

如今在 Quip,丰厚的回报已经通过时间得到兑现。Quip 的客户名单越来越长,上面的公司有 Facebook、Pinterest、Stripe、Instacart、Product Hunt、New Relic 以及更多家喻户晓的名字。

Quip 这款产品分布在 8 个不同的平台上,它们分别是网页、Mac、Windows、iPhone、iPad、Android 平板电脑、Apple Watch。而这样的成绩背后只有团队 13 名工程师而已(其中包括两名联合创始人)。Quip 前面的路还有很长,但截至目前,还是可以跟大家分享出来工作中秉持的一些原则的:

1. 代码复用

无论何时你在开发软件,优秀的抽象编程都是无比重要的。对于 Quip 这样一支小团队来说,能够将产品快速应用在多个平台之上,那么抽象编程就更加重要了。如果是从无到有地在每个平台上进行开发,那么项目的进展速度远没有现在这么快。在一开始团队就倾注了很多心血和时间,保证代码能够复用很多次。

举个例子,团队专门开了 Protocol Buffers,它能广泛应用在数据存储、内存数据结构、跨平台通讯等各个方面。它让我们可以直接从 MySQL 中读取 Protocol Buffers,可以在 Python 网页服务器上修改数据、然后将它们返还到原生客户端中,这些客户端构建的代码基础有可能是 C++,Obejectiv C,Java 又或者 CC#。更重要的是,所有工作都是通过自生成的数据系列化代码、强类型化数据结构以及超强类型化通讯渠道来完成的。如果团队专门使用针对某一种语言的数据结果,甚至是 JSON 的话,那么接下来的工作将会变得繁复不堪,也更容易发生错误。

「代码复用」的精神也出现在其他地方。团队在桌面版、移动端上为了同步数据,支持离线使用,共享了 C++ 库。各种数字设备上的文本编辑器都是运行在相同的 JavaScript 库中的,然后再针对各自平台进行一些优化,使得用户体验变得更加流畅完美。Quip 的网页版、Mac 以及 @Windows 桌面应用都是共享了 React UI 代码,这让它们看起来在每一个平台上都接近于原生应用。

这些技术并不能解决所有问题,但是它们确实大大减轻了工作量和工作复杂性。

2. 利用公司内部的人际网络进行引荐招聘

Quip 团队中的个个都是精英。在工程师团队,绝大多数人都至少有 6 年的从业经验,超过一半的人拥有超过 10 年的从业经验。

这样深厚的资历背景给 Quip 带来初创公司梦寐以求的优势:他们有能力独立去完成一些极具挑战性的任务,相互还彼此信任。每一个员工也能够向科技圈伸出四通八达的触角,通过内部员工的引荐背书来增加新成员。新人培训上花的时间非常少,团队融合速度特别快。在开发 A/B 测试框架,打造监控系统等方面的工作进展的尤其快速。

3. 在工具化上投入大量时间精力

工具能随着时间的递进不断给予你回报

在 Quip,团队成员开发了好多工具,让项目进展不断加速。比如能够收集错误、堆栈跟踪的表盘; 比如能够去除 Bug,检查目前应用状态的工具;比如能够自动化执行各种复杂繁琐任务的脚本。团队用图表来展示数据,不管是性能上的数据,还是客户留存率,通过视觉化,团队成员能够很清楚目前的进展。团队成员为了客户支持,给商业团队开发了一系列的内部工具,他们凭借这些工具能够很快速地处理客户的任何问题。

专注于工具化同样也降低了营运开销。持续不断地内部整合让产品能够保持健康状态,按键式部署脚本能把每次发布简单化。Quip 的系统警报也不会经常响起,Edmond 在过去一年里只在半夜中被叫起来 2 到 3 次。所有在工具化上面的投入使得团队能够不断开发出新的产品,而不是将时间花在维护旧的产品上。

4. 有的放矢

您可能还会对下面的文章感兴趣: