今天是2月5日,春节假期结束后的第三天了。为了能够应对来势汹汹的疫情,众多互联网企业纷纷开启了远程办公模式。不知道各团队前两天的远程办公效果如何,我们 Worktile 管理层在大年初四就开始讨论远程办公的事情,并且将可能出现的问题都尽量提前想到并做了准备。从这两天实际执行的情况看,我所在的研发团队执行的还不错,基本没有受到什么明显的影响。因此我们希望将我们远程办公的一些思考、准备和实践分享给大家,共渡难关。

先简单介绍下,我是 Worktile 基础平台部的负责人,部门包括负责核心组件开发的平台组和负责线上及公司内部服务器管理的运维组。我们的运维团队一直都是一个分布式团队,成员包含北京和杭州,我本人之前也有几年跨国公司的工作经历,对远程工作并不陌生。接下来我想就以下几个方面聊一下我们 Worktile 研发团队是如何实施远程办公的。

明确远程办公的原则

首先,作为研发线的一名主管,我首先给自己明确了一条远程办公的原则——信任,并且首先是自上而下的信任。也就是说,远程办公首先要求管理者,无论是公司CEO还是普通的小组长,都要完全信任自己的团队成员是有责任、有担当,能够自觉的按时按质完成任务,能够主动沟通工作中的问题。只有基于这样的信任,远程办公才可能展开。否则,就会陷入到监视、控制、猜疑这种危险的状况中。所以,信任是远程办公的基础。

其次,任何一级的管理者都要以身作则。我们希望我们的团队成员能够像在办公室一样的工作,那么作为管理者就更要如此。比如我们Worktile明确了远程办公的在线时间,就会要确保我们的Manager在此期间沟通渠道必须是畅通的;我们要求了成员每天的例会,Manager就会要尽量参与这些例会(可能无需发言但是必须要参与);我们要求公司全体在此期间写日报并且明确了可见范围,Manager自己的日报是必须向团队成员开放的。​

小心地制定远程办公的规则

在明确了信任这个大前提下,我们就要非常小心的制定了远程办公的执行细则。之所以说“小心”,是因为我们清楚的认识到规则不是为了监视和约束,是为了最有效率的沟通与合作,为了尽可能减少远程沟通的成本。因此我们尽量将规则制定的少一些,简单一些。下面是Worktile的远程办公的规则:

  1. 明确在线时间:保证团队成员能够即时的沟通。
  2. 明确沟通渠道:Worktile、微信、手机、视频会议。
  3. 每日例会:由于我们研发团队全部使用Scrum方式运转,因此我们将Daily Scrum作为每日例会。
  4. 日报:全员提交(包括CEO、CTO等)、部门内部可见、部门总监评审。
  5. 另外,我们建议远程办公期间,特别是初期,Scrum Master由部门负责人或者组内资深(高Level)的成员担任,而不是一直推行的Scrum Master轮值规则。这主要是考虑到远程初期Scrum Master很可能需要协调更多的公司资源,资深成员由于在公司时间较长,更加容易快速解决问题。

比如,下图就是我昨天(2月4日)提交的工作日报,评审人是CTO,对我们部门的成员可见。

准备工作,现在开始也不算晚

和业务线不同,研发部门需要用到更多的工具、软件、服务和资源。我们在明确了远程办公之后第一时间整理了研发团队日常可能用到的资源,逐一评估准备。如果你的团队现在已经遇到了一些远程办公资源访问的问题,可以依照我们的列表检查并逐一解决。

  1. 发布远程办公的提醒。我们尽量以提醒而不是规则的方式传达远程办公的注意事项,就是基于我本文开篇讲的以信任为最基本原则。比如下图是2月2日开启远程办公前一天我们部门在微信群的信息。

  1. 通知团队成员准备好必要的软件(账号)。譬如通知团队成员下载并更新用于视频会议的Zoom,必要时购买足够的Pro账号;文档协作类的腾讯文档;确认部门内Worktile群组和微信群成员都加入且开启推送。
  2. 保证公司的IT资源能够对外访问。比如开通企业VPN,相关研发服务器开通IP白名单,对一些依赖度高的服务器提前扩容。

Worktile研发团队远程工作具体实践

每个团队的工作方式都不尽相同,因此在远程办公的时候遇到的问题和解决的办法都是不一样的。这里我只是想结合实际的情况来介绍一下我们Worktile研发团队是如何在远程办公的场景下完成工作的。

会议安排

我们之前所有的会议安排都是通过Worktile日程同步的,通过Worktile日程不仅能安排会议时间、参会人以及参会人的反馈信息,还能查看当前团队所有的会议安排。而在远程办公的场景下,我们更加明确了“以Worktile日程安排为准”的原则,即任何的会议都要通过Worktile来组织,避免出现电话、微信等多个日程安排信息不同步的现象。

譬如下图就是我们部门本远程办公的日程安排,包括Sprint Plan、Daily Scrum、架构设计评审、管理层会议等。

下图是我们的Daily Scrum日程详情。和平日唯一的不同是,为了整个部门更好的沟通,在远程办公期间我们将另外一个组的成员也加入进来(这个组目前没有使用敏捷开发),将Daily Scrum扩展成每日工作例会。

视频会议

远程办公主要的一个依赖工具就是视频会议。由于之前的工作原因,这种会议形式并不陌生。对于团队其它没有经历过这种会议的成员,我事先提出了一些特别的要求。

  1. 关闭摄像头。这不仅仅是为了减少不必要的带宽占用,更主要的是希望参会人员将注意力集中到会议本身。远程办公,特别是现在的居家办公,大家的穿着、房间布置等可能都会和以往不同。开通摄像头很容造成注意力的转移。因此我第一个要求就是所有参会人员要关闭摄像头。
  2. 控制麦克风。成员进入会后要保持麦克风关闭,防止会议中各种杂音的干扰。如果需要发言则打开麦克风,发言完毕后关闭。这个规格还有一个好处就是能够尽量避免多人同时说话的情况。因为面对面的会议我们很容易区分说话者是谁,但是远程会议却不容易区分。因此尽量保证会议中只有1-2人发言。
  3. 充分使用共享屏幕的功能。现在几乎所有的视频软件都有共享屏幕的功能,和Worktile这种SaaS类工具联合使用,其效果几乎和面对面的会议没有区别。另外可以灵活使用Remote Control的功能,必要时让其他成员控制当前共享的屏幕,方便讨论。

下图是我们今天上午10点的Daily Scrum会议。我们通过Zoom进行会议,Scrum Master共享自己的屏幕,通过Worktile Agile展示当前迭代的任务板,每个成员轮流打开发言。

而下图是昨天我们团队进行的架构设计和代码评审会。一样是通过Zoom进行的。会议组织者发起并共享屏幕,在会议中一些成员通过Remote Control的功能控制组织者的屏幕,提出设计上的问题和建议。

协作文档

除了通过视频会议软件,我们还是用一些协作文档配合以及一些即时消息工具进行协作。譬如在我们2月份研发部门工作计划会上,就是用腾讯文档和微信群,大家在讨论的过程中一起完成计划表格的内容。

工作任务的协同

我们团队平日工作就是基于Worktile进行协同的,而且因为研发团队都是程序员组成的,因此即使此前在同一个工作区办公,大家也是优先通过Worktile上的在线功能交流。比如使用Worktile的即时消息对一些问题进行简单的讨论,在开发任务下面进行评论等等。

现在切换到远程办公的场景,其实工作的流程和方式变化不大。只不过是由在办公室发信息发评论变成了大家在家发消息发评论。

下图就是今天中午我们进行架构设计评审后,针对一些小问题在Worktile上的讨论。

下图是我们针对一个开发中的用户故事,通过评论进行产品细节的沟通。评论的好处是,沟通的过程和结果都可以在用户故事上保留,方便日后的查阅。

代码提交和代码评审

Worktile的代码一直是托管在Github上的,因此远程办公对于我们写代码、提交代码和做Code Review没有任何影响。唯一的影响可能是个别成员家里的网速不够给力。

而对于公司自己托管代码仓储的情况,比如搭建私有Gitlab仓储,则必须要提前由IT部门准备好外网访问权限,或者开通企业VPN。而如果像我们一样使用SaaS版本的仓储则完全不需要任何准备。

顺便说一句,我感觉这次的远程办公会让很多企业更明显的感觉到采用SaaS工具的重要性。

下图就是我们在Github上进行的Code Review。这样的方式我们之前就在使用,现在在远程办公的场景下也一样适用。

CI/CD

其实CI/CD和远程办公的关系并不是很大,但是如果我们研发部门已经建立好了完整的流水线,那么将会对远程办公帮助很大。我们知道,研发和运维的沟通和协作一直都是一个问题,而流水线的引入就是为了解决这个问题的。此前在一起工作,可能这个沟通的问题还没有那么明显的显现出来,但是现在研发团队、运维团队都是远程办公,如果有了这个稳定的流水线支持,一方面可以节省很多的沟通成本(研发提交代码直接部署),另一方面也自动化的保证了产品的质量(各条流水线集成的各种测试)。

下图就是Worktile自己的流水线执行信息。团队的所有成员都能够看到,并且在试行失败的时候会通过Worktile的消息通知整个团队。

线上的部署和维护

虽然我们有自动化的流水线,但是由于线上环境的特殊性,我们还是会使用手动触发流水线的方式部署线上环境。由于团队特殊性,我们之前就已经通过Worktile 构建了线上部署申请平台和线上数据调查平台。

研发团队在需要部署的时候通过这个平台提出申请,运维人员批准后在对应时间操作。它的好处不仅仅是减少了频繁的沟通,而且让部署操作正规化、合规化,并且可追溯。

下图就是我们的线上部署申请单。

对个人的一点建议

鉴于之前我提到的信任原则和最小化规则的原则,我们对于研发团队几乎没有给出个人工作生活的要求,譬如网上提到的开始工作前要在房门前假装刷卡,着工作装而非居家装等等。因为我们相信我们的同事能够很好的完成自己的工作,无论是在家还是在公司,是否穿着睡衣。

我们唯一的建议是尽量做到工作生活的分离,即工作的时候不要参与家庭活动,但是可以在休息期间、打水的时候简单的和家人互动沟通。

总结

上面列举了我们Worktile研发团队这几天远程办公的内容和一些收获,也包括了我们之前做的一些准备。希望我们提到的内容能够帮助更多的研发团队平滑的实施远程工作。

再次说明,我认为远程办公最核心的是人,需要一个有责任心有自驱力的领导和团队。同时需要基于充分信任的这个大前提,不只是领导对员工的信任,也包括团队成员之间的信任,团队与团队之间的信任。

最后,合理灵活的利用各种工具是帮助我们高效协作的基础。不仅仅是在远程办公的时候,也是在不久的未来我们回到办公室之后。希望每个企业通过这次远程办公的实践机会,提高我们研发团队的执行力、凝聚力和效率。

作者简介:徐子岩,Worktile 首席架构师&研发总监,前微软高级项目经理、微软MVP,《实战Windows Azure》一书作者,十五年软件开发经历,包括企业级软件的架构设计、开发和测试。熟悉服务 端开发技术 C#、Node.js 以及相关的框架(ASP.NET、Express、Web Socket 等)和数据库(SQL Server、MongoDB),缓存和消息队列(Redis、 RabbitMQ)

Worktie官网:https://worktile.com

作者:Worktile 首席架构师 徐子岩

文章首发于「Worktile官方博客」,转载请注明来源。

关于远程办公,微软MVP 15年研发团队的经验分享的更多相关文章

  1. 如何系统学习知识图谱-15年+IT老兵的经验分享

    一.前言 就IT而言,胖子哥算是老兵,可以去猝死的年纪,按照IT江湖猿龄的规矩,也算是到了耳顺之年:而就人工智能而言,胖子哥还是新人,很老的新人,深度学习.语音识别.人脸识别,知识图谱,逐个的学习了一 ...

  2. 【内推】2020微软苏州Office365众多核心团队热招150+研发精英!欢迎推荐

    2020微软苏州Office365众多核心团队热招150+研发精英!欢迎推荐 大家好,目前微软Office365核心团队在美丽宜居的苏州有150多的社招职位虚位以待,欢迎大家自荐,推荐,转发!除以下列 ...

  3. 我大中华微软MVP中国区人才库

    刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的Asp.net从业经验,微软MSDN特约讲师.Teched讲师.ImagineCup大赛评委.人大出版社研修班特约讲师,曾多次受邀访问美 ...

  4. 2015微软MVP全球峰会见闻

    2015.10.31-2015.11.8 一周的时间完成微软MVP全球峰会旅程,这一周在不断的倒时差,行程安排非常的紧张,还好和大家请假了没有更新微信公众号,今天开始继续更新微信公众号,开始新的旅程, ...

  5. TFS 2017 培训 - 北京某银行科技部Java研发团队

    今天受邀和微软公司的朋友一起,为北京某银行科技部的两个Java研发团队做了一场TFS系统的技术培训. 按照需求分析>开发>编译>发布>测试的流程为研发团队做了全流程的介绍. 这 ...

  6. 我大中华微软MVP中国区人才库(转)

    出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师 ...

  7. 微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...

  8. 10年微软MVP路(如何成为一个MVP?)

    搞微软技术的,大家或多或少都有听说过微软的"最有价值专家"(MVP), 从2006年到2015年连续10年ASP.NET/IIS MVP.当年很多一起搞微软技术的朋友都转搞其他非微 ...

  9. 【转】微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...

随机推荐

  1. js中时间戳转换成xxxx-xx-xx xx:xx:xx类型日期格式的做法

    1.十三位数字的时间戳转换方法 var time = new Date(datetime).toLocaleString().replace(/年|月/g, "-").replac ...

  2. ssh保持连接不断开

    使用ssh连接服务器,长时间不使用,会自动断开,控制台会卡死无法使用,现提供以下两个方案解决这个问题: [服务器主动保持连接] 修改服务器配置文件: vim /etc/ssh/sshd_config ...

  3. 如何在Pypi发布上传你自己的Python库

    Pypi上传包 准备 Windows环境 *以下教程只能在Windows上执行,MACOS系统不能使用 注册账号 你需要在Pypi上注册一个账号. 安装必要的库 setuptools 原则上安装了pi ...

  4. 扫描器是如何判定有xss漏洞的

    这个问题,看似简单,实则触及到很多人的知识盲区 我们都知道,弹窗就能判定这个页面存在xss, 那么扫描器是怎么判断的呢,或者说扫描器是怎么判断是否弹窗的呢 测试发现 当响应的头中content-typ ...

  5. schedule of 2016-09-12~2016-09-18(Monday~Sunday)——1st semester of 2nd Grade

    2016/9/12 Monday 1.send present to Teacher Wei&hu 2.make ppt for 1st database 2.0 meeting for al ...

  6. Vim区块选择

    区块选择的按键意义: 区块选择的按键意义 v 字符选择,光标经过的地方反白 V 列选择,光标经过的列反白 [ctrl]+v 区块选择,可以用长方形的方式选择资料 d 将发白的地方删除掉 y 将反白的地 ...

  7. 【原】C#两个类互相包含类对象可以吗?

    在阅读大牛代码的时候发现了这个问题,之所以标题以问号开头,是因为我还没搞懂这个问题.权当记录,以希望以后搞懂. 部分图片转贴吧:http://tieba.baidu.com/p/6015910029 ...

  8. opensuse安装Tomcat碰到的问题

    已经安装好JDE,并配置好环境变量 从官网下载Tomcat tar包,解压到用户目录,进入运行bin下的start.sh,显示运行成功,但是浏览器中输入localhost:8080连接不上 检查一番发 ...

  9. 基于 HTML5 WebGL 构建 3D 智能数字化城市全景

    前言 自 2011 年我国城镇化率首次突破 50% 以来,<新型城镇化发展规划>将智慧城市列为我国城市发展的三大目标之一,并提出到 2020 年,建成一批特色鲜明的智慧城市.截至现今,全国 ...

  10. Docker学习(一)环境准备安装centos7

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...