一、背景
任务总和应该能反馈为完成某个目标需要做的所有工作总量。WBS中也讲了很多分解的原则、标准和方法,但是在实际工作中,做任务拆分时候往往只看到了关键任务而忽略了其他细节,或者任务粒度过大,导致任务长时间处于执行中状态,不能真正反馈真实的项目进度,同时任务粒度较大也会造成预估时间偏差过大。
基于以上几个问题,在做任务拆分时一定要注意两点,第一,内容要全;第二,粒度要细。结合项目的实际情况,对开发任务的拆分总结了一些方法,供大家在实操中参考。
二、方法
-
一个任务,或者一组任务在进行拆分的时候,可以按照“事前-事中-事后”三个维度去考虑,事前和事后往往是容易被忽略的地方,任务开始前是否要需要协调资源,任务结束后是否要考虑如何上线,上线前是否还有配置、数据需要预先处理;有上下游业务依赖的还要考虑上下游联调对接等情况;
-
单个任务时间粒度不要超过2天,复杂的任务可以超过1天,简单的任务(CURD之类的任务)不要超过1天,如果超过了需要对任务进一步切分;
-
单个任务在时间上应该是连贯的,中间不能有时间空档,如果有则按时间空档进行拆分;
-
编写任务时,一定要思考是否有忽略的细节,这些细节往往影响项目整体进度;
-
数据建模,在工作量不超过1天的情况下可作为独立的任务,如果超过了,则可以分散到各特性中,甚至故事中,分步骤进行设计;
-
后端开发,“代码编写+内测” 为一个开发任务的主要内容,在系统管理中添加接口权限配置,完成内测(ApiFox中测试)可标记为任务完成;
-
前端开发,“静态页面编写” 可以作为一个独立的开发任务,可以根据原型设计或者业务理解先行开发;
-
前后端对接作为一个独立的开发任务,以前端为主,后端配合,在系统管理中添加按钮配置,对接后前端内测完毕可标记为任务完成;
-
交叉测试作为一个独立的任务,前端内测完成后交由后端进行交叉测试,测试通过则任务完成,完成后可正式发起提测;
-
不要一个人有多个同时进行中的任务,如果有说明有横向的任务没有剥离开,例如多个任务都在等待同一个或者同类事情,这种情况下要对任务进行横向切分;
-
项目管理工具中的任务状态要及时更新,最好是能反馈实时进度情况,为了防止遗漏,保证每天下班前都更新一遍。
三、事例
3.1不合理的拆分
粒度偏大,前后端对接、联调会穿插在各任务中,同一个任务执行过程的时间不连贯,有时间空档。
3.2较合理的拆分
任务较独立,粒度细,可以单独连贯完成。
四、总结
正常的一个开发任务包含:数据建模,后端接口开发,前端页面开发,前后端对接,交叉测试几种任务,在项目管理工具中建任务时按照这个思路对任务进行拆分,除此之外,还要向前和向后多思考是否有遗漏的细节。