Travis CI 的程序员们是如何远程工作的?
Travis CI 是基于开源软件搭建的产品,成员在全球不同的地方办公,因此通过聊天软件、邮件和 ticket 管理系统来交流是十分自然的。
(注:ticket 管理系统:当你(客户)遇到问题时,发起一个 ticket,同时收到一封邮件,其中包含你发起的 ticket。 后台客服看到ticket并做出回复时,你也会收到一份邮件, 并跟随邮件里附带的链接,打开相关 ticket,做进一步的回复。)
两年前,我们开始组建公司,自然而然地开始使用团队沟通工具,当时,我们其中的一个人在阿姆斯特丹(或者在新西兰,这取决于每天不同的时间段),其他人在柏林。嗯,还是原来的套路,我们的第一步是为团队沟通建立一个 Campfire 聊天室(一个基于网页的在线群聊工具)。
随着团队扩张,我们遇到了很多挑战。第一个挑战自然是「如何实现公司的核心价值」,我们很努力地工作,朝着这个目标坚持做下去。
线上的办公闲聊室
现在,我们有一小部分人在德国柏林,他们有时候在家里工作,有时候在办公室,有一个人在波兰,一个在北卡罗来纳州,他还有一部分时间在维也纳。还有另一个人在俄亥俄州,那个家伙有时候也待在新西兰。
我想分享一些我们工作过程中所面临的挑战,包括我们的工具使用情况、成员之间是如何互动协作的。
我们的团队交流围绕着 Campfire 开展。我们有一个共同的聊天室,用来进行办公室闲聊。如果你想要更多的话,还有一些专用的聊天室。一个用来讨论设计相关的任务,一个是给客户现场支持团队用的(The Lounge ),另一个用来支持停电和生产事故(The Panic Room ),还有一个房间讨论运营和管理任务(The Situation Room )。
最重要的是,我们有一个小机器人 Hubot 在里面,准备接收命令。我们使用它来做很多事情,在产品事故的时候更新我们的动态页,用来辅助我们的报警系统,提醒我们去做一些特定的任务,甚至只是用来提醒我们去记得其他特定任务。
但是它也帮助我们提升了团队精神。你会惊讶于一个如此简单的“pug bomb”( Hubot 上用来发送表情图的方式 )甚至用简单的谷歌图片搜索"fresh pots "会让这么多人开怀大笑。
(注: “fresh pots”:美国的一位摇滚音乐家 David Grohl 在2009年的时候拍摄了一段他在喝了大量咖啡之后疯狂演奏的搞笑视频,在视频中一直高喊 “fresh pots!”2010年,Youtube上上传了该段视频的剪辑,视频结尾说到,David Grohl 在拍完这段视频两周后被送进了医院,原因是“咖啡因过量对身体造成了伤害”,该视频被广泛传播和讨论。)
Campfire 是我们虚拟的办公室闲聊室。很多人的大部分时间是在线的,但是成员们可以选择下线并继续做他们的工作。因为这个聊天室会使人分心,当成员们意识到他们需要继续干活的时候他们就会下线。
其实市面上有很多丰富的工具协助远程团队工作, HipChat, Slack,Grove(均为企业聊天工具),还有很老的 IRC(一种通过网络的即时聊天方式), 这里仅举几个例子。
不论你们团队是否有使用 Campfire 来沟通,当你们讨论一个 pull request( Github 是一套代码托管服务,pull request 是指申请代码合并的请求 ),或者发一封邮件讨论某件事,此时的沟通都是不同步的。
这是非常难习惯的,从我自身的经历来讲是这样。
我们在讨论一件东西的特征或者问题的时候通常都是很随意的,因为无论如何,人们不可能每时每刻都能够立刻回复别人、去解决某个问题或者是回应一个 Gif 图。(某些时候他们会通过 Gif 图来沟通)。
我们的工作流大部分是通过 Github 上面的任务系统进行管理的,因为我们本质上是一个开源软件,所以我们选择它作为支持工作的最简单的工具。
我们什么事情都在 Github 上讨论,新特性、赞助广告、新的招聘、行政事务、博客更新、服务中断…。有一个项目专门用来管理所有的事务。在上面保持一个公开的,并且可搜索的记录是一件很容易的事,这样团队里的任何人都可以看到,这些更新也会被推送到每个人的邮箱里。
但是回应一个任务往往都不是及时的。它们有一个额外的缺点就是会给收件箱增加很多干扰。
记住:一个 pull request ,甚至是一个任务线程,最好的解决方式都是一个 Gif 动画。
即使是远程工作,面对面地交流方式依然打败了其他所有的交流方式。
当有些东西需要讨论的时候,我们会组成一个小团队并小范围地讨论。
我们有每星期有一次团队电话会议,是大家聚在一起面对面的时间,尽管因为时区原因不允许每个人都在线。
目前我们使用 Google Hangouts 来进行电话会议,但是不幸的是它是一次糟糕的体验。于是朋友们推荐了各种备选方案给我们,让我们在 Zoom, Blue Jeans, Dozeo 和 FuzeBox 当中选一个。我们尝试了一些备选方案并作了反馈,10个在不同地方的人在一起开视频会议太不容易了,但是面对面时间确实是必不可少的。
在上一年的 FutureStack 会议上,GitHub 的 Streaming Eagles 团队为远程工作者举行了一次鼓舞人心的演讲,声称能够把远程工作者带到距离他们的工作伙伴更近的地方。这是一个很值得一看的视频。
在这当中,我发现了一个很有趣的流行事物。他们在讨论他们办公室的一个线上视频系统,它的目的带给远程工作者及时的反馈。但是团队成员之间不需要交流,也不必一直看着屏幕。
但是这个反馈为你的团队带来了一股很强大的力量,它让你的远程工作伙伴更加亲近。孤独的家庭办公室变成可以看到你的工作伙伴,随时与他们交流的地方,但是你什么事都不用做。
只是看见对方,就能够为团队的快乐带来如此大的影响。
我们最近在尝试使用 Sqwiggle,一个能够呈现出团队中每个人正在做什么的工具,视频上的图片每隔几秒钟就更新一次,所有人都看到你的工作场景,你可以随时和其他4位成员开始视频聊天。
比如:这里有一条来自 Travis CI 团队的动态,他们在认真地工作,然后有人说,嘿!看这里,有个好玩的猫的 Gif 动图~
每次我们在谈论动态 Gif 图的时候,可能是会显得有点傻,可是它们变成了用来提高团队合作精神的高效工具,这简直令人难以置信。我偶尔会有点愧疚轰炸了我们的 Campfire 聊天室,因为这种渲染方式有可能让 CPU 停滞,造成麻烦。但是我们每个人都乐此不疲。
这和使用 emoji 表情(Github 上的每一个工具都会自动内置表情符号)、在 Campfire 里面输入 pug bombs 和简单的 /awwww 命令是相同的道理。
在一个远程工作团队当中,你需要投入更多来让你的团队成员感到快乐。当他们已经几周或者几个月没有见到对方的时候,给他们一个空间去联系彼此,常常为他们带来快乐吧。
像 Hubot, Campfire, Sqwiggle, 和 GitHub 这一类的工具在我们的远程工作生活中扮演着很重要的角色,我们一直在努力改善我们的工具组合,让我们的团队更方便地在一起工作。