作者|黄
本文授权转载自平CAP (ID: Ping CAP 2015)
编者|
2020春节注定是一个不平凡的春节,全国上下都在抗击新的冠状病毒肺炎。除了像呆在室内、经常洗手和戴口罩这样的日常操作之外,我们不知道在这种大背景下我们还能做些什么。
考虑到春节假期即将结束,返程可能会增加感染的几率。在这场战争中,延长隔离时间和远程办公可能是普通人能为国家做出的最大贡献。
但是,在我国,暂时不管其他行业,至少我们的高科技行业还没有普及远程办公文化,所以我们在此向您介绍PingCAP已经实践了近五年的工程师远程办公经验。
本文将尽可能少地描述这一概念,更多地从实践中了解我们的落地经验,以帮助更多的朋友和公司在这样一个特殊的时刻尽快行动起来,为国家贡献我们微薄的力量。
我们已经通过实践证明,在这个时代,至少对于像软件工程这样主要是脑力和创造性的工作,有足够的方法和基础设施使远程工作像传统模式一样有效,有时甚至产生更好的结果(我相信一些学生已经记住了早上交通拥挤对情绪和思维的副作用)让我们谈谈一些具体的着陆经验
远程办公的管理理念在国外并不新鲜。在硅谷,尤其是新一代的科技公司,几乎都有远程办公的基因。这背后有许多本文没有涉及的原因。如果有兴趣的朋友可以看看大卫·海涅米尔·汉森所著的《37号信号》一书。
对我们来说,PingCAP自公司成立以来就一直在实践这种文化,主要原因如下:一方面,包括我在内的几位联合创始人都是工程师,他们追求效率。自由的工作方式可以提高我们的工作效率。同时,我们讨厌低效的形式主义。另一方面,对于一家初创公司来说,我们不希望人才因为地理限制而无法加入我们。
的一个很好的例子是我们的总建筑师西东堂,他也是我们招聘的第一个员工。他不想因为家庭原因来北京,过去几年一直在珠海的家中远程工作
的另一个非常重要的原因是我们的员工分布在世界各地,基于开源开发模式,所以我们从一开始就注入了远程工作的基因。
软件项目是一项以脑力为主要资源的工作。在当今高度发达的互联网技术的支持下,它自然适合远程工作。但是,为什么我们认为远程工作在大多数时候不如集中式工作高效呢?
除了远距离带来的沟通和合作障碍之外,我们认为最根本的区别其实在于管理哲学,它倾向于传统的管理思维或自驱动的管理思维。在平卡斯,我们在企业文化中一直倡导后者。
为此,我们需要建立强大的愿景驱动力,并在我们的各个细节中加以实施,同时尽可能为同事创造自由、开放和共享的工作氛围。幸运的是,
也非常适合我们在开源领域的工作。例如,在PingCAP中,我们从不打任何形式的卡。每个周五,我们都有一个例行的但不限成员名额的员工TGIF分享。每个同事都有机会站在舞台上分享他的工作成就和经验。即使是我们发给每个人的周边产品,在设计和材料选择方面也是经过反复仔细挑选的,而且供应有限,以使每个小伙伴都感到温暖和受尊重。
所有这些工作似乎与我们的远程办公没有直接关系,但事实上,让我们逐渐成为一个强大的远程组织,脱离形式,高于形式。
目标和计划管理
如果你问一个问题,工程师团队什么时候最需要沟通?我认为是时候制定计划和目标了。
软件工程远程办公我们需要解决的第一件事是,我们需要建立更清晰、更高效的可远程操作的目标和计划管理。
从宏观角度来看,在PingCAP,我们依靠OKR作为公司和团队目标管理的工具。对于硅谷和中国的许多互联网公司来说,OKR是一个越来越受欢迎的目标管理工具。
经过探索,我们认为OKR是一个更适合远程工作团队的目标管理工具,因为与KPI相比,OKR首先更加重视团队成员共同设定团队目标。这样做的好处是,整个团队很容易就目标和关键结果达成共识,并始终保持团队的目标方向一致。第二,
使团队成员能够更多地了解他们正在做的事情对团队和公司的重要性,这对远程团队尤其重要,极大地有助于促进部门和人员之间的合作,并使团队更加一体化。
最后,OKR还有另一个非常重要的特点:透明度。在我们的实践中,每个团队都可以看到其他团队的OKR。在每个人都制定了自己的OKR之后,他们需要在公司层面宣布它们,以确保每个人都能理解它们。
从微观层面来说,例如,具体项目计划的制定和实施跟踪,也需要同样的透明度我们的做法是,项目负责人为每个大型项目创建一个全球项目“地图”。
致力于确保即使中途加入的学生也能清楚地知道情况如何,所需资源的链接在哪里,谁是负责人,以及在看到这张地图后风险点在哪里。这对远程工程团队的经理来说尤其重要。下面是一个例子:
一个项目项目跟踪表
当我们能够清晰、高效、透明地在整个公司内制定、发布和管理我们的目标和计划时,远程办公已经实现了初步的可操作性。如果一个工人想做好工作,他必须首先使用他的工具。因为我们在这里讨论更多的实际操作,我们接下来将集中讨论我们在软件工程远程办公环境中使用的工具。
企业文化,目标管理我们需要一个相对长的工作时期来逐步建立,工具的引入是相对快的效果,也就是说,俗话说,要做好工作,首先必须磨利自己的工具,使用好的工具会使事情事半功倍。TiDB是
PingCAP的主要产品,是一个开源数据库。我们开发的主要工作流程都是建立在Github上的,并且对社区完全开放。
所以我们的工具链也是以Github为中心的,其他工具串联在一起。以下是一个完整的工具列表(其中许多都有国内替代工具。如果公司没有全球分布的PingCAP这样的员工,它可以根据实际需要进行选择):
GitHub:代码托管、开放RFC、社区问题反馈、产品发布、代码审查等。缩放:在线会议松弛:即时消息,机器人消息中心微信,企业微信:即时通讯(是的,我们都用它,但企业微信是主要的)在线文档:文档协作、幻灯片、表格邮件、日历融合:内部文件,包括形成的设计文件(如内部RFC文件)、维基等。吉拉:Bug和里程碑跟踪特雷洛:看板,记录一些重要客户和事件的备忘录詹金斯:持续集成,每日构建在这里,让我们通过一个小例子介绍我们开发的工作流:
1。假设我们需要做一个新的函数。从这个想法开始,我们可以使用的第一个工具是在线文档。负责的同事将起草一份文件,描述其中的总体思路,然后通过共享功能与相关同事共享。大多数情况下,这些设计文档将在邮件组中共享,所有工程师都将在邮件组中,任何人都可以对它们进行评论或编辑。
2。在通过沟通和讨论最终确定文件后(我将在下一节重点讨论沟通链接),它将与融合和GitHub同步(如果可以公开,英文版本将发送给GitHub)
3。然后该项目将被分成几个子项目,通过JIRA分发给特定的人,并在完成后直接提交给GitHub。本项目模块的评审者(包括维护者)将参与代码评审,收集两个LGTM(看起来不错),并在通过各种连续集成工具的测试后将其合并到主干中。
Bug修复过程类似,值得一提的是,我们已经开发了一个bot来同步从GitHub社区到JIRA内部的问题。
优秀工程师的创造力是无穷无尽的,特别是在远程工作环境中,我们强烈鼓励工程师通过自制工具提高工作效率。
除了上面提到的发布机器人之外,我们的混沌测试(最近开源的)、CI/CD,甚至社交网络上简单的动态舆论监控都有自动化工具。
也有小型合作伙伴通过自动化方式优化他们工作中的一些流程。举几个有趣的例子:学生使用应用程序脚本自动生成他们自己的周报。
siddontang编写了一个小工具Github-CLI(https://github.com/siddontang/github-cli)来高效地跟踪Github项目的动态。
我用Python写了一个小脚本,每天都在Trello的指定板上收集卡片的更新,并给我发邮件摘要...
有无数的例子。有时候我真的很钦佩每个人的想象力和实践能力,我们强烈鼓励每个人去做这些事情。
我们的IFTTT机器人收集与TiDB和PingCAP相关的推文
,并自动生成每日动态报告
每周报告
,该报告在每周会议前自动生成,提醒每个人企业微信机器人
SRE准备每周报告,自动合并公关和挑选发布分支
,这是个人每周报告
事实上,我想表达的是:对于远程工作来说,机器能做的事情,不需要人们尽可能多地去做,自动化是最重要的特别是对于在线协作,多一个人的参与意味着多一个沟通成本。我对工程师选择和开发相关效率工具有几点建议:
1。选择具有开放应用编程接口的工具,以促进机器人的写作和形成协同效应。
2。切忌讳太多杂,选择几个容易使用的,彻底使用它
3。消息中心使用即时消息(如Slack)作为各种工具,可以在一个地方一目了然地了解事物的状态。
如上所述,由于我们还有一些海外同事、客户和海外社区的交流需求,我们使用的主要工具在世界上普遍使用。如果您公司的业务在中国,这些工具基本上可以找到国内或私人部署的替代方案,如ONES、Tower、Gitlab等。
远程工作友好通信和协作机制
如果上述工具只是基础,那么远程工作最大的挑战就是通信对于一个成熟的团队来说,良好的沟通是必不可少的,即使沟通的质量决定了做事的质量。这并不是说,由于远程工作的限制,很少交流,甚至没有交流。相反,在这种环境下,我们的交流可能越来越详细,但形式不限于面对面的会议。在谈论我们的沟通实践之前,我想先谈谈沟通的意义。首先,我认为沟通最重要的意义在于信息的平衡。
对于一个远程团队来说,简单地说,就是:每个人都需要知道他们应该做什么,团队正在做什么以及他们应该做什么
这件事在许多公司是通过大大小小的会议,甚至是喊一嗓子来完成的但是在远程团队中,沟通需要变得更加透明。
即使是远程会议,大多数情况下,会议仍然是压缩信息的最有效方式。像Zoom这样的视频会议工具提供了一个很好的平台,智能手机和移动互联网的普及也让参加会议变得更加方便。
顺便说一下,PingCAP是Zoom的大用户(也是企业客户),Zoom的用户体验非常棒。甚至整个公司的会议都是通过Zoom来完成的(我昨天刚刚得知一个令人兴奋的消息,我还为Zoom做了一个友好的广告。目前,国内用户在访问zoom.com.cn时可以免费无限制地使用它,直到疫情得到有效控制)
在PingCAP中来自表单,因为会议基本上会有远程学生参与,所以默认是在线会议
从内容上看,大约有两种会议,一种是例会,一种是具体的业务交流会议我相信它和其他公司没有什么不同。我想谈谈一些我们认为更好的做法:在PingCAP中,
每个团队(包括虚拟团队)都将定期召开会议,通常是每周一次,一些重要和紧急的项目将每天召开,会议的时间和长度不一定相同。周辉是团队成员互相了解每个人在做什么的好机会,经理也可以知道方向是否弯曲,进度是否正常。
另一点,分享一些关于会议的实践:
1。经理最好不要在常规会议之类的会议上直接做出决定,因为这些会议中的偏见信息是均等的。因为很多信息可能只是刚刚收到,决策不一定基于深入思考。另一方面,信息可能不全面,需要进一步的跨团队沟通。
2。充分利用日历我建议R&D团队让日历对其他人可见(财务、业务和高级管理团队需要自行考虑这一点)。与您的相关同事订阅日历也是一个很好的信息平衡渠道。
3。议程在会前发送,会议记录在会后形成,发送给与会者并记录在维基中。
4。尽量少开会。亚马逊的“两个比萨饼原则”也适用于会议(这说起来简单,但做起来困难,尤其是在跨团队协作中,我们也在努力工作)
这里有一些我们亲身经历过的维修站由于远距离关系,在PingCAP中,我们总是要求尽可能多地与文档进行通信。在早期,我们确实非常严格地练习它,但是那时我们严重依赖在线文档。
然后遇到了一个问题:协调功能很好,但是索引功能很弱很多时候,似乎没有文档记录了什么,或者可能有多个文档(许多甚至只是讨论文件)描述了同一件事。
为了解决这个问题,我们后来引入了融合,它被用作团队维基,主要用作信息索引和搜索功能。我们很大程度上依赖于融合,并且玩了很多把戏。在这里,我仅举几个最佳实践的例子:
1。为每个团队创建一个团队页面(类似于前面提到的“地图”的概念),以索引与该团队相关的所有内容,以便新成员可以清楚地看到。例如,以下是TiKV团队的一个例子:
2。团队周刊和个人周刊。每个团队的每周报告将逐层总结,并在每周执行会议前发布所有周报都在《汇合》中编入索引。
3。日志,这是我们更感兴趣的东西,对于一些探索性的工作,比如一些小实验,性能测试,一些特殊场景的优化等等。我们还将详细记录它们以形成实验日志。这些日志可以通过关键词由融合检索。首先,它们可以用作将来实现的材料或者输出到文章中。其次,它们可以防止将来重复工作。在
在内部协作中完全引入融合之后,我们的文档信息的碎片化问题得到了极大的缓解。唯一美中不足的是,Confluence的移动终端做得不好。我希望亚特兰蒂斯队将来能够进步。
另一个陷阱来自即时消息工具的选择这可能也不是一个坑,但更多的是因为微信平台本身不是为办公室场景设计的。
由于我们国内大部分客户倾向于使用微信作为沟通渠道,作为一个toB企业,我们必须适应这一现实(例如,我的手机上有成千上万个微信群)。这个问题导致了我们的即时通讯的碎片化,而远程工作的环境将进一步放大这个问题。
可能是一回事。一些学生看微信,一些学生看Slack,这导致了信息不对称此外,微信是一个封闭的系统,没有开放的应用编程接口,很难通过技术手段与平台同步。
的另一个问题是微信很难将工作和生活分开,有时会让人很苦恼。企业微信的推出在一定程度上缓解了这一问题,但由于企业微信是一个新的即时通讯和封闭系统,信息碎片化问题和海外同事使用习惯的问题依然存在。在这方面,我们仍在探索
远程办公环境中的自我管理
远程办公的另一个重要方面是个人心理建设和自我管理这因人而异。事实上,许多人不适合在家长期工作。例如,当我远程工作时,我必须走出家门,去咖啡店、工作场所或其他地方进入工作状态。然而,我们的总建筑师可以把他的书房当作办公室用五年。
无疑是最重要的部分,但在本文中,我不想展开太多,并有机会详细讨论它。在这篇文章中,我希望尽可能多地关注更通用的方法。
在偏远的环境中,需要员工能够克服孤独感,并且因为身边没有同事,需要强有力的自律精神来克服疲劳
在这方面,我建议使用一些个人时间管理工具,如西红柿钟、日历等。然而,就像公司选择的工具一样,不要贪婪,选择最好的一个彻底使用。
也有助于维持生活中的常规,这在上述Sidongtang博客(https://github . com/Sidongtang/blog/blob/master/2016/my-remote-work . MD)中有很好的说明
的另一个要点是,许多工程师可能内向,容易陷入麻烦,尤其是在偏远的环境中。
在这种情况下,一定要记得主动寻求帮助和沟通,甚至可能需要比面对面环境更频繁的沟通
对于管理者来说,为了实现这一点,任务需要足够仔细地分解。在沟通的早期阶段,有必要反复确认是否与远程工作的学生达成协议。这个环节需要高度重视。
在线和离线
PingCAP并不是一家完全适合所有人的远程办公公司。我们仍然在主要城市(北京、上海、广州、深圳、成都、杭州、硅谷)设有办事处如前一节所述,远程办公看起来很漂亮,但可能并不适合所有人。
人是群居动物,大部分时间我们仍然需要从网上走到网下去吃饭和和同事聊天。
因此,我们的解决方案是:PingCAP使用远程工作方法和文化,但它仍然在任何地方保留办公室,因此我们有一个不成文的惯例,即当每个城市的员工超过4人时,我们可以找到一个办公室。
在各个地方的办公运作中也具有评阅的特点。传统公司的许多当地子公司通常设在专门的办公室,如销售、测试、研发等。
但是由于我们的远程办公文化,我们周围的办公室实际上更像一个虚拟组织,也就是说,同一个团队的返校可能属于不同的办公室,或者相反,每个分支可能有不同职能和不同团队的学生。
好:
1。作为一家toB公司,我们的国内客户主要分布在几个主要城市。在客户当地设立分支机构可以促进客户支持和市场活动。
2。在同一城市的办公室里有来自不同部门的同事有助于建立一种更加多元化和健康的文化,并使跨团队合作更加顺畅。
办公室经理更倾向于管理和组织当地办公室的具体事务和活动。此外,每个办公室都有一个行政部门来处理日常事务。因此,团队建设通常有几种类型:
1。当地办事处有结核病基金,可以组织自己的活动。
2。每当团队去同一个地方,组织团队的结核病(当然,我们大多数人都是程序员,基本上是吃饭)
这里提到了旅游。顺便说一句,我们建议远程研究和开发团队的经理们应该尽最大努力每月与大多数团队成员进行一次面对面的交流。这些旅行通常可以与客户拜访一起安排。在线交流可以让在线交流更加顺畅。
概述< br>
一般来说,远程办公并不完美。像我们这样的科技公司拥有自然文化和监管土壤,但仍有许多领域需要进一步改进。请给我们更多的建议。
很高兴分享在中国远程办公文化还不流行的时候,在如此长的空间里着陆的一点经验。在这个特殊的时期,当我们在家工作并创造价值时,我们对社会做出了一点贡献。