社会进步的一个很重要因素是出现了专业,做一个项目时,让擅长某个领域的人去做对应的部分,通过结合团队成果来完成目的。但团队协作也有存在一些困扰,团队的配合度、沟通成本等都会造成效率低下的问题。
那么,在 web 项目开发中,如何提高团队协作效率呢?
需要大量的约定
约定绝对是提高团队协作最有用的方式之一。大家先约定好一些规则,然后接下来各自干各自的,并且遵循着这个约定,这样便大大提高了效率。 一个项目可以约定的东西有很多,比如约定一种 分支策略,约定一种代码风格(通过 eslint 插件来执行),约定接口文档等等。
用上协作平台
国内优秀的平台有如阿里云效平台和 teambition 等。 刚开始用协作平台的时候,很多人都会觉得没必要,录单这些动作很浪费时间。但当他们用了一段时间后,开始熟练后,他们会觉得协作平台是个很好的东西,可以减少很多口口相传的沟通成本,同时规范化项目流程,降低项目发生问题的几率。
强大的看板功能
以阿里云效这样一个协作平台为例,其看板功能非常强大,常常被用来体现一个项目的流程和当前的运作情况。那么怎么使用看板呢?建议可以遵循下面这个流程:
- 开发经理:新建任务单 A=>在这个单下面新建子任务单 a1,a2,一般有前端和后端两种=>把任务单通过拖拽的方式拖到“开发中”一列=>把任务单发给前端、后端负责人=>前端、后端负责人再分发给对应的开发人员
- 开发人员:拿到子任务单 a=>把单子 a 的状态从“待处理”改为“处理中”=>开发完成后把子任务单 a 从“开发中”拖拽到“待联调”=>前端后一起联调完成=>把各自的单子的状态改为“已完成”=>发布代码到测试环境并验证下=>前后端任何一方把子任务单的父任务 A 单拖拽到待测试
- 测试同学:上去测试环境测试=>把任务单 A 拖拽到“测试中一列”=>开始测试=>测试过程发现bug,新建 bug 单=>派给开发同学=>开发同学修复 bug,更新到测试环境后,把 bug 单状态改为 fixed=>测试同学再上去验证,没问题=>把任务单 A 拖拽到“测试完成”
前面说到,“约定”是个好东西。那么项目中可以约定按照上述流程来执行,这样项目经理或者其他人只需要浏览看板,就知道当前的项目进度。
上述流程中还需注意这几点:
- 开发同学必须把代码更新到测试环境后,才可以把 bug 单的状态改为 fixed。这样可以免去测试同学一遍又一遍的问”bug修好了吗,更新到测试环境了吗“这类问题。
- 测试同学可以把产生的 bug 分成前端和后端的,然后统一派给前后端负责人。如果分不清 bug 是前端还是后端的,可以都派给前端,因为前端定位 bug 会比谁都快。
测试同学需要掌握几个技能包
只会在视图层测试的测试同学是不合格的,他需要掌握以下几项技能:
- 控制台技能包:要学会看浏览器控制台,这点很重要。一是可以让你有一些定位错误的能力,比如是前端的bug还是后端的,或者是某个模块出了问题,然后直接在你这个环节准确地把bug发放给对应的人。报错时,把控制台报错和http报文,通过截图的方式贴在bug单里面,也可以方便开发同学快速定位问题。
- 基本的 sql 语法技能包:如增删改查等,可以自己造数据来快速覆盖各种测试场景。
- 安装一款 gif 录屏器(如 LICEcap)吧。有时重现步骤较多的 bug,如果附上一张重现 bug 的 gif,会更加容易让人理解你的意思。
确保彼此有点了解
沟通成本是团队协作中经常存在的一个难题,这点在远程协作中更加明显。在你们开始远程协作前,你们最好有过在一起工作的经历,不用做到知根知底,只需要大概了解彼此的大概性格、处事风格、工作习惯等等即可。
有时,文字>口头
当需要沟通时,有一些人喜欢当面说。有些情况,文字表达比当面口头交流要好很多。理由如下:
- 文字表达更能让表达方沉淀自己的观点,对比口头,表达方会有更深度的思考与规划。
- 文字表达可以轻易的被转发。
- 文字表达所用的时间更短。