我在 Reddit Programming 上发布了这个问题,但没有得到任何回复。所以我希望 Stack Overflow 社区能有意见。
你们中的任何人是否曾经参与过落后的软件项目,其中“崩溃”或“快速跟踪”项目进度实际上使项目进度回到正轨?我从未见过这些项目管理技术中的任何一种真正起作用。我读过的所有关于软件开发的文章都指出这两种技术不起作用并且实际上将项目推得更远(例如关于神话人物月的文献)。那么谁见过它的工作呢?
谢谢比尔。
我在 Reddit Programming 上发布了这个问题,但没有得到任何回复。所以我希望 Stack Overflow 社区能有意见。
你们中的任何人是否曾经参与过落后的软件项目,其中“崩溃”或“快速跟踪”项目进度实际上使项目进度回到正轨?我从未见过这些项目管理技术中的任何一种真正起作用。我读过的所有关于软件开发的文章都指出这两种技术不起作用并且实际上将项目推得更远(例如关于神话人物月的文献)。那么谁见过它的工作呢?
谢谢比尔。
我只见过它工作一次。这是一个长达三四个月的项目,预计将比原始交付日期多运行两个月。该项目得到了快速跟踪,事情最终回到了发布的正轨。
...但请记住,那只是一次。我参与过更多项目,其中 PM 尝试使用这两种方法中的一种,但他们惨遭失败,并将该项目拖了几个月,超出了已经延长的日期。
它可以工作。但是要付出代价:质量下降(更多的错误,更少的测试)和精疲力竭的程序员的流失。
并且在许多情况下,由于Mythical man-month中所述的原因,一个快速跟踪的项目既不能按时交付,也会支付全部负价。
这两种项目管理技术都可以很好地维护进度,但应该通过明智地分析网络图来智能地使用它们:
崩溃和快速跟踪是两个非常不同的东西......
快速跟踪是您将某些事情(任务或工作包)打乱顺序并尽早完成的地方。这可能是因为硬件交付提前期、资源可用性、风险或其他原因。因此,您可能会在最初计划按顺序执行的地方并行执行操作。我已经快速跟踪了很多项目.. 是的,它有效。
使项目崩溃的不同之处在于,您通常会在一个问题上投入更多资源以更快地完成它……这可能很棘手。如果它是作为危机应对措施完成的,那么增加额外的人员可能会很痛苦,因为您已经处于抽水状态。在某些情况下,您只是添加更多问题。
崩溃的另一种选择是缩小范围。这并不总是可能的,但应该考虑。
通过快速跟踪或崩溃……您越早知道何时需要更改日程,就越容易管理。这就是为什么提前截止日期如此重要的原因,它们表明了项目的其余部分将如何进行。
我已经看到它起作用了,但这不是常态。
在我认为它可能可行之前我想看到的东西:
1) 具备适当技能和方法的员工。我的意思不是“.NET 程序员”,我指的是详细的技术技能、业务领域技能(以便他们理解问题)、个性匹配以及理解工具和方法(源代码控制、方法论等)。这可能发生在有通用工具、标准和知识的大公司中,但您需要确保它们几乎符合所有条件。
2) 任务必须很好地分割。最好的情况是整个模块、应用程序或任务未启动,您可以在上面放置新人。它最大限度地减少了技能提升、额外的沟通等。如果你不能区分新人会做什么,你很可能会严重破坏现有团队。
3) 整个团队都必须接受这种方法。如果现有团队不同意让人们加入是正确的,他们可能会与之抗争,而你注定要失败。
4)你需要确保你已经解决了为什么它运行迟到了。如果只是糟糕的估计,那么您是否相信新的估计是好的?如果是范围蔓延,您现在掌握范围和变更控制了吗?如果是因为截止日期移动了,你确定它不会再移动吗?
如果你不能勾选所有这四个,它就行不通。
有一个软件管理原则说,在后期项目中增加人力会使它变得更晚。
也就是说,只要采取的措施是明智的,就应该没问题。不要对员工期望过高,提供合理的激励措施,不要走捷径。它不会让奇迹发生,但如果你很实际,并且想把事情推得更快一点,那绝对可以做到。
当人们与某件事的潜在成功息息相关时,他们愿意付出更多的努力是令人惊讶的。
这取决于您所说的“工作”是什么意思。我想我从来没有见过它让延迟的项目按时交付,如果这就是你的要求的话。
然而,我已经看到它让迟到的项目交付迟了一点。从管理的模糊角度来看,这可能被称为“工作”。我还看到它显着降低了公司基于客户的压力。有些人可能还称其为“工作”。
当然价格也比较高。员工精疲力竭,在被忽视的个人生活中出现健康问题或大问题等。所有这些都对公司产生了巨大的财务影响。所以我怀疑这家公司从长远来看会领先。那是“工作”吗?