为了完成项目,有时项目组把每周的工作时间从60小时增加到大约70小时。但经过几个月的紧张冲刺,项目仍然没有完成。事实证明,我们与马拉松比赛的终点相距甚远,在中间的某个地方就开始全力冲刺,这种努力是不可持续的。
尽管尽了最大的努力,但有时我们仍然会发现项目的截止日期不断向后延迟。我们如何处理这些情况,与我们最初做出准确的估算一样重要。假设距截止日期还有两个月,我们意识到该项目比原计划晚了两周,我们可能会这样想:为了赶上截止日期,团队需要在接下来的两个月里多投入25%的时间——也就是每周工作50小时而不是40小时。不幸的是,实际的情况并不像数学计算那么简单。有许多原因可以解释为什么增加工作时间并不一定意味着能赶上发布日期:
-
随着工作时长的增加,每小时的生产力会下降。 加班期间生产力会迅速下降;疲劳的工人开始犯错误,短期的产量增加是以牺牲随后几天的产量为代价的。如果每周工作60小时或以上的时间,持续大约两个月以上,生产力下降的累积效应将导致完工日期延迟,超过每周工作40小时本可达到的截止日期。
-
进度落后的程度超出你的想象。进度落后事实上意味着我们前几个月的工作量被低估了。这反过来可能还意味着整个项目的工作量都被低估了,包括剩下的两个月。此外,我们往往更擅长对项目前期的工作进行估算,因为那个时候处理的都是我们所了解的具体开发任务。相比之下,对项目尾声的工作进行估算就比较困难,团队通常会低估系统集成所需的时间,而且只要出现一个意外问题就可能使进度落后一周甚至更长时间。
-
额外的工作时间会压垮团队成员。这些额外的加班时间并非凭空而来,而是大家牺牲了原本可以与朋友或家人一起度过的时间,以及锻炼、休息或睡觉的时间。这些个人的恢复时间被换成了紧张的工作时间,随之而来的(如果难以量化的话)是精疲力竭带来的风险。加班之后“几乎总会有一段同等的补偿性时间,员工为了补偿自己在生活方面的损失,而在工作中耗费时间去做与工作无关之事。
-
加班会损害团队活力。并非团队中的每个人都能灵活地投入额外的时间加班。也许一名团队成员要照顾家里的孩子,也许其他人计划在接下来的几个月内进行为期两周的旅行,或者某人由于通勤时间太长而无法工作那么长时间。团队曾经团结一致,每个人都平等、合理地工作,而现在那些工作时间更长的人必须承担那些不能或不愿工作的人的重担。结果可能是以前融洽的团队成员之间滋生敌意和怨恨。
-
随着截止日期的临近,沟通成本也在增加。在发布日期之前的几天或几周,通常会出现疯狂的行为。团队召开更多会议,更频繁地分享状态更新,以确保每个人都在做正确的事情。额外的协调工作意味着人们投入到剩余工作中的时间更少。
-
朝着截止日期冲刺会产生大量技术债。当一个团队为了赶上截止日期而加班加点地工作时,他们几乎不可避免地会找捷径以达到里程碑。结果在项目完成后,留下了一堆必须偿还的技术债。
因此,加班并不是解决糟糕的项目规划的灵丹妙药,而且加班会带来高昂的长期风险和成本。除非有一个切实可行的计划,通过加班真的可以赶上发布日期,否则从长远来看,最好的策略是重新定义要发布的功能,仅包含团队在目标日期之前可以交付的内容,或者将截止日期推迟到更现实的时间。
但有时候,尽管需要付出长期的代价,我们还是会做出必须加班的决定。在这种情况下,必须确保团队中每个人都能接受加班。可以通过以下方式来增加通过加班完成目标的可能性:
确保每个人都了解进度落后的主要原因。进度放缓是因为人们懈怠,还是项目的某些部分比预期的更复杂、更耗时?你确定这些同样的问题不会持续下去吗?
•制订更切实可行的项目计划和时间表。说明为什么加班就代表能赶上发布日期,以及具体如何做。定义可度量的里程碑,以检测新修订的项目计划是否落后。
•如果发现实际进度甚至落后于修订后的时间表,那就做好准备放弃冲刺。接受你可能在马拉松比赛的半程就发起了冲刺,并且终点线比你想象的更遥远的现实。这时要尽量减少损失,因为再多的加班也不太可能解决问题。
不要把加班作为没有应急计划的补救措施。如果被逼到绝境并且别无他法时,随着截止日期逐渐临近,你更有可能惊慌失措,手忙脚乱。我们要变得卓有成效就必须深知应当提前做好规划。
要想做得更好,唯一的办法就是实践上述这些概念,尤其是在小项目上进行实践,因为小项目的估算错误带来的成本更低。而项目规模越大,风险越高,出色的项目规划和估算能力对项目成功的帮助也就越大。
网友评论