之前一次例会,讨论到了排期,究竟怎样看待排期,如何能排得准,总结了一些内容。
如何看待排期
每个项目,都要有明确的deadline,越大的项目对deadline要求越明确,越不能延期。一些关乎于公司生死存亡的项目,更是上线时间点都不可变更的。 作为一个专业的程序员,给出的排期就是一份契约,答应的时间要做到,否则会影响信誉。如果中间评估时间不够,真的要延期,要提前说出来。而不要最后时刻,给人final surprise。没有按照约定完成,要反思。 项目经理要的排期既不是写代码的时间,也不是设计+实现代码的时间,而是项目上线的时间。太多的程序员把写完代码的时间,当作上线时间承诺出去,代码没上线就是不可用的,要把部署测试的时间都算进去。
如何排期排得准
正确地划分任务
大需求先分解为迭代和里程碑,再细分成小需求,分得越细,排得越准。 分成好几个迭代,有deadline的项目,要在开始前就把几个迭代的预估和需求做的范围都确定好,再排期。 防止边做边排,到最后几个迭代的时候发现有很多重要的工作没估准,导致回旋的余地很小,难以协调。因为前几个迭代把时间用光了,没有做最关键的事情。
留有余地
百密必有一疏,留有必要的缓冲时间(buffer),给突发情况。
理解需求
项目初期要讨论好需求,明确需求点,找到实现最小需求需要做的工作(核心需求),根据deadline中的时间资源,来决定能开发到什么程度。不要不可能而为之,最后又没完成。 需求点的明确是需要讨论和花费时间的,需要有类似流程图一样的东西来指导,开发和产品都要想自己部分的流程图,都要想清楚。开发有责任让产品想清楚,再给出准确排期。防止最后做出成品再返工。 在资源有限的情况下,要理出最小闭环需求,对需求进行取舍。 完成比完美更重要!