北京。
2020年1月7日
受新冠疫情影响,很多公司开启了远程办公模式,而且什么时候才能回归办公室模式,是个未知数。
于是,
我们看到远程办公市场骤然热闹起来,各种远程办公工具花枝招展地走上前台
。
早请示、晚汇报、签到打卡、视频监控工作状态等等,不一而足。
你确定没有跑偏吗?
关注工作效果一定得使用这些监视盯梢
手段吗?
高效的远程协作,关键在于成员之间达成工作规则共识、任务流转清晰可追溯、信息及时同步。
起码,对于程序员的远程工作状态评估,有更好的工具和手段。
如何实现管理的平衡,真正发挥开发者的创造力?本文就围绕程序员的远程办公来聊一聊。
oOo
目标驱动 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 计划不明确、进展不透明
远程办公导致团队无法见面,每天一次有仪式感的“例会”很有必要。“例会”在增强团队亲近感的同时,可以用于明确团队成员每天的任务目标,还可以解决团队成员遇到的障碍等。
“例会”可以采取敏捷方法中的站会方式召开,关注每位团队成员的三个问题: