在什么情况下(如果有的话),将程序员添加到团队中实际上会加速已经很晚的项目的开发吗?
在什么情况下(如果有的话),将程序员添加到团队中实际上会加速已经很晚的项目的开发吗?
Answers:
确切的情况显然是针对您的项目的特定情况(例如,开发团队,管理风格,流程成熟度,主题难度等)。为了更好地说明这一点,以便我们可以简单地大幅度地简化它,我将重申您的问题:
在什么情况下(如果有的话),可以将团队成员添加到一个运行较晚的软件开发项目中,从而导致实际发货日期的减少,其质量水平是否等于允许现有团队工作直到完成的质量水平?
我认为有许多事情是必要的,但还不足以使事情发生(没有特定的顺序):
应该讨论的第一件事是是否可以推迟发货日期,是否可以削减功能以及两者的某种组合是否可以使您满意现有员工的放行。很多时候,它的几个功能确实占用了团队的资源,而这些资源无法带来等于投资的价值。因此,在进行其他任何操作之前,请先认真考虑项目的优先事项。
如果以上段落的结果不足,请访问上面的列表。如果您及早发现了进度单,则在适当的时间添加适当的团队成员可能会节省版本。不幸的是,您越接近预期的发货日期,增加人员就可能会出错。在某一时刻,您将跨越“无回报点”,在该点上,没有多少更改(除了交付当前的开发分支)无法保存您的版本。
我可以继续下去,但我想我达到了要点。在项目之外,从您的职业生涯,公司的未来成功等方面来说,您绝对应该做的一件事就是弄清楚为什么迟到了,如果可以做些什么可以提早提醒您,以及您需要采取什么措施以防止将来发生这种情况。由于您是:
希望有帮助!
仅当您有资源驱动的项目时,它才有帮助。
例如,考虑一下:
您需要画一张大海报,例如4 x 6米。这么大的海报,您可能可以在前面放两个或三个人,并让他们平行绘画。但是,在它前面放置20个人是行不通的。此外,除非您需要a脚的海报,否则您将需要熟练的人员。
但是,如果您的项目是用现成的字母填充信封(例如You MIGHT赢了!),那么添加的人越多,它的运行速度就越快。分配工作量会产生一些开销,因此您无法获得最多一个人的收益。信封,但您可以从2或3个以上的人那里受益。
因此,如果您的项目可以很容易地分成几小部分,并且团队成员可以快速上手(例如...瞬时),那么增加人员可以使它更快上手。
可悲的是,在我们的世界中,没有多少项目像这样,这就是为什么docgnome关于“神话人月”一书的提示是一个非常好的建议。
可能满足以下条件:
我会第一次让您知道所有这些。
如果现有程序员完全没有能力,那么增加有能力的程序员可能会有所帮助。
我可以想象这样一种情况,您有一个非常模块化的系统,而现有的程序员甚至没有 在一个非常孤立的模块上启动。在这种情况下,仅将项目的那部分分配给新的程序员可能会有所帮助。
基本上,《神话人物月》中的引用是正确的,但在像我编造的那样的人为情况下除外。Brooks先生进行了扎实的研究,以证明在一定程度上,将新程序员添加到项目中的网络和通信成本将超过您从其生产力中获得的任何收益。
与其添加程序员,不如考虑添加管理帮助。任何可以消除分心,提高注意力或提高动力的事情都是有帮助的。这包括系统和管理,以及诸如午餐等平淡无奇的事情。
显然,每个项目都是不同的,但是大多数开发工作可以确保在开发人员之间进行一定程度的协作。在这种情况下,我的经验是,新鲜资源实际上会无意间降低他们所依赖的人才的速度,在某些情况下,这可能是您的关键人物(顺便说一句,通常是“关键”人物会教育新手的时间)。当他们是加快速度,也不能保证他们的工作将适应既定的“规则”或“工作文化”与团队的其他成员。同样,这样做弊大于利。因此,在某些情况下可能会有所帮助:
1)新资源的任务很紧,要求与其他开发人员的互动最少,并且已经证明了其技能。(即,将现有代码移植到新平台,从外部重构当前已锁定在现有代码库中的无效模块)。
2)管理项目的方式是,可以与其他更多高级团队成员共享时间,以帮助加快新手的工作并指导他们,以确保他们的工作与已完成的工作兼容。
3)其他团队成员非常耐心。
我认为,在以下情况下,快要结束工作的新增人员可以加快工作速度:
该工作可以并行进行。
通过增加资源节省的数量,比使项目经验丰富的人员向经验不足的人解释事物所浪费的时间要多。
编辑:我忘了提,这种事情不会经常发生。通常,这是相当简单的事情,例如对屏幕执行简单CRUD的管理屏幕。这些天来,这些类型的工具几乎都可以自动生成。
不过,请谨慎从事此类工作的经理。听起来不错,但实际上通常不足以削减项目的任何重要时间。
如果额外的资源可以补充您现有的团队,那将是理想的选择。例如,如果您要设置生产硬件并验证数据库是否已真正调优,而不是仅仅返回良好的结果(您的团队称为领域专家),那么您是从一个从事下一步项目工作的优秀dba那里借来时间的您的团队可以加快团队发展,而无需花费太多培训成本
简单的说。归结为比较剩下的时间和您从某人那里获得的生产力,不包括花费额外的资源来加速和提高生产力所花费的时间,并减去了现有资源在教授这些资源上花费的时间。关键因素(按重要性顺序):
如果已经使用团队来进行编程配对,那么添加另一个已经熟练配对的开发人员可能不会减慢项目速度,特别是如果开发是以TDD风格进行的话。
新开发人员会随着对代码库的了解越来越多,他们的工作效率将逐渐提高,并且任何误解都将很早就被他们的团队或在每次签入之前运行的测试套件所捕获(理想情况下应该进行检查)至少每十分钟)。
但是,需要考虑额外通信开销的影响。重要的是不要过多地稀释项目的现有知识。