关于最后期限和预估工时
首先,需要明确两个概念:
最后期限(deadline)
:也称为截止日期,一般来源于业务诉求本身,如在xxx节日之前需要上线xxx功能,为xx活动提供支持;预估工时
:由程序员内部评估得到,如xxx功能需要n周才能完成。
通常,程序员应该进行合理的工时预估,而销售/营销负责设定deadline。
那么问题来了:如何让两者之间达到平衡呢?
如何设定预估工时?
我们先来听听冤大头Sam的故事:
会后,张总突然想起来这个需求很急,于是开始催促Sam推进项目进度…
第二天,小王修完了一个现网临时代码导致的问题之后,Sam来到了小王身边…
一个小时后,小王脸上表情略显复杂
对于开发人员来说,预估工时的关键技巧:
- 让
实际做这些工作的人
来预估工时,如果对方硬是要你给个时间,尽量往上报,别坑了队友; - 预估工时的时候,把需求拆解成
一个一个的任务
,每个任务最多不超过两天,太大的任务一般意味着不准确的预估工时
; - 基于实际耗时统计不断循环反馈给开发人员,以提高他们的预估技能,以得出更准确的工时;
一旦有了准确的预估工时,能够让您有更大的把握在deadline之前完成需求。那么deadline又如何设定呢?
如何设定deadline?
一个团队里面的营销人员一般都背负着业绩压力,所以都希望把deadline尽可能往前提,这有好处也会有副作用哦,后面听我解释。
一些公司则会对岗位做更细的划分,比如运营人员,销售,产品经理等,特别是互联网公司,要是没有把目标对齐,让整个团队统一战线,少不了各种扯皮。
对于营销人员来说,设置deadline的关键技巧:
- 不是迫不得已,不要把deadline设定在预估工时的前面,那样会遭开发人员,测试人员,项目经理唾弃;
- 如果deadline的确要在预估工时之前,唯一的选择:
- 整个团队加班修福报;
- 砍掉一些需求,以减少工作量,达到满足deadline的要求;
- 要是这也不愿意,那也不愿意,那就只能眼睁睁的看着deadline到达了,软件还不能交付;
- 要向团队
解释清楚该deadline的目的是什么,有什么重要的意图
(如,上线后能够创造多少位数的营收等),这将是驱动团队前行的关键动力之一。我见过一些比较擅长调动团队积极性的产品经理就很会通过这个去给大家画饼; - 如果设置了一个苛刻的deadline,将会导致开发人员缺乏动力去完成此需求,进而打破团队合作氛围,不利于长期合作发展。
强行上线的副作用
面对紧迫的deadline,开发人员一般会忽略开发最佳实践,转而通过投机取巧去完成任务,从而节省一半以上的编码时间,但最后却增加了数倍的测试和自测联调时间。
我的朋友Tony接到过一个很大的需求,要求5天内提测,眼看着时间远远不够用,于是为了应对提测时间他跟开发同事想出了一些解决方案。
业务方看着版本发版时间,漏出了满意的笑容。软件UI原样交付,只不过别人的产品是人工智能,他的产品是手工智能…