一个高级开发人员可以同时处理多少个并发项目?

时间:2008-10-06 13:10:52

标签: project-management

我正在努力为开发人员找到合理的资源分配模型。该部门将针对不同的外部客户提供许多不同的项目,因此我需要制定一些指导原则,以避免因缺乏关注而导致人们生气,不能处理他们想要的事情等。

目前我建议使用模型:

  • 初级开发人员 - 一次只能处理一个项目(原因:主要是他们无法控制自己的时间使用)
  • 中级开发人员 - 一次只能为一个项目工作50%或更多,但在两个项目中可能是50-50
  • 高级开发人员 - 一次最多可以在3个项目上工作;百分比可以是例如50%,30%和20%。

这是我担心的老年人。由于客户可能只想购买一个初级组,我需要向他们提供一名导师(高级),以确保他们拥有知识进步和他们需要的帮助(有经验和知识的人)。一组5名大三学生将在50%的时间内获得一名大四学生。

问题是 - 一个高级人员可以同时处理3个项目(他将被聘用这个 - 我不会欺骗别人相信他们会100%的时间编写代码并最终得到20%) ,还是这太多了?编辑:我计划用于导师的老年人根本不会编码。他们将专注于自我指导和培训,例如:在新的和即将到来的技术。

我觉得2个项目比3个好吗?要么?如果老年人需要50%的“初级项目”,30%的人需要分析和设计另一个项目。他能用最后20%再处理一个项目吗?

(没有时间进行培训,咖啡等不会成为100%的一部分。我已经减少了“实际”工作时间,并考虑到了这一点)。

13 个答案:

答案 0 :(得分:28)

我建议参与项目的真正的人不应该同时在2个以上。除此之外,你的工作质量和数量也会严重下降。

说一个对我们有用的巧妙方法是让老年人参与多个项目,但担任导师/顾问。他们帮助其他人,审查他们的代码,研究瓶颈的解决方案,参与峰值等等。它们非常有用,但是他们的参与不计入团队速度,而且他们不在项目团队之外。

P.S。它还有助于防止老年人感到无聊。

P.P.S。一群只有初级人才是灾难的必然选择。你需要在每个这样的项目中至少有一名高级全职工作。

答案 1 :(得分:5)

我发现我可以深度一次只涉及一个项目。我可以与其他人实际负责交付的六个项目进行会议和对话。

我可以毫无问题地指导和指导其他5-10个项目。取决于参与的深度。

但是当我对工作产品负责时,我必须专注于那个。

答案 2 :(得分:3)

有一篇文章说9名妇女在一个月内不能生孩子。

我认为这适用于此。如果开发人员将他的时间分成两个项目50/50,那么项目是否可以安排,以便开发人员100%在一个项目上工作,然后当他完成工作时100%在第二个项目上工作?

通过拥有专注的开发人员可以提高工作效率,但工作时间仍然相同。

答案 3 :(得分:2)

软件开发不像是快乐的一餐。为什么要让您的客户了解您的薪资等级?为什么不为工作分配最好的团队并将其传达给您的客户?

关于你的具体问题,我认为让人们同时处理不止一件事是不明智的;项目可以将人们拉向一个方向或另一个方向,实际上永远不会出现“50/50”或“33/33/33”的平衡。问题项目或强大的管理者将获得他们想要的100%的资源。

您可能希望关注项目需要某些人才的时间。当然,在实施和测试的尾声期间,您不需要您的资深人士。但是,在分析,设计和初始实施过程中,您绝对需要它们。

答案 4 :(得分:2)

这很大程度上取决于这个人。了解软件项目的性质,狗屎会迟早会受到粉丝的欢迎,当三个大三学生的项目同时变坏时,三个小组的大学都在大吼大叫指导,你将如何帮助你的高级应对?

答案 5 :(得分:2)

如果您想在最短的时间内获得最高质量,那么答案就是其中之一。

从您的帖子来看,似乎交付速度或质量不是首要任务,但在列表中学习相当高,在这种情况下,高级开发人员可以在多个项目中帮助和指导Junior开发人员。这通常是权衡,因为它是一种“发展”组织的有效方式,只是确保高级开发人员知道他的角色是教师和导师(以及同伴)而不是代码 - 猴子的角色。 。这将有助于他更好地调整他的先例。

答案 6 :(得分:1)

有多少人可以处理的任务与他的纪律和工作动机有关,而不是他的编程技巧。

他目前只能在一个项目上工作。切换项目会让你失去上下文,每个人都会遇到这个问题。还有高级开发人员。

答案 7 :(得分:1)

专注于资源分配只涉及项目的三个方面之一。高级开发人员可以同时处理多少个项目同样取决于项目的范围和进度,以及对个人能力的影响。正如Andre Bossard所说,每个开发人员,无论是否为高级开发人员,都会因为上下文切换而浪费时间。

我不认为你的问题有一个简洁的公式或股票答案,因为每个项目都需要考虑很多变量。我相信你希望你的所有项目都是高质量的,所以我鼓励你相应地分配资源。向客户明确表示,试图节省成本(通过请求仅限初级团队)将增加交付时间并可能降低质量。在资源,进度和范围上列出每项选择的成本,以便客户做出明智的决定是您可以做的最好的事情。

答案 8 :(得分:1)

像往常一样,“它取决于”

  • 这取决于项目的复杂程度;无论计划的理论分布如何,真正困难的项目/问题都可能会消耗高级开发人员的每一个醒着时刻;一些问题只是 hard (或者真的真的有趣)
  • 这取决于高级开发人员 - 有些人可能只在指导角色中茁壮成长,有些人可能会因为不允许编码而感到沮丧
  • 它还取决于青少年队的质量 -
    • 青少年向老年人询问每一个小问题(“我如何在java中编码循环?为什么我的MessageBox不会出现在浏览器上?我打电话给谁在我的计算机上安装了互联网“我的密码是什么?”)即使是最有耐心和最仁慈的大四学生,也会耗尽大脑,
    • 必须为自己找出一切的青少年将悄然让项目在他们击败他们的头脑时死去他们......只是......不要......看。< / LI>

简而言之,所有高级开发人员都不相同(对于初级/中级人员来说同样如此),您最好单独与每个人交谈,并为每个项目构建一个兼容的团队。什么是更好的策略:给客户一个吸引人的价格,或者提供一个可以完成工作的团队?所有程序员都可以互换的看法是美国离岸外包问题的重要组成部分,但是如果你以便宜货的方式打包一堆青少年,你就会继续这种观念,并可能打败你所说的目的。为了长期生存能力,最好是完成工作,或者根本不工作。

答案 9 :(得分:1)

飞机驾驶舱设计研究表明,人们可以同时处理5 +或 - 2个任务。理想情况下,您需要将其保持在5以下,以防止飞行员失去对局势的控制。我认为这个原则可以很好地转化为从GUI设计到其他工作中的任务管理的所有内容。

我相信你的问题的诀窍是尝试跟踪高级开发人员试图管理的任务数量。在一些更复杂的项目中,一个高级开发人员可以完全被这个项目所使用,在这个项目中,您可以使用多个较小的简单项目,同时获得3个以上的项目。

答案 10 :(得分:0)

如果您的青少年缺乏时间管理技能(并非罕见),他们无论如何都需要指导,即使他们只是在一个项目上工作。很容易将不太重要的模块“镀金”带走。

答案 11 :(得分:0)

我会尽可能多地说你可以放在硬盘上。虽然这是主观的,因为你只是在项目之间潜水某人的时间/精力。

答案 12 :(得分:0)

我完全同意伊利亚的回答。切换上下文或任务会大大降低生产力。乔尔在他的网站上写了一篇关于这种现象的有趣article