官网:www.passjava.cn
你好,我是悟空~
一、我在家远程办公的原因
从去年 2021-01-01 到今年的 2022-03-31,我已经远程办公 485 天了,在此期间,公司大部分同事是去公司上班的。
远程办公的主要原因有两个:上班通勤时间太长(2.5 小时),娃才 2 岁不到需要多陪伴。
二、如何跟踪进度?
2.1 晨会
在家办公后,时间相对来说更自由些。环境也更舒适一些,早上起床后,走几步就到了书房,没有了通勤时间。
早上是有晨会的,时间一般是 9 点- 9点半之间,所以我都是在 9 点之前在书房准备好了的。
晨会内容主要分为以下几个部分:
- 昨天做了什么事情,完成了百分之多少。
- 今天做什么事情,预计今天能完成百分之多少。
- 有哪些依赖项,有哪些地方有风险,有哪些问题需要会后讨论的。
有的项目进度很赶,所以会在下午 5 点沟通今天的进度,看下进度是否正常,如果不正常,会安排加班赶下进度。如果遇到项目要上线,一般都会安排加班赶下进度。
一个很重要的点,远程办公室没人知道你具体在干什么的,你可以学习一天,也可以出去一天,然后晚上回来加班把事情做完。这个也是没问题的,只要把事情干完,不影响团队沟通、质量和进度都是可以接受的。
2.2 我的办公环境
我的办公场所就是书房,好处就是近,不好的地方就是容易被娃打扰,娃在家可能会比较吵,有的时候还会找我玩。
所以我上班的时候,家人会把娃带出去玩。对于下雨天或疫情原因出不去的,我会把门反锁起来,尽量不被打扰。
2.3 我的日报
公司没有要求写日报和提交日报,这个只是我自己的习惯。一个原因是我想记录下每天遇到的问题,另外一个原因是晨会的时候方便述说。
记录日志的工具我用的 OneNote 笔记,可以给大家看下我的日志模板。
2.4 团队项目进度跟踪
晨会和日报是比较零散的进度,对于项目整体的进度则需要其他的跟踪工具。我们项目比较比较大,分为产品团队和实施团队(定制开发团队)。
2.4.1 产品团队项目进度跟踪
产品团队是用 Gitlab 的 Board(看板)来管理的,上面可以根据标签来查看所有 Issue 的进度。如下图所示:
2.4.2 实施团队项目进度跟踪
我们是有很多个定制开发的项目的,所以会有多个实施团队,每个实施团队的一般都会有不同的项目经理和开发经理来负责,更倾向于用腾讯文档的 Excel 表格来管理进度。比如我们项目组是这样的模板。
三、如何高效远程沟通?
按照会议时间长短的维度可以分为短时间和长时间的,按照人数维度可以分为单人和多人会议,按照沟通类型分为语音和视频会议。
3.1 短时间多人会议
晨会一般就是 10~15 分钟左右的时间,所以会选择钉钉或微信这种即时聊天工具。
需要沟通的人数也是 7 个以内,所以微信语音和钉钉完全满足。
3.2 长时间多人会议
对于半个小时以上或者需要演示的,我们会选择腾讯会议。
选择腾讯会议的主要原因是因为它支持多个平台:Windows、Mac、Linux、IOS、Android、微信小程序等版本,即使你没有下载客户端,也可以通过微信小程序入会,所以说随时随地都是可以参加会议的。
另外腾讯会议的共享屏幕功能和录制功能也很完善,当想要共享桌面演示下某个 Excel 时,就很方便了。另外当我们想要记录下重要的会议内容,还可以选择录制视频。更多功能请查看腾讯会议官网。
3.3 一对一会议
对于一对一的沟通,我们会优先选择钉钉,然后是手机。因为钉钉是属于比较正式的办公工具,如果钉钉打不通,就会选择用手机拨打。如果涉及到演示,会选择腾讯会议和钉钉,取决于会议主持人的习惯和电脑上已安装的会议工具。
3.4 视频会议
对于视频会议,我们也试过多种工具,比如腾讯会议、微软的 Teams,对比之后,还是觉得腾讯会议更方便、网络更通畅。
视频会议和面对面会议有个很大的区别是面对面可以通过一个眼神就知道听众是否在认真听,以及是否有问题。
我们是如何来提高会议的高效性的呢?很简单,有问题举手示意,或中途打断(看会议情况)。
视频会议的话,不好从眼神判断,一个是网络视频的清晰度不够,另外一个是电脑屏幕比较小,不好观察。
视频会议相对于语音会议的优势是,如果中途做其他事情或离开座位是会被发现的,所以在视频中的注意力是非常重要的。
3.5 内部沟通工具
对于项目的代码和功能沟通,考虑到安全性,我们也有自己的聊天工具 Chat,经过多次升级改造,比微信的聊天功能更强大了,比如聊天串,可以将一个话题的聊天所有聊天信息串联起来,避免被其他信息干扰。
四、如何进行团队协作?
我们团队是多个地点协同办公的,有的是在 A 城市的公司办公,有的是在 B 城市的公司办公,还有的是在家办公。所以沟通起来并没有像同一个办公室那么沟通顺畅,那么如何高效协作就很重要了。
另外我们有很多定制开发项目是需要和甲方和其他乙方进行沟通协作的,这就涉及到跨公司团队协作的问题。
4.1 内部团队协作
对于项目进度,我们使用腾讯文档来跟踪的,支持多人协作修改。
对于项目需求文档,我们使用石墨文档,带有密码限制访问。
对于 UX 的设计图,都是用蓝湖来统一管理。
对于功能流程图、代码逻辑流程图,我们一般是用 ProcessOn 在线画图工具进行团队协作,该工具支持多人协作修改。
4.2 跨公司的团队协作
对于跨公司的团队协作,我们会拉钉钉群,文档是用钉钉的在线文档进行管理的。
还有的公司对于在线文档不太信任,会把离线文档打成加密压缩包发给其他团队。
4.3 内部值班机制
另外一方面,产品团队和运维团队是有值班机制的。
比如产品团队中前端、后端模块,都会有两个人值班。运维团队工作日是主备两个人,周末是一个人 On-Call。
虽然是 On-Call,但是如果没有提前报备,是会被运维同事 diss 的,所以如果项目上需要运维同事帮忙的,一定要提前说清楚。特别是项目上大型促销活动,一定要提前报备,万一当天系统崩了,运维同事又不在,就悲剧了!大型活动报备我们是在 Gitlab 上创建 Issue 进行跟踪反馈的。
产品团队工作日值班时间是 早上 9 点 ~ 19 点半。运维团队一般和团队产品一样,但是如果在工单上报备了,运维团队也会在家 On-Call。
4.4 外部团队值班机制
类似五一和十一长假,甲方是要求我们有值班机制的,以免线上出问题了,不能及时响应。同时,其他乙方同事也会被要求值班,多团队能快速集中解决问题。
4.5 服务报警机制
当线上有报警发生时,项目负责人会收到报警邮件,同时运维同事也会将报警日志发到 Chat 群里@相关负责人。
另外有的的项目还会通过钉钉机器人报警,不过配置报警规则很重要,我就收到过很多噪音警告。
五、代码、版本如何管理?
5.1 代码管理
公司团队的代码统一是放到内部服务器上的 Gitlab 的,另外我是通过 V** 连接到公司的电脑,然后再通过公司电脑访问 Gitlab 服务器的,这样就更安全了。
img
我们会有多个代码分支,Master 是作为发布到生产环境的分支,Develop 分支作为主开发分支,其他 Issue 都会基于 Develop 分支创建新的分支进行开发。
Develop 开发完成后,会部署到测试环境,测试完成后会将 Develop 分支合并到 Master 分支,Master 的代码会部署到预发布环境和生产环境。
不论是哪套环境,部署都是需要发工单的,另外工单里面是可以自己填写部署命令的,填写好模块名、分支名,执行命令就可以了。
5.2 版本管理
5.2.2 JAR 包版本
产品团队的 JAR 包由产品团队来管理,版本号是通过脚本来设置的
实施团队的 JAR 包由各自项目团队来管理。和下面介绍的 APP 和小程序的版本号类似。
我们的 JAR 包也会上传到 Nexus 私服上进行管理。
5.2.3 APP 和小程序版本
版本示例:1.0.12,第一个数字 1 代表大的迭代版本,第二个数字 0 代表功能需求,第三个数字 12 代表小的版本优化或修复 bug,数字不断往上递增。
统一由开发 Leader 提交和发布,版本由一个人来管控。
5.2.4 Docker 镜像版本
对于 Docker 镜像,我们也有自己的私服,统一由产品团队管理版本、打包和上传。
当我们需要下载或更新镜像的时候,也需要登录账户才行。、
六、远程协同如何保证安全性?
当我们想要访问生产环境的数据库或者添加文件到服务器,这些都是属于权限管理的范畴,我们也有一套严格的管理体系在里面。
6.1 工单系统
比如对于数据库的访问,我们是比较严格的。
测试环境是需要加本机密钥到数据库服务器才能访问的。
生产环境只能登录到工单系统才能访问,在工单中自己填写执行命令进行查询。
而对于增删改操作则需要先发工单,运维同事会收到邮件,然后在 10 分钟内进行处理。会有两个同事 On-Call,一个主、一个备。当有紧急工单需要处理时,可以在内部沟通工具 Chat、钉钉、电话上寻求帮助。
对于数据导出,必须@运维老大,并填写具体的原因才能导出。
6.2 知识库
我们有很多产品资料是放在内部网站上的,这个网站必须通过公司电脑的内网访问,或者连接 VPN 来访问,所以还是比较安全的。
6.3 文档权限
对于重要的离线文档,都会打包成加密压缩包发送。
对于重要的在线文档,会有密码认证,比如飞书和石墨文档。
内部团队文档我们也会放到 Gitlab,需要 VPN 才能连接,且需要密码才能访问。
6.4 JAR 包权限
我们也自己的 Nexus 私服来管理 JAR 包,登录私服的账号就是 Gitlab 的账号。
6.5 Docker 镜像权限
Docker 镜像包是由产品团队管理的,他们会将打好的镜像包上传到私服上。我们下载镜像的时候,需要登录账号才能下载。
七、总结
本文通过多个维度对远程办公存在的一些问题给出了经验分享,总共 21 个经验,不论是远程办公还是公司内部的团队协作都是有帮助的,希望对大家有所启发。
作者简介:
InfoQ 签约作者、蓝桥签约作者、阿里云社区博客专家、51CTO Top红人。 公众号:悟空聊架构,20000 技术爱好者关注。 擅长微服务、分布式、架构设计。 目前在一家上市公司从事基础架构建设工作。
- END -