作为一个项目经理,经常会发生如下场景:
老板: 莫斯,我给你三个人,一个月你能搞定吗?
莫斯: 虽然任务比较多,但是三个人加下班应该能完成。
之所以要拿出这样的例子,其实这是项目管理里一个很容易忽略的问题。 —— 把加班划入项目计划的一部分。
实际上这是错误的,也是不可取的。
1. 加班只是一个方法,而不是计划的一部分
对于加班,只是赶工的时候所使用的一个方法。而项目的赶工只是在时间来不及的情况下临时手段。那是因为赶工会有副作用,团队成员长期超长时间工作会引发工作质量的下降。所以加班在项目进度来不及的情况下,偶尔为之可以达到赶上进度的目的。但切不可长期为之。这就好比是一个橡皮筋,蹦的太紧了是会断的。
2. 加班是一个保险,为了应对项目中的突发状时才会使用。
项目经理在做项目计划的时候,会在所有任务都安排完成之后增加一个buffer的时间。为的是一旦关键任务有延时的情况下,不至于最终影响交付日期。对于定价合同的项目来说,根据约定交付日期交付是重中之重,延期可能会造成赔付的情况。
为了避免类似情况的发生,在总的项目计划时间之外增加一定的buffer时间一个常规做法。除了这样的buffer时间之外,临时性的偶尔加班也可以达到追回一定项目进度的效果。
众所周知,项目在进行时会发生各种各样的问题,如果当初估计不足,很可能造用完了buffer时间还差一点的情况,或者对于关键路径来说,需要赶工个一天使得其他任务能够按时开始。
此时如果团队能够加班,就不至于影响到其他任务的开始。尤其是多团队协作的项目,不至于一个团队的落后造成其他团队开始的时候就是落后与进度的。这是一个双保险。
3. 如果平时加班是一个常态,那么遇到加班也无法解决的问题,就只能缴械投降了。
正常情况下一个人每天工作时间是8小时。做计划的时候会安排6-7小时的任务。因为要考虑到一些琐碎的事情,如上厕所啦喝水啦等等。
如果在安排项目计划的时候每天按照12小时安排任务,是不给自己留后路的做法,一旦团队成员做不到12小时,势必影响到最后交付的日期。而此时,团队已经天天在加班了,那么就只剩下延迟交付这一个方法了,没有缘由的延迟交付,客户会怎么想?项目经理首先就赢得不了客户的信任。
所以在做项目计划时,加班绝对不能作为计划的一部分。这是对自己项目负责,也是对自己团队成员负责。
软件开发中加班是一个不可避免的话题,对于加班这个话题,个人觉得要分开来讲。
1. 偶尔为之对于项目的进度会有一定的效果。
2. 常态,就要找找原因了。
是什么促成了项目加班变成了常态?
是项目计划预估不足?
是团队成员技能达不到项目要求?
还是项目范围没有有效的管理?
这些问题都需要通过鱼骨图去分析寻找。在找到根本原因之后,对症下药,使得团队加班频率回复到正常情况。
项目经理对于加班的态度:
——不鼓励,但是在必须而为之的情况下,也不抵触。
——加班是临时性的,绝对不是一个常态。