项目太难?你该怎么办?

33

当你被分配到一个过于困难的项目时,你会怎么做:

  • 说这是一个巨大的项目,而你的老板认为你一个人可以处理它
  • 你有一些能力去做某些事情,但是有些事情现在超出了你的专业知识范围
  • 你的老板可能认为这是一个一个人在一个月内就可以完成的事情

SO用户们,我希望得到真实的答案。这是一个现实世界中的情况,我正在尝试想出如何委婉地与我的老板沟通。


我只想在这里添加一个更新说明。我老板关注的应用程序类似于"Ning"的Web应用程序。我犹豫主要是因为我是唯一被分配到这样一个复杂应用程序的人,并且时间非常紧迫。


3
哇,一个通用的、多目标的社交网络应用在一个月内完成?他是认为婴儿两周就能出生吗?如果这是准确的话,那这显然是一种严重的一厢情愿的想法。 - Greg D
29
两周内有宝宝?那需要9个月的孕期,你将需要18位女性。这是可行的! - epochwolf
@Greg GetAFreelancer.com有人可以在30天内以$500的价格完成这项工作!来吧,http://www.getafreelancer.com/projects/Java-Javascript/Social-Networking-Site.html - Chad Grant
也许只需使用NING...也许他想使用它来构建一个定制的网站,每月60美元。 - nycynik
这是一个非常好的问题,因为我现在也面临着一个非常相似的情况。在这种情况下,似乎没有尽头... - IgorGanapolsky
15个回答

29

由于工作本质的原因,每个人都需要定期处理这种情况。(通常,如果你知道完成工作所需的所有内容,那么你已经完成了该工作,不需要再次执行。 :))

  1. 向你的老板坦诚你的焦虑情绪。你的经理需要了解你对项目风险概况的评估。很有可能你仍要去做它,这没关系!这是你展现才华的机会!:)

  2. 将问题分解为你理解和不理解的任务,然后一步一个问题地解决。我个人喜欢在简单和困难的任务之间交替进行。完成简单的任务帮助我在直觉上感到正在取得实际进展,这对我的个人动力至关重要。完成困难的任务可以更早地解决潜在的问题区域。通过更早地评估未知领域而缓解项目末尾的风险。这也有助于减轻你的压力,因为你知道已经开始了项目中可怕的部分。记住,你不了解的领域才是你真正面临进度/预算滑坡风险的地方。你需要尽早和经常降低这些风险。和你可以咨询学习如何做这些事情的同事一起开始推动项目。

  3. 一个月的目标可能只是个目标。我认为在一般情况下期望人A实际上估计出人B任务完成的时间是不合理的。为了跟踪自己对目标的进度,设置 Measurable(可衡量的) 里程碑,每个里程碑不超过16小时/2天,并跟踪你的完成率。这与你的简单/困难任务列表紧密相连。

简单来说,有时候你会陷入自己无法应对的情况。这种情况下,你可能需要尽力应对这种压力。我毕业后的第一份工作就是设计一个可靠的、面向事务的、点对点的n路高容量、高速率数据服务器同步系统。我一开始就告诉我的老板我没有这方面的专业知识,而当时我还没有足够的经验去理解我需要反驳需求。回顾起来,在当时的政治环境下,我不知道反驳要求是否真的有帮助(项目最终需要18个月才能在自身的重量下崩溃)。然而,我仍然利用这个机会学到了很多,并且对我所在组织的工作方式有了一些了解,而这些知识不论何时都非常有价值。 :)
祝你好运!
编辑后的回答:
好的,如果我正确地理解了您的更新,则我们肯定处于第4种情况。在一个月内创建Ning的竞争者根本不现实。我假设您在与懂得软件开发基础的人打交道。基于此:
1.请老板更明确需求。或许(祈祷吧!)你只是误解了被要求做的事情或者项目的范围。在社交方面,总是假设对方有能力。也许你只被要求设计一个整体的构思和一些非常简单的概念证明?
2.如果你的老板真的脱离了现实,那就跟他/她一起在白板或共享纸张上制定一个合理的、15分钟的初步估算。这应该很容易让你找到完成这个项目需要花费更多时间的漏洞。也许你的老板认为你可以重用一些你不知道的内部代码?这将揭示你的经理在项目范围方面所做的任何错误假设。
  • 如果你的老板非常不讲理(这种情况并不经常发生,但偶尔会出现——也许公司需要在月底前推出一款杀手级应用程序以避免破产),那么为内部或外部组织的调动准备好你的简历(取决于你所在的公司有多大)。那样的不切实际期望可能是组织绝望或故障的迹象,你所在的职位可能在三个月后就不存在了。


  • 希望第一件事是真的。我今天刚拿到文档,感觉非常震撼。我会尝试第二件事,但以防万一,我已经开始使用Monster了。 :( - Worried
    是的,现在很多地方都处于困境中。 :( 我所在的软件组织本周裁员约40%,几个月后还会有更多。一次性裁掉了200多个研发工作岗位。 :( - Greg D
    1
    很有可能你还是得做这件事。但是万一他说“你做得太慢了”,就会给你下岗的理由。 - IgorGanapolsky

    10
    1. 不要惊慌。你可能误解了你的老板的目标。如果他只说“像Ning一样”,听起来他表达得不是很清楚。

    2. 研究Ning。Ning能做什么?在Ning的资源链接中,列出了至少21个社交网络主要功能。

    3. 撰写这个项目的高层次目标声明。包括Ning列出的所有功能。还包括一个应该服务多少用户的目标。不要试图考虑如何解决这些目标和任务需要多少程序员或需要多长时间。只需列出它们。将此撰写内容保持在一页或两页。

    4. 向老板展示列表。问他,“这是否符合您的初衷?”提出几个直接问题以确保他已经查看了你的写作:

      • “这个应用的目标用户是谁?”
      • “每个月有多少新用户注册?”
      • “我们需要支持多少可用性?”
      • “我们为托管这项服务的预算是多少?”
      • “这个应用程序需要支持国际用户吗?”
      • “这个应用程序的最终用户许可协议是什么?”
    5. 此时可能会变得清晰,你的老板比你想象的目标更加谨慎。也许他并不打算完全复制Ning的所有功能和规模。因此,现在的任务是让老板更清楚地表达他需要哪些Ning功能的子集。

  • 安装DrupalJoomlaWordPress,下载一些插件,并为您的老板设计一个定制网站。这可能会满足他99%的需求,并且这是您能够在一个月内完成的唯一方法。


  • 当然可以。就我个人而言,我会看看 ELGG http://www.elgg.org/about.php 是否能够胜任这项工作。 - timday
    1
    事实上,另一个选择可能是Ning.com。 :) - Bill Karwin

    5
    不要以“不行”、“做不到”或者其他你在帖子中说的话开头。大多数公司的管理人员甚至不了解编程项目所需的努力程度,需要一些关于软件规划估算的教育。
    我建议进行以下对话步骤:
    - 估算:审查你认为必须完成这个项目所需的努力程度。确保你已经详细思考了任务,以便你可以回答问题。 - 教育:如果你的上司不理解为什么某些事情需要花费一定的时间,请尽可能清楚地解释(好的类比通常有帮助,不好的类比可能会产生毁灭性后果)。 - 替代方案:如果你认为有一些折中方案或者能够满足项目需求的子特性集,请讨论这些替代方案。管理人员讨厌听到雇员说某些事情很难或者困难,他们想要可行的选择。 - 对齐:你确定你和你的上司对这个项目有相同的期望吗?也许你把它看作是一款使命关键的软件,而你的上司将其视为现有工具的轻微增强。确保你们都有相同的期望;否则,你可能在计划比被要求的更复杂的软件。

    但是当员工没有可行的选择时,该怎么办呢? - rahul
    根据我的经验,很少有无法达成某种妥协的情况。也许可以采用分阶段实施的方式,最初只发布部分功能。唯一不能妥协的情况是,当你没有能力交付所请求的功能子集,或者你的老板既愚蠢又邪恶时。 - jellomonkey
    1
    当看到“Alignment”这个项目时,我是不是唯一一个想到“混乱中立”的人? - Erik Forbes

    4
    我在软件行业中学到的最重要的一点是如何“反击”。
    这并不总是意味着说“不”。它意味着提供您对新工作影响的最佳估计。无论您是说“是”还是“否”,都可以说:“我们可以做到,但需要(x、y和z资源)。我认为需要(n天我,nb人*a)来理解问题b),但我知道如何处理(c、d和e)。我以前从未解决过问题b,因此我不知道我的估计是否现实。”
    “是”和“否”的区别在于成本方程是否可接受。
    任何好的经理都会尊重您的分析,质疑您的某些假设,期望重新思考一轮,然后接受风险,找到额外的资源或放弃项目。
    如果他们说“我明白你的意思,但是你仍然必须完成不可能的任务”,那就开始寻找另一份工作吧。

    2

    你的老板可能不理解实情吗?只需与他谈论项目的要求,并提及可以和不可以做的事情。


    2
    这是我制定的计划:
    1. 不要惊慌失措,回应老板并告诉他您想审核请求,并会在短时间内提出问题和关注点。
    2. 仔细阅读规范(如果没有规范,则阅读电子邮件或将请求写下来),为每个交付项创建工作分解结构。此操作应完成到可理解每个项目的级别(用户登录、消息输入等)。
    3. 对于每个项目,根据您的知识、问题、风险等估算工作量和+/-%数量。
    4. 在阅读规范时,创建一个重要问题列表(此面向多少人?是否包含用户即时通讯的功能等)。
    现在您拥有一个大致的时间表、风险评估和问题列表,可以与老板一起审查。他会看到您已经付出了一些努力,可能会认识到复杂性并且会对您有信心,而不是只是简单地反应。他可能仍然会要求您在他提供的时间框架内完成任务……寻找另一个工作吧,您至少有一个月的时间。

    1

    你所说的是,你对任务范围和复杂性的理解与你的老板的理解大相径庭。很好。

    很可能,你们两个都错了:你误解了需求,老板低估了任务或陷入了愿望思维的陷阱。

    最好的方法是再次与你的老板一起审查要求,确定需要交付什么,尝试估计交付这些所需的时间和资源量。如果你觉得自己缺乏实现中的某些技能或经验,请明确说明,并在假设你必须花费资金从外部寻找这些技能(这至少会给你一个市场价格的想法)的前提下进行工作。

    我相信,你和你的老板花费的讨论和研究项目的时间越长,讨论将变得更加详细,对可行性的更好的理解也会浮现出来。

    最糟糕的事情就是保持沉默。任何优秀的老板都依赖于开发人员提供有关项目的评估:要么是肯定的,要么是更多的问题。

    你不必说“不”,这不是你的工作决定是否继续进行,但你必须问好问题。


    0

    这取决于你与老板之间的关系。如果可以的话,我建议你坦诚相告。告诉他们有几件事情超出了你的专业水平,需要进行一些研究,从而延长项目时间。并强调你不认为你能在一个月内完成,并请求一个团队来协助。

    也有可能你的老板没有真正理解项目的全部范围。 如果你可以将其拆分成任务清单或部分列表,展示出需要投入多少工作量,他们可能会明白你的立场。

    最终,如果你的老板仍然要求你完成该项目,那么就一直强调你会尽力而为,但无法保证交付期限。


    0

    你需要跟你的老板保持现实。如果你能在项目上超额交付,而不是在过于紧凑的时间表下未能交付,那么你会获得更好的结果。


    0

    你必须诚实地告诉老板有一个问题。但是,你需要展示这个问题的具体程度,以免听起来像一个等待解雇通知的无能之辈。

    你需要仔细分析要做什么,并将其分解成小部分,看看哪些部分你可以做,哪些部分你不能做。在项目中有一些看起来可能但难以完成的部分是很正常的,每个正常的老板都会理解。

    这样你就能表明问题不是想象出来的,也不是你想为微不足道的工作得到高薪水的愿望。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接