碰巧有些人突然离开了公司。现在,他的工作需要完成,您将获得分配。不知道他在做什么(完成了90%还是9%),您如何处理剩菜?
- 我应该从头开始吗?如果完成90%怎么办?
- 我可以尝试了解他所做的一切吗?如果这只是胡说八道怎么办?
碰巧有些人突然离开了公司。现在,他的工作需要完成,您将获得分配。不知道他在做什么(完成了90%还是9%),您如何处理剩菜?
Answers:
为了弄清楚该做什么,您需要知道自己拥有什么,以及它的形状如何。
因此,首先快速浏览所有源代码,然后看看您拥有什么。如果清晰可见,那么最简单的方法就是完成丢失的内容。做单元测试,找出哪些有效,哪些无效。
如果不清楚的话,那就开始弄清楚新单元测试的工作原理。如果这不可能,那么请与您的团队负责人一起证明您遇到问题,并且可能无法解决问题。然后,他可以决定是否应该修复左件作品,或者它是否太糟糕而您需要重做。
除了其他人写的东西之外,我建议您与直接与该人联系的任何人交谈。从您的描述中我了解到他是一个人工作,但他仍然必须向某人报告吗?并且可能会有质量检查人员对他的作品进行了测试……(通常)这些人至少应该大致了解这个人在离开之前完成项目的程度。当然,除非他提供的信息/产品完全不可靠,否则将导致他的裁员。
与您的经理讨论此问题,并为初步研究/测试剩余代码分配时间,并了解规格和要求。对于一个项目来说,这可能大约是一天,耗时数人月,而对于一个或多个人一年的工作而言,则最多一周。
经过初步的探索之后,您应该对
然后,您可以与您的经理再次坐下来做出决定。
以我的经验,这并非罕见。不幸的是,您这里确实有两个问题:
1)该项目的遗留物2)首先陷入混乱的原因
对于(1),您需要考虑项目的规模/复杂性。如果是一周的工作,则可能需要重新开始。如果需要花费一年的时间,则可能需要查看可以从现有代码中解决的内容。
无论哪种方式,您都需要立即采取以下步骤:
a)告诉您的经理您有大问题
b)获得项目规范并全面了解您需要实现的目标-如果没有规范,请与项目发起人进行交流。
C)交谈经理/客户等,并找出是否有人有/认为他们有任何想法是什么项目的状态。
完成此操作后,您将可以开始检查代码/制定策略。
(我认为单元测试不会对您有太大帮助-它们可能会告诉您所编写的函数是否确实起作用,但是它们却没有告诉您应该在其中使用哪些函数。)
接下来,我将概述现有代码的体系结构,以及如何将其映射到规范中定义的问题。然后,研究每个主要组成部分的子组成部分,并了解它们如何适应全局。这样做可以(大致)告诉您缺少哪些组件。
一旦知道存在的内容,就需要开始检查现有的代码以查看其是否可以执行预期的工作。
完成所有这些操作后,您将可以估计还有多少工作要做。
至于第(2)部分,您的公司可能需要查看招聘政策/员工保留政策,找到使程序员对进度负责的方法。
最后,你还应该考虑你怎么能阻止这种情况发生的公司应该你匆匆离开。
您绝对需要尝试并运行该软件,以查看有效的方法和无效的方法。
然后,您需要考虑剩下的文档。有书面要求吗?是否有特定的任务-是否以某种方式跟踪任务?有没有人在测试它-如果是这样,他们会知道做了什么,没有做什么。
我认为一项行动计划将是:
标记完成了哪些需求(通过像测试人员一样快速运行系统)
查看代码-您能理解它吗?写得好吗?
显然,如果完成了90%,并且代码编写正确,则只需完成操作即可。
尚未提及。
尝试联系离开的那个人。并非在所有情况下都可行。但是,如果他很健康,并且至少喜欢他的一点点工作,他会帮助您,给您诚实的进步和缺憾的答案。他可以向您解释大局。
恭喜,这是您发光的机会,并给老板留下了非常积极的印象。您在这里拥有的是无价的机会。那么,您需要做什么以及如何做?
首先,获取代码。他可能没有检查所有内容(对我们这样做的人没有检查),因此,具有管理员权限的人将其从计算机上拔下并为您检查。
接下来对问题进行分类。记录需求并注意哪些部分似乎已经编写了代码,哪些没有。这是未完成的工作的粗略清单。随着下一步的进行,它将不断增长。然后遍历代码并对其进行评估并运行它,以查看当前正在运行的内容以及即使编写了代码也无法正常运行的内容。将不工作的部件添加到列表中。寻找单元测试(如果您发现了它们,我会感到惊讶,因为在截止日期之前就因为他们知道自己失败而放弃援助的人往往不会编写它们)。现在至少您对它的严重程度有了一个很好的了解。还要仔细查看需求,看看您需要回答什么问题。很多时候,项目失败是由于需求不佳以及开发人员不愿(出于多种原因)提出更多问题而导致的。
现在,您制定项目计划。首先列出需求中的问题(将其正式写在文档中),然后列出完成工作所需要做的事情。估计每个人将花费多少时间。确定当前存在的东西是否可挽救(如果不是,请准备证明为什么不这样做)。
现在与项目经理(和您的老板,如果他们是两个不同的人)开会,并告诉他或她坏消息。(当有人突然离开而您必须选择他们离开的地方时,这几乎总是一个坏消息,好的开发人员不会让人们陷入困境-他们至少会留下他们所做的工作和尚要做的事情的清单在您的讨论中,您可能会得到一些需要的答案,您和PM可能会稍微修改项目计划。
通过向PM和其他关键利益相关者(PM将确定谁),需要回答的问题副本以及您制定的项目计划进行跟进会议。
现在,您已经具有开始实际编码所需的知识,因此开始工作。
同时,您可能已被其他人挽救了这个项目。确保您的工作状况良好,以便其他人接听或完成项目后接听。这意味着相同类型的事情,不是您说什么已完成但没有说明什么的文档,以及所有源代码的签入(如果未完成,则不必登录到主干,而是其他人可以访问的地方) 。
如果您还没有完成现有工作,那么您需要与老板一起解决您将在工作日花费多少时间。这是可能需要加班的情况之一,我们将不胜感激。距离实际截止日期越近,管理层越拼命,如果截止日期临近,您也许可以算出加班费或巨额奖金。如果这项工作将大大延迟其他工作,那么您需要确保该项目中的利益相关者意识到这一点。
一旦您成功挽救了项目,请确保在下次性能评估中吹牛。