目录

关键时刻:如何避免在长期开发项目中临时抱佛脚

在软件开发领域,为了赶上项目的截止日期,团队成员往往需要日以继夜地工作。这种称为“关键时刻”的情况,如果持续时间过长,会导致团队士气低落,员工感到极度疲惫。但还是有方法可以避免或至少减少这种不良影响。

定义关键时刻

“关键时刻”或“关键模式”是软件开发行业中一个广为人知的现象,指的是为了满足项目截止日期而进行的长时间加班。管理层可能会期望员工每周工作50、60、70甚至80小时。这种高强度的工作节奏常常需要缩短休息时间,牺牲睡眠,以便有更多时间进行编码。关键时刻可能持续几个月,但一般只出现在项目发布前的最后几周。

软件开发中关键时刻的原因

在软件和游戏开发领域,关键时刻已经变得十分普遍,以至于很多从业者将其视为工作的一部分。那么,为什么会出现关键模式呢?

紧迫的项目截止日期

项目截止日期被低估是造成关键时刻的一个主要原因。通常情况下,客户、赞助商或是产品所有者都希望产品尽快发布。

因此,他们设定的截止日期很少留有余地来应对不可预见的延误。他们也未考虑到开发人员常常需要同时处理多个项目的现实。这样一来,虽然工作量增加,但截止日期通常不会相应地延长。

不切实际的客户期望

订购项目的客户可能不具备技术背景,对软件开发的了解非常有限。因此,他们可能会对数字产品的发布速度有不切实际的期望,尤其是在不了解项目复杂性的情况下。

范围蔓延

如果承包商没有有效地管理客户的期望,可能会导致项目需求不断增加,这就是所谓的范围蔓延。对项目复杂性不了解的相关方可能会频繁地更改需求,而这些新的需求又会迫使开发人员不得不加班。这就说明为什么让客户了解项目范围变更对截止日期可能产生的影响非常重要。如果一开始没有做好这一点,一旦出现范围蔓延的迹象,就应立即通知客户。

关键时刻对开发者的影响 

尽管在开发者中,长时间的高强度工作被视为常态,但这对他们及其家庭的影响是巨大的。长时间工作、牺牲周末和破坏工作生活平衡都会带来严重后果。

首先,持续和过度的压力会严重影响开发人员的心理健康和整体福祉,通常会导致职业倦怠和对工作的不满。虽然工作时间长,但关键时刻实际上降低了生产效率。

但职业倦怠的影响不仅限于降低团队的生产力和职业前景。它还会对开发者造成心理和身体的双重负担。职业倦怠可能会导致情绪冷漠、睡眠障碍以及包括高血压和心脏病在内的心脏问题。

从长远来看,关键时刻无疑是一场灾难。在压力巨大和环境不健康的工作条件下,员工可能会严重生病,甚至彻底辞职。如果他们离开了,项目中的开发者数量将减少,剩余的团队成员将不得不处理更大的工作量。

过度劳累的员工更容易犯错。这些错误可能会导致交付的产品存在缺陷。因此,即便公司赶上了截止日期,产品也可能存在问题。这就引出了一个问题:关键时刻真的值得吗?更重要的是,如何避免或最小化关键时刻?

如何避免(或最小化)关键时刻

不实际的截止日期、糟糕的计划和范围蔓延都可能在任何项目中发生。如果管理不周,将会发现任务延期、资源容量急剧下降以及关键角色无法得到满足。为了避免关键时刻,需要制定现实的截止日期,提前做好计划,并妥善管理关键利益相关者的期望。

设定切合实际的的截止日期

为了设定切合实际的的截止日期,需要考虑多个因素,包括项目的复杂性和范围、潜在风险以及团队成员的可用性和技能。

如果项目采用混合管理方法,可以考虑使用自下而上的规划方法,或者利用甘特图和敏捷看板进行逆向规划。这样做可以让开发人员有机会讨论可能影响项目交付的风险、依赖性和其他关键因素,并授权他们制定一个现实的项目时间表。

考虑正确的技能

在软件和游戏开发中,关键时刻常常是因为管理层未能充分考虑到团队成员的技能而发生的。这里的问题有两方面:

首先,敏捷团队中缺乏足够的熟练专业人员来按时完成任务。其次,熟练的专业人员往往在项目中加入得太晚。

例如,为了确保推出的产品能够有效运作,测试人员需要在开发周期内尽早开始测试新功能,而不是等到产品几乎开发完成后才开始。或者,如果产品需要内容创作者,他们应该在合适的时间开始工作,这样就不会阻碍其他人的工作,包括设计师和程序员。

因此,项目需要配备具有正确技能的人员,并且团队中要有足够多这样的人。还需要对项目进行规划,确保这些人员在适当的时间完成工作,以避免造成工作积压和其他阻碍,这些问题都可能导致项目最后阶段出现关键时刻。

Jira中的BigPicture工具可以帮助计划和管理对项目至关重要的技能。该应用还支持围绕资源的缺席及其在项目生命周期中任何时点的能力进行规划,这样可以预见并绕开潜在的障碍,防止项目延误。

即使项目是更大程序或项目组合的一部分,也能确保开发者不会同时全职参与多个项目。这样做可以明确团队成员可以承担的工作量。通过跨项目概览,还可以检查所需人员是否能够承诺足够的时间,以确保项目的连续进展。

评估和管理风险

风险和不确定性是任何项目的固有部分。首先需要识别可能威胁到项目成功的潜在因素。然后利用风险矩阵来评估这些风险的影响和发生的可能性。风险矩阵能够帮助构建并维护一个关于风险环境的实时视图,从而优先处理风险、评估其大小和范围,并判断是否拥有适当的资源来最小化这些风险。

密切关注项目进展

无论采用哪种管理方法,都应该能够跟踪项目的进展。可以使用敏捷工具,如冲刺燃尽图、敏捷看板、项目报告,或者在甘特图上可视化冲刺。

通过敏捷看板,可以直接在看板上查看冲刺的进展情况。如果需要更深入的了解,还可以自定义Jira卡片,显示每个任务的进度条。在BigPicture的甘特模块和范围模块的工作分解结构(WBS)中,也可以找到类似的信息。

实施无高压政策

随着雇主越来越重视员工福祉,公司正采取多种措施来预防关键时刻。其中一种措施是实施严格的无高压政策。这包括将一些不可违反的规则融入到工作文化中,如强制休假日和加班换取额外报酬。这类政策有助于员工在工作时间内保持高效,同时防止他们遭受职业倦怠。

但是要注意避免创造“不正当激励”,这种激励可能导致团队成员故意加班以获取加班费。不应该让最优秀的员工为了赚取更多金钱而故意加班。相反,应该通过奖励更高质量的成果,如无缺陷的发布,来激励员工。

关键时刻会损害产品质量、团队生产力和员工满意度。尽管加班已成为常态,但这并不意味着它不可避免。通过一些计划和BigPicture的帮助,可以摆脱关键时刻,确保项目按时交付。