在已经延误的项目中,什么情况下添加程序员实际上会加速开发进度?
在已经延误的项目中,什么情况下添加程序员实际上会加速开发进度?
具体情况显然非常特定于您的项目(例如开发团队、管理风格、流程成熟度、主题难度等)。为了更好地限定范围,以便我们可以进行讨论而不是简单而笼统的概括,我将重述您的问题:
在什么情况下,如果有的话,在软件开发项目已经延迟的情况下增加团队成员可能会导致实际发布日期的缩短,并保持与现有团队工作直到完成时相同水平的质量?
以下是我认为必要但不充分的条件(无特定顺序):
首先应该讨论的是船期是否可以推迟,是否可以削减功能,以及两者的某些组合是否能够让你利用现有人员实现发行。很多时候,一些占用团队资源但投资回报不高的功能会导致项目进度滞后。因此,在开始其他事情之前,认真评估项目的优先级。
如果上述段落的结果不足以解决问题,那么查看上面的列表。如果你早期意识到进度滑坡,那么在正确的时间添加适当的团队成员可能会挽救发布。不幸的是,船期越近,添加人员出现问题的可能性就越大。在某个时刻,你将跨过“不可逆转点”,除了发布当前的开发分支,没有任何变更可以拯救你的发布。
我可以继续讲下去,但我认为我已经涵盖了主要的观点。除了项目之外,从事你的职业和公司未来的成功等方面来看,你绝对应该弄清楚为什么会延迟,是否可以提前发现并采取措施避免这种情况再次发生。项目延期通常是因为你要么:
希望这有所帮助!
只有在您有一个资源驱动的项目时才有帮助。
例如,考虑以下情况:
您需要绘制一个大海报,比如4米乘6米。这么大的海报,你可能可以让两三个人站在前面,同时涂漆。然而,在前面放置20个人是行不通的。此外,除非你想要一张烂海报,否则你需要有技能的人。
但是,如果您的项目是用预先打印好的信件(例如“您可能已经赢了!”)装信封,则添加更多人员,处理速度就越快。在分配工作堆栈方面有些开销,因此您不能获得每个信封一个人的效益,但是您可以从远远超过2或3个人中获得效益。
因此,如果您的项目可以轻松地分成小块,并且团队成员可以迅速上手(例如...即时),则增加更多人员将使项目进展更快,直到某个点为止。
遗憾的是,在我们的世界中很少有这样的项目,这就是为什么docgnome关于神话般的人月书籍的提示是一个非常好的建议。
也许只有在以下条件同时满足时:
我会在第一时间告诉你是否同时满足以上所有条件。
根据《人月神话》,将人员添加到已经延迟的项目中导致项目更加延迟的主要原因是O(n^2)的沟通开销。
我遇到了一个主要的例外情况:如果一个项目只有一个人,那几乎注定会失败。增加第二个人几乎总是能提高速度。这是因为在这种情况下,沟通不是开销,而是一个有益的机会,可以澄清思路并减少愚蠢的错误。
此外,正如你发问时显然已经知道的,来自《人月神话》的建议仅适用于已经延迟的项目。如果你的项目还没有延误,增加人员不会使它变得更糟。当然,前提是你做得正确。
与其增加程序员,我们可以考虑增加行政帮助。任何能够消除干扰、提高集中精力或提高动力的事情都是有益的。这包括系统和管理,以及更加平凡的事情,比如准备午餐。
只有当你在项目的后期阶段还有一些独立的任务(与项目的其他部分几乎没有交互)尚未被任何人解决,你才可以引入一个在该领域专家的团队成员。添加团队成员必须最大限度地减少对其余团队的干扰。