写点什么

疫情下的远程办公,聊聊经验和实践

  • 2020-06-20
  • 本文字数:2356 字

    阅读完需:约 8 分钟

疫情下的远程办公,聊聊经验和实践

今年疫情的严重程度似乎超出了所有人的预想,随着国家法定的假日即将结束,大家返回工作地的风险依然存在,即使已经返回了工作地,现在所有人返回公司集中工作都不是明智之选,通过远程办公来降低公司生产力损失看起来很有必要,远程办公会有哪些可能的损失和降低的方法呢?今天我们主要围绕软件研发团队的远程办公的几个问题聊一聊。

目标驱动 VS 熬时间

提到远程办公,大家首先可能想到的就是工作时间不可控,团队成员的产出不可控怎么办?


目标牵引,对于软件行业的脑力工作者,即使在公司工作,员工到底在干什么也是无法知道的,在远程办公的情况下更是如此,我们可以通过更明确、更细粒度的目标牵引来解决。目标建议拆分到每天的粒度,并且要有明确的是否达成,同时通过进展的透明来促进大家达成每日承诺,在目标拆解与进展透明章节会再讲讲这个问题。


目标牵引并不是完全不强调工作时间,沟通在软件开发中已经越来越重要,为了保障沟通的效率,团队成员还是要有一个明确的工作时间,通常可以参考公司正常的上班时间即可,可以和员工强调工作时间需要在线,确保其他成员需要沟通时能够随时进行。

代码云托管 VS 代码内网无法访问

开发人员远程办公需要解决的另一个问题就是环境,如果你的公司必须在内网环境开发,又无法提供远程或者 VPN 能力,那远程办公基本是不可能的了。但大部分公司的开发人员只要有一台电脑,基本都能够进行开发工作了,那剩下要解决的问题可能就是代码在内网自己的服务器上怎么办?


代码云托管,如今提供代码托管的云服务已经越来越多,相应的服务也已经越来越成熟,代码安全也可以有充分的保障,你可以选择将代码从公司服务器迁移到云端的代码托管服务上,团队成员就可以基于云端的代码库进行协作了。


远程写代码,代码质量同样不可放松,并且要更加注重质量保障举措,大部分的代码托管平台提供的代码扫描、代码评审、持续集成等能力建议用起来,可以更好确保远程开发的质量。


可以选择的代码云托管服务很多,以国内较早涉足这块业务的码云 Gitee 提供的企业级代码托管服务为例,完全可以满足团队远程代码协作:



同时,Gitee 企业版也提供了基于提交的代码扫描、评审等服务:


需求拆解 VS 不清晰、不可追踪

软件开发围绕着需求开展,在办公室集中办公时,需求如果有不清楚的地方,站起来去和产品经理当面聊几句就清楚了,但远程办公沟通可能就没有这么方便了,这时候需求文档和需求拆分就显的很重要了。


需求一定要有文档。近几年随着敏捷软件开发的兴起,对敏捷最大的误解就是“敏捷不需要文档”,一份定义清楚需求场景和边界的文档是团队协作的基础,当然文档的形式团队是可以自己协商一致即可。


需求要拆分,并且任务要拆分到天粒度。敏捷强调快速交付与迭代,通常会将需求拆分到较小的粒度快速开发、测试并上线验证。通常会将需求拆分到 Feature、Story 两个级别进行管理(Feature 用于管理完整解决用户某个问题方案,Story 用于可快速在团队内流动和交付用户价值点的管理,Story 通常在 1~3 天工作量规模,关于需求拆分和管理有兴趣可以参见《用户故事地图》书中的介绍),对于远程开发,建议再向下一级进行管理,使用 Feature-Story-Task 三级进行管理,开发人员需要将 Story 拆分到天级别的 Task,并定义清楚每个 Task 的产出,产出要可以验收,不能是 Story 完成百分比这种拆分。


需求要有工具管理跟踪。有些团队日常可能使用 Excel 等简易的工具来进行需求条目的管理,但建议使用一些在线的管理工具,这样更方便远程实时协同、查看,能够让你的管理效率更高


代码云托管服务平台基本都提供了需求管理能力,以码云 Gitee 的企业版为例来看工具支撑的几个要点:


需求要支持层级:Gitee 企业版支持用户自定义“任务”类型,并支持“任务”有子任务,可以支持我们上述提到的需求分层进行管理



提供看板,可以快速进行进展跟踪和管理:Gitee 企业版支持按照状态、负责、类型等形式进行看板查看


状态看板



成员看板



在单个需求之上,还需要有整个团队项目的一些统计数据来看整体情况,例如:需求完成率、团队燃尽图等


每天“例会” VS 计划不明确、进展不透明

远程办公导致团队无法见面,每天一次有仪式感的“例会”很有必要。“例会”在增强团队亲近感的同时,可以用于明确团队成员每天的任务目标,还可以解决团队成员遇到的障碍等


“例会”可以采取敏捷方法中的站会方式召开,关注每位团队成员的三个问题:


我昨天完成了什么?


我今天计划做什么?


我遇到了什么障碍?


站会如何照看的更多经验可以参考一位敏捷教练的经验总结《站会要怎么开》(链接:https://mp.weixin.qq.com/s/JQRv31FHkfo-zv9r-hlWtQ


“例会”可以建议使用视频会议系统召开,skype、zoom、华为 welink(疫情期间免费)都是不错的选择。视频会议系统可以让团队成员看见对方,并且可以共享电脑屏幕对着我们的需求管理工具平台召开。在会议上除了信息同步,要明确所有任务的负责人、完成时间点(整个团队的阶段计划可以另外召开会议来讨论)。


另外,在“例会”上确定的待跟进事项,可以在管理工具平台上建立专门的“类型”进行跟进,确保不要跟丢了。

即时沟通 VS 风险不可控、效率低

远程办公的有效实施依赖于对团队成员的信任,同时信任也需要建立在团队有基本公约的基础上,在开始远程办公时,还需要团队就基本公约达成一致,公约至少要包括:


1)遵从基本工作时间,至少要保证工作时间内联系畅通


2)具备 Owner 意识,承诺的目标要保质、保量达成


3)目标驱动,遇到问题要及时沟通反馈,沟通方式不限于邮件、IM、电话


在远程方式下,及时、主动沟通是最重要的,这一点再多和团队强调都不为过。


在重大疫情面前,每个人的生命和健康是第一位的,在我们无法参与到第一线时,保护好自己,同时通过远程办公,做好自己的工作,确保自己的公司能够存活并持续发展就是我们最应该做的事情。


愿疫情早日结束。


2020-06-20 18:371394

评论

发布
暂无评论
发现更多内容

云渲染是CG的最后一道工序,四个特性让你的渲染更高效

Finovy Cloud

云渲染 云渲染农场

Baklib知识分享|企业知识管理难,该如何解决?

Baklib

Linux常用基础命令(巨全)

A-刘晨阳

Linux 运维 11月月更 基础命令

Go语言入门11—接口

良猿

Go golang 后端 11月月更

JavaScript刷LeetCode拿offer-双指针技巧Medium篇

Geek_07a724

JavaScript LeetCode

Baklib经验分享 | 一些搭建帮助中心的攻略

Baklib

帮助中心

基于 Grafana LGTM 可观测性平台的快速构建

Grafana 爱好者

可观测性 Observability

物联网数据分析(上篇)——业务系统架构类

阿里云AIoT

阿里云 数据分析 物联网 业务架构 数据存储

JavaScript刷LeetCode拿offer-滑动窗口

Geek_07a724

JavaScript LeetCode

透过关键基础设施安全事件谈SBOM

安势信息

Gartner SCA 软件物料清单 SBOM 清源CleanSource SCA

如何写成高性能的代码(三):巧用稀疏矩阵节省内存占用

葡萄城技术团队

前端 稀疏矩阵

BNBDao三三复制公排dapp系统开发

开发微hkkf5566

FFmpeg-ffplay播放器分析(1).md

Changing Lin

音视频 ffmpeg 安卓

以开发之名|线上家装新美学——梦想之家,由你来定

HarmonyOS SDK

AR HMS Core

前端工程师leetcode算法面试必备-二分搜索算法(下)

js2030code

JavaScript LeetCode

TOGAF企业架构框架4-内容框架

Marvin Ma

架构 TOGAF 企业架构框架 内容框架

Nginx配置中root和alias分不清?本文3分钟帮你解惑!

wljslmz

nginx 服务器 root 11月月更 alias

Vue基础知识整理【建议收藏】

何极光

Vue 基础

TOGAF架构框架3-ADM架构开发技术

Marvin Ma

架构 TOGAF ADM架构开发方法

前端工程师leetcode算法面试必备-二分搜索算法(中)

js2030code

JavaScript LeetCode

融云通信云服务,助力医疗招聘平台构建行业护城河

融云 RongCloud

通信 医疗 融云

前端工程师leetcode算法面试必备-二分搜索算法(上)

js2030code

JavaScript LeetCode

云原生生态 我们选择了哪些

Rayzh

Docker Kubernetes, 云原生, eBPF

Java | IO流介绍

陌上

Java 编程 11月月更

真正的高效能RPC框架Focus

dinstone

json RPC 高性能 protobuf 跨语言

云栖大会,一场边缘云计算的「超前瞻」之约

阿里云CloudImagine

云栖大会 边缘云

JavaScript刷LeetCode拿offer-双指针技巧

Geek_07a724

JavaScript LeetCode

如何构建并提高自己的核心竞争力?

老张

核心竞争力

使用Vmware创建Centos7虚拟机(安装和配置网络环境、xshell连接、防火墙、yum仓库、磁盘挂载、重启命令)

A-刘晨阳

Linux 运维 vmware 11月月更

软件测试面试真题 | 讲讲 OSI 七层模型,每层模型具体干嘛的?

测试人

一个非常常见的问题:var、let和const

肥晨

11月月更 js6 js基础

疫情下的远程办公,聊聊经验和实践_文化 & 方法_技术琐话_InfoQ精选文章