当您受雇为开发人员时,您通常无法选择自己的工作。它可能是一个必须编写的新应用程序,它可能是一个需要维护的旧应用程序,或者它可能是一个遗留系统,您必须插入漏洞才能保持浮动。
无论如何,有一件事总是一样的:“在完美的工作条件下,在X日期之前交付物品”。
理想情况下,您可以选择X日期(或多或少)。你估计需要完成的工作,你把它呈现给高级管理层,他们把它带给客户,客户说“不......那太晚了”管理层修改了截止日期等,所以你得到更多或者减去约会日期X的交货日期。
但有时客户来说并说“我需要在X日期之前像魅力一样工作。期!”。
现在,它可能是一个需要花费太多的开发,它可能正在修复一个需要摆脱它的痛苦的应用程序,修复需要太长时间......等等..但不能做的事情在X日期之前是人性可行的,更不用说像魅力一样。
上层管理人员不会告诉客户拿走他的东西然后去其他地方,所以你会坚持下去。无论你如何选择做这些事情,无论他们带给团队的人多少,总有一天他们会对粉丝产生影响。
你如何说服上层管理人员无法做到? (我可以加上“期间!”)
答案 0 :(得分:13)
作为一名“低级”开发人员,您无需说服高层管理人员。如果项目产生问题,高层管理人员将负责。无论如何,你报告你的意见并确保它写在某处是非常重要的,这样你就不会因为别人的错误而受到指责。之后你会尽你所能。
答案 1 :(得分:6)
那不是你的任务。上级管理层决定您可以在第X天交付,这就是它的本质。当然,它不起作用,但他们已经知道了,不是吗?尽管如此,他们仍然决定该产品将在第X天发货,这意味着在我的书中他们已经有了一个策略来处理截止日期的可预测错过。
你在这场斗智斗勇中扮演的角色是确保你不会因为延误而受到指责。因此,请确保管理层了解您的进度。同时,如果可以,让他们知道几种方式来满足截止日期。他们可能会把你拒之门外,但在截止日期之前,你会有书面证据“告诉过你”。那是为了确保他们不能把你当作廉价的替罪羊。
答案 2 :(得分:5)
我很高兴有理解团队和管理层。因此,当某些事情无法完成或者只能因后果严重时,我只是直截了当地说出来。
重要的是尽快告知,而不是在截止日期前一天。
如果其他团队成员支持您的职位并且可以发表意见以确认您的观点,这也会有所帮助。
当你提出它时,提出论据,提供解释,谈论后果。
像“如果我们这样做,代码看起来很难看”这样的东西不会削减它。
这样说“这样做需要重组模块Y,需要M周时间才能完成,N周时间需要重新测试,否则将会出现大量错误,并且客户数据损坏的可能性将更加令人信服”。
答案 3 :(得分:3)
他们的关键是他们不关心技术(你已经知道了),所以你必须解释为什么他们做关心它是不可能的:
当人们要求改变时,他们通常会想到好处而不是缺点。如果出错会怎么样?如果你破解解决方案,它会更慢或更难使用吗?他们通常讨厌“回归”这个词。
你承诺按照特定的时间表完成一些工作但是其他团队工作在相同的时间表上是一件好事吗?在你开始之前,你需要他们的任何东西吗?如果DBA不为您更改数据库视图,您是否会浪费一天?
除非您使用某些专用设备或需要更多装备才能完成工作,否则最后两种情况会有所不同。显然你无法解释非常低级别的变化,你可以显示为什么某些东西比它最初出现的更难。 “这个按钮会影响这个...那......然后这个屏幕需要更新...加上数据库和报告...”人们并不总是考虑到它的全部大小,直到它被拼写出来。
最后,要求是否明确定义?如果没有,您可以记录您将按时交付的内容,并将其他任何内容视为需要额外时间的“更改请求”。
其中一些问题的危险在于,您将获得无益或负面的声誉,这意味着兑现您的承诺非常重要。如果您提供可行的替代方案,请确保它们确实能够正常工作并按时交付。如果你说你需要额外的一周,请确保它确实需要一周或更短的时间。如果你一直都错了,你只会毫无帮助和消极。
答案 4 :(得分:2)
上级管理层不希望听到不能的内容;他们想听听可以做什么。所以告诉他们可以做什么以及在哪些条件下。这表明
答案 5 :(得分:1)
作为一名经理,我个人永远不会说“有些事情无法完成”。作为一名开发人员,我自己一直在那里,知道截止日期太紧,时间表很紧张,然后对此有一个好的老呻吟。
由于开发人员提出了您的观点,并确保您认为您认为当前资源无法满足截止日期,因此资源是您评估的关键点。然后,管理人员可以评估情况并将内部或外部资源汇集在一起,以满足客户的要求。通过这种方式,责任明确地放回到经理手中,您可以尽力完成项目的一部分。
最终,这就是现实世界中的发展。在业务和基于利润的决策的压力下,将代码写入紧迫的期限。
答案 6 :(得分:1)
首先,它有助于了解日期为何无法移动。有时会有外部因素影响到这一点(7月1日起他们必须遵守的新法律就是一个例子)。如果你知道为什么,你可能会更好地在截止日期前给他们提供他们需要的东西,并在稍后提供相关但不是关键的项目。
接下来认识到管理层正试图让客户满意。当客户出现问题并且客户目前不满意时尤其如此。您可以提醒经理,客户通常会比按时交付的错误产品更快地提供可靠的应用程序。
关键是要让人们尽快知道,为什么截止日期不起作用(不是前一天!),可以做些什么呢(会有更多人帮忙吗?是某些共享资源(dbas,测试人员) )如果管理层愿意,可以将其优先级更改。可以将发布版本分成两部分吗?)如果您同意截止日期,然后出现意外问题,请通知经理并尽快通知客户知道这些事件的影响,比如测试发现了一个模块,你的改变破坏了没人计划最初触摸,或者开发人员有家庭紧急情况而其他人不得不接管,但你必须等到一些更高优先级的工作完成,等。
如果一般情况下截止日期永远不会奏效,那就有点棘手了。创建项目计划,显示生成最终结果所需的步骤以及每项任务将采取的时间。显示当前分配给项目的人员的可用时间以及他们还可以分配给他们的其他工作时间(以及其他任务的优先级)。然后当很清楚那个小时做任务时>小时可以做任务,问他们需要做什么。大多数情况下,他们会在截止日期前移动或削减部分要求或缩短测试时间。如果测试减少了,那么请确保将这样做的风险转嫁给他们。现在这通常应由团队负责人完成,作为开发人员,您只能向他提供一个输入,让他自己参与项目并询问他该做什么。重要的是以书面形式完成所有这些工作,因为它记录了在满足截止日期时发现的问题。通过手头的项目计划回到客户端也更容易,并向他们展示满足截止日期的问题。管理人员会忽略对截止日期的抱怨,但更难忽略一份文件,清楚地说明为什么截止日期不起作用,并特别询问如何解决问题。
答案 7 :(得分:0)
“我需要在X日期之前像魅力一样工作。期间!”可以处理以下框架。我知道Y准备好X对你很重要,但不幸的是我们无法满足这个要求。我能为您提供的是X by Z的一部分。