我厂 OpenResty Inc. 是一家创业公司,也是一家全员远程的公司。我厂支持团队成员在全世界范围内,任意选择时间和地点进行工做。html
像咱们这样的公司并很少。不过就眼下这个情景,可能不少公司、不少同窗,都要或主动或被动,或长或短地选择远程工做。那么做为一名在远程公司中将近两年半的程序员,我想跟你们分享一些远程工做的体会。程序员
分享的内容会集中在我认为你们可能会忽视的点,一些显而易见的点,好比找到靠谱的人作靠谱的事、打字说不清楚就赶忙视频音频、决议要落实到邮件,这种放之天下皆准则的道理,就再也不赘述。segmentfault
首先咱们要给远程工做划定一个范围。本文中的“远程工做”,有几个标准:安全
至于接私单、作外包、搞咨询,我经验很少,就不在讨论范围以内了。服务器
在这样的公司里远程工做,其实跟在普通公司上下班打卡,并无很大的差异:markdown
差别更多的表如今工做形式上,好比上下班时间、工做地点等。远程工做者有更大的选择余地。为了可以真正作到这一点,远程工做多半会采用结果考核,即只要求你们准时提交工做结果,而不强调让你们保证工做时间。工具
固然也存在更严格的形式,好比说要求你们工做期间必须打开摄像头,必须随时响应其余人的呼叫,等等。那些也不在今天的讨论范围以内。单元测试
划定范围以后,讨论就容易多了。接下来咱们先看一看远程工做和传统的“坐班工做”之间,有什么区别。测试
很显然,即便你未曾参与过远程工做,也应该能看出来,差别主要有两点:ui
接下来先说沟通。
咱们能够简单地把沟通分为有价值沟通和冗余沟通。顾名思义,有价值沟通就是平常工做当中用来解决工做需求的沟通。好比需求评审、安排工做、bug 反馈等;而冗余沟通则是跟工做无关的沟通,好比吃中饭时聊聊足球、明星八卦,议而不决的各类会,等等。通常来讲,你们都很重视有价值沟通,但经常忽视冗余沟通。
其实两种沟通模式在工做当中都很是必要。
有价值沟通能够帮助咱们解决工做当中遇到的问题,它是咱们比较关注的一方面。不少同窗向往远程工做,正是以为坐班工做中,被开会、扯淡等无效沟通侵占了太多时间,设想若是能够只保留有价值沟通,那么工做效率必定会更高,工做也会更开心。
因此,参与远程工做以后,虽然处于不一样的时间、不一样的地点,保证有价值沟通也并不困难。(反过来讲,若是连有价值沟通都保证不了,那么这个团队就不该该远程。)
通常来讲,能够这样提高沟通效率:
总结一下:基本上只要有必定的工做经验,想把事情作好的团队,要达成这几点应该不难。
不少时候,咱们看不上冗余沟通,以为那都是在浪费时间。厕所随便聊个八卦,上下班路上扯扯球赛,有什么价值么?
在从事远程工做以前,我也以为这些沟通可有可无。可是远程一年半以后,当我由于缺乏冗余沟通难以理解同事老板、长时间倍感煎熬以后,才发现,原来冗余沟通,对于咱们告终彼此、塑造彼此之间的关系很是重要。
没有冗余沟通,对于某位同事、领导,咱们就不知道:
因而,当某位同事敲出简短的语句,看起来仅仅在描述业务状态时,你不知道他有没有带着情绪;当他说出好中差的评价时,你不知道按照他的语言体系,到底是好仍是坏,有多好,或者有多坏。
团队考评也会受此影响:有些人标准比较宽松,总以为本身干得挺好(好比我);有些人要求严格,对本身评价比较苛刻。因而,就要求不管是团队仍是领导者,都要理解他人,才能给出公正的评价。
因此,若是长期缺少冗余沟通,同事之间就很容易出现裂痕,而且随着共事日久,裂痕也会日益加深。
解决方案很简单:增长冗余沟通。坐班的公司里你们能够一块儿吃饭,一块儿上下班。那么对于咱们远程公司,同城的同事能够按期找个咖啡厅或者共享空间一块儿办工,一周一次或者两周一次都是不错的频率;若是团队成员天各一方,实在距离太远,那么至少一个季度也要聚一次,哪怕人聚不齐,对于能到场的人来讲,也是很是重要的交流机会。
若是不方便线下聚会,也能够在 IM 里开辟专门的聊天频道,而且鼓励你们聊闲天。相信我,你们有的是闲聊扯淡群,不会真的在公司闲聊群里聊得一发不可收拾。
总结一下:有价值沟通很重要,可是通常来讲容易获得保证。忽视冗余沟通,长期来看,会大大提高团队的沟通成本。只有维持适当的冗余沟通,才能保证团队沟通效率,
下面来讲监管。
对于远程工做来讲,监管也是一个难题。由于不在一块儿,你根本不知道其余人在干吗。若是是计件工做,那么彻底结果考核就好;可是程序员是一项脑力工做,须要创造力和想象力,代码质量也不容易考察。
那么应该怎么办呢?个人建议以下。
首先,所谓“用人不疑,疑人不用”,对于远程团队,成员自己的敬业态度很是重要。套用 NBA 经理的话说:我能够教 ta 写代码,但我没法教 ta 好好工做。因此,必须先选择合适的人。若是团队成员依赖强硬的管理,那么就必须放弃前面预约的“结果考核、弹性时间”,转而要求你们必须在正常工做时间工做,准时签到,全员工做时间都要开启摄像头,等等。以坐班模式来执行远程工做。
接下来,要作到明确需求、明确验收标准,减小没必要要的沟通需求。
之前在坐班的公司,你们对交付物的验收并不严格,毕竟都坐在一块儿,哪里不明白喊一嗓子,5 分钟就说清楚了。可是在远程工做时,由于每一个人的工做时间、工做地点都不同,甲发出一个问题,乙可能两三个小时以后才会看到并回复,那就太耽误时间了。
因此必须严格制定交付物的标准,而且严格执行。以我熟悉的技术开发为例,应该知足:
团队管理者要理解这一点,并坚定执行,还要给你们留出足够的空间去完成这些事情。一要相信流程,二要相信工具,减小人工管理。
最后,远程团队里的每一个人最好都有很强的主人翁意识,可以主动发现问题、解决问题,主动理解流程、维护流程。我曾经写过一篇文章:远程工做须要的特质:愿意负责,也是这个意思。受限于沟通不顺畅、监管不能,若是不能每一个人都发挥本身的主人翁意识,干等着别人来推进,那么团队的工做效率确定高不起来。
总结一下:制定好制度,选择好工具,减小主动管理,你们一块儿遵照规则,主动推动工做,才是远程管理的要点。
基本上,可以维持冗余沟通,让团队互相理解互相支持;而后制定好流程和规范;不要犯蠢。大家的远程工做基本上不会碰见大问题。
工具在远程工做中扮演的角色很重要,但想要作好并不困难。大部分流行的协同工具作得都不错,你只须要按照本身团队的规模、使用习惯、特性需求、付费能力,选择某个或某几个工具就好。
因此接下来也不算推荐,而只是列举咱们在用而且以为不错的工具。
咱们的代码都托管在 GitHub 上,而且顺便拿它的 issues 作需求管理。文档管理通常都直接用 markdown 写在项目里,不多用 wiki 等组件。
GitHub 的 code review 功能很是好用,是保障代码质量的利器。
咱们用 Travis 和自建的 CI 系统跑测试。
Slack 真的很棒,能够集成各类第三方应用,搜索功能也很好用。
我最喜欢的是收藏功能:咱们是全球化的远程公司,有些同事(包括老板)跟咱们不在一个时区(准确的说差 15 个时区),因此常常面临早上一开电脑各类群里 100+ 聊天记录的状况。使用收藏功能,能够在浏览聊天记录的同时方便的把需求标记下来,比起拿个小本抄写方便许多。还能够快速的跳到最新的内容,或者跳回去。目前还没发现别的 IM 有这个功能。
其实咱们用 Gsuite。这个应该也不用多作介绍,不过国内对 email 的依赖程度不高,基本上能用就行。
早先咱们用 Skype,后来以为效果不太理想,就切换到 Zoom 上。暂时没有特别的亮点,可是效果和稳定性都不错。
咱们使用了各类云服务器,自己并无内外网之别。从安全角度来讲,全体提升安全意识,比内外网隔离更有保障(固然后者能够更好的防蠢)。
远程工做对人的要求很高,并非全部人都适合远程工做。另外我并不以为远程就比坐班好,就值得追求。可是若是你和你的团队选择了远程工做,我但愿上面分享的几个点有用。祝你们 2020 一切顺利。
本文参与了 SegmentFault 思否征文「远程办公」,欢迎正在阅读的你也加入。