it-swarm.cn

程序员同时从事多个项目是否正常?

在目前的工作中,我有两个项目需要处理。第一个是非常庞大的系统,第二个较小,但规模也很大(第一个项目的开发时间为12年,第二个项目的开发时间为4年)。

起初,我只从事第一个项目,并试图适应它。然后我被转移到第二个项目并在那里尝试,所以我对第一个项目的了解变得阴暗。现在,我必须同时处理两个项目。

这对我来说很难,因为尽管它们都使用Java,但是它们使用不同的框架,并且要理解的代码和业务逻辑的数量非常大,所以我真的不能将这两个项目都放在脑海中。

这是正常的,我应该习惯了,尽管我的专长变得非常谦虚,但是如果我只从事单个项目,那怎么办?还是我应该引起关注或更换雇主?

40
user1449

当人们说“是的,多任务处理很正常”时,我完全不同意/

不是正常!完全没有,对于开发人员来说,在多个项目中执行多任务是非常不自然的(我将在后面解释)。另一方面,在开发人员中,多任务非常common。这绝对是您应该习惯的东西。因此,您问题的真正答案是:如何执行多任务?/

首先,您不应该简单地接受命运,因为“您是如此出色的员工”,这意味着您需要承担更多的任务。一点也不,你没有。有时人们被赋予多项任务,因为没有其他人。有时经理无法处理他们的工作,因此他们委派了他们的团队,因为they无法正确处理项目进度。因此,您绝对应该尝试确定您是否被要求执行多任务,是因为这是您工作的一部分,还是因为其他人不称职。无论哪种方式,您都可以自己判断是否可以接受。如果您对工作不满意,可以在其他地方找到工作。 [您,开发商,是商品。雇主知道这一点,并祈祷您永远不会意识到这一点。]

现在关于多任务处理,当人们说“是的,请来回切换并确保您在每个项目上所做的工作量相同”时,我不同意100%。对不起,但这是一个非常糟糕的建议。

首先,您必须在开发软件时意识到大脑是如何工作的(我知道还涉及其他任务,但让我们专注于该任务)。首先,您需要“接线”,这意味着您需要集中精力,将思维定在脑海中。所有变量和方法名称,代码的工作流程,对象模型,并排的线程等等。通常我需要15到20分钟才能到达“区域”。

当您达到这种状态时,您实际上就像在骑自行车一样,正在飞翔并编写代码。一旦被打扰,您可能会失去全部。如果中断时间足够长(5、10或30分钟),您将失去这种心理状态,必须重新开始。

因此,多任务处理很可怕,因为它迫使您离开“区域”并继续前进。如果您不断切换,则意味着您效率不高,因为每次更改为新任务/项目时,您都需要浪费15-20分钟才能再次进入该区域(更不用说它会慢慢融化您的大脑)。

就像多线程:在某些时候,每两个周期切换线程上下文的成本太高,因此CPU最终要花费比执行真实任务更多的时间来切换上下文。

我强烈建议您阅读Joel Spolsky关于此事的文章:

http://www.joelonsoftware.com/articles/fog0000000022.html

所以我的建议是:尝试学习如何(而不是)多任务,因为这确实很常见。但也要确保自己习惯。有些人可能会花费更多的时间专注于工作,并且在进行多任务处理时会比其他人遭受更多的痛苦。也没关系。这不是因为通常认为它是正常的。

乔尔说得很好:

实际上,这一切的真正教训是,您永远不应让人们一次完成一件以上的事情。确保他们知道这是什么。优秀的管理者将责任视为消除障碍,使人们能够专注于一件事情并真正完成它。

54
Alex

是的,这是预料之中的。欢迎。

有几种方法可以查看此情况:

  1. 预计您将执行多项任务,几乎无法集中精力。这会导致工程流程欠佳,来回切换时会引起混乱,被人利用,沮丧,压力等。这当然是消极的。然而,

  2. 您被多个项目所信任,这很好地反映了您所产生的结果以及雇主对您的能力的信任。这是向他们展示信任的必要机会。

我的建议是发展清醒的判断力哪些任务需要您的直接关注,哪些可以等待。有时答案是,两者都不能等待,您需要采取创造性的方法来提供结果(对项目A进行一些操作,对项目B进行一些操作,然后冲洗并重复)。培养在这种情况下壮成长的技能。

通常(尽管并非总是如此),这将获得更多的责任,更多的项目玩弄和更多的期望。在某个时候,您将能够并期望委托其中的一些工作。 这是衡量成功的标准。

因此,即使您不断发展的杂耍技能仅被您当前的公司所利用,这些都是很好的技能,将在您的职业生涯中为您提供良好的服务。

对于它的价值,我通常从事一个大型项目,一个较小的项目,旧项目的维护和支持以及至少管理另一个项目。这令人沮丧,困惑,烦人,我非常感谢。

33
b w

是!在服务公司xD上工作时,这完全是“正常” /正常情况

另外,如果您与开源项目合作,那就是规则

也许不是理想状态,而是每天的面包。

15
yeradis

很常见但这并不是很好,因为您已概述了原因。切换上下文会影响生产力,因此,如果可以的话,请尝试在一个项目上花费大量时间,例如一天。

12
Anthony

我每天都会积极参与2到3个不同的项目。并保持几十个。几个星期来,它有点压倒性的。有些项目很大,有些很小,所以几天就被编码了,很少需要更改。它虽然千差万别,但使我接触到不同的思维方式和解决问题的方式,不同的技术和业务领域。我很享受。

因此,要回答您的问题,是的,这很常见。

9
CaffGeek

请查看名为 多任务稍后使您到达 的文章。该图说明了这个故事:

enter image description here

换句话说,公司浪费了时间,让他们的程序员一次处理一个以上的项目。仅执行三个项目,浪费就是40%!其余时间分为三个项目。

多任务处理的原因通常被称为“完成更多工作”。但这是错误的推理。多任务处理只会导致延迟所有版本。下图显示了双重任务与一次完成一个项目的效果:

enter image description here

(图像完全忽略了开销。实际上,浪费的时间会使两个项目都晚了20%。)

8
Martin Wickman

是的,根据我的经验,这是正常现象(即使某些“项目”非常相似,例如同一产品的维护和功能项目)。为避免冲突和不切实际的期望,请与项目经理和您的经理达成共识,将您的时间分配给每个项目(例如,在X项目上为三天,每周在Y项目上为两天)。然后,您通常可以按自己的喜好分配这些分配,例如X星期一至三,Y星期四至星期五。

有时候,有一个项目“抛出异常”并且需要在现在上工作。这里有两件事要做:

  1. 确保确实是一个例外,而不仅仅是一个棘手的项目经理:在后一种情况下,请推迟。
  2. 交换您的时间分配,这样您就可以在每个项目上保持相同的分数。
4
user4051

这取决于公司。 IMO只希望只在一个项目上工作,但这通常是不可能的,尤其是对于小型公司。

当然,错误修复等总是可能发生在任何项目中。

4
user281377

如果您发现在切换回项目时很难恢复项目的框架或业务逻辑,那么您应该趁此机会编写尽可能多的文档。用您自己的话说,详细描述复杂系统的工作方式将使以后返回项目变得容易得多。另外,如果您的同事需要帮助,则此文档可能会对他们有所帮助。

如果该项目已经很好地涵盖了技术文档,那么在进行复杂的工作时写下您的想法仍然是有益的。这样,下次下次切换时,您就可以开始思考。

3
Matt G

好吧,这不应该是正常的,但是在我目前的雇主那里,我有很多项目要承担。我承认,这需要一些时间来适应。我可能给出的最重要的提示是,始终将工作放在优先位置。强迫老板告诉您什么是优先任务,然后仅执行该任务。不要因为抱怨您的其他项目的人而承受压力。您不一定需要更新简历,但要确保工作负载不会超出您可以合理处理的范围。

2
ChaosPandion

我认为这很正常。我现在的工作方式(我在一家拥有约40名开发人员的公司中,公司总规模约为700名)。而且我通常有一个“长期”项目,其中会出现许多小票/缺陷,因此最终通常是50%的小票和50%的长期项目工作。可能困难的是,持续的中断会减慢并使长期项目脱轨。

0
Bmw

我认为在多个项目上工作是正常的。关键是要接受您最初将在系统的总体外观方面面临一些歧义。

如果您试图获得更大的图像,那么您将获得清晰度,并能够发现系统中的移动/固定部件以及您的更改如何影响系统。

在一段时间内,您将学习在所使用的各种系统中找到通用模式。您可以将这些应用到您的其他项目,这将减少您一次需要保存在头脑中的详细信息量。

0
Pradeep

在任何非平凡的项目中,都分配了一个以上的人。这意味着您需要与他人合作并等待他人完成工作,以及他们也需要等待您。

而不是让人们闲着,而是经常有多个项目处于活动状态,以便在需要时总是有一个开放的任务要做。

您仍应在每个项目上以相当大的块进行工作,以使您可以“在区域内”并富有成效。

0
user1249