当您需要接管其他人的软件项目时,我想知道您的经验 - 当原始软件开发人员已经辞职时更是如此。
答案 0 :(得分:5)
我们最成功的是“维基”的一切。在通知期间,请离开开发人员帮助您记录团队/公司维基中的所有内容,看看您是否可以与他/她进行代码审查,并在执行解释部分的评论时为代码添加注释。最好是“接管”开发人员在管理员的监督下在代码中写下评论。
答案 1 :(得分:3)
原始开发人员在移交项目之前离开的情况总是最有趣的:你在一个处于未知状态的代码库中陷入困境。我总觉得有趣的是新开发人员经常尽最大努力评论代码的设计糟糕:他们忘记了旧开发人员可能遇到的限制,他们可能被迫做出的捷径。俗话总是 Old dev == bad dev 。你有什么想法: 我甚至会把这称为官方的坏习惯:对那些摆在我们面前的人说脏话。
我尝试采用尽可能多的实用方法:学习代码库,稍微闲逛。尝试理解需求和代码之间的关系,即使根本没有明确的初始关系。当你意识到为什么他们做了这样或那样的事情时,总会有“aha时刻”。如果您仍然确信某些事情是以错误的方式实施的,那么请尽可能进行重构。并隔离你无法改变的代码片段:使用模拟框架对它们进行单元测试。
向维护开发人员致敬。
答案 2 :(得分:3)
我曾经加入过一个团队,这个团队已经从外包中交出了一堆热气腾腾的垃圾。原始项目 - 基于Java,Struts,Hibernate | Oracle的多媒体内容管理器 - 结构良好(似乎是几个人的工作,结对编程,明智地使用设计模式,一些单元测试)。然后其他人继承了该项目并无休止地复制粘贴的功能,放松了业务规则,修补,分支,直到它成为一个巨大的意大利面条怪物与精细制作的代码片段,如:
List<Stuff> stuff = null;
if (LOG.isDebugEnabled())
{
stuff = findStuff();
LOG.debug("Yeah, I'm a smart guy!");
for (Stuff stu : stuff)
{
LOG.debug("I've got this stuff: " + stu);
}
}
methodThatUsesStuff(stuff);
隐藏在另一个辉煌的聪明才智中。
我通过患者重构(更多次提取方法和类)来驯服野兽,不时评论代码,重新组织所有内容,直到代码库缩小30%,随着时间的推移变得越来越易于管理。
答案 3 :(得分:1)
我不得不多次接管别人的不同质量代码。因此提示:
努力从第一分钟获取任何重要信息的结构化注释:利益相关者的名称,业务规则,代码和文档位置等。最好专注于新鲜的螺旋笔记本,这样您就可以撕页如果你不得不这样做。
利用市场上可用的更好的免费索引和桌面搜索工具之一(Google桌面搜索,MS Windows搜索将会这样做)。将所有文档,电子邮件和代码位置添加到其中。
在开发任何内容之前进行文档分析:找到可以通过网络电子方式获取的所有内容并打印出文档,努力简单地阅读它。即使在未完成的草稿中,也有非常多的有用信息。
随心所欲地思考代码,架构等。
对于较少记录和维护的系统,您不可避免地会有绝望的时刻,这可能会让您陷入拖延模式。特别是在你的头脑必须要消化的新信息量的第一天或第一周,这是压倒性的。在这些时候,有人提醒你(或者只是自己动手)让事情变得轻松,先把重点放在重要的事情上,然后再努力尝试获得理解,而不是试图向前跳跃。
记笔记,制作图表,绘制丰富的图片,思维导图。它真的有助于消化大量新信息,大多数是无组织的。
答案 4 :(得分:0)
我们实际上有一套指定的“可交付成果”,我们必须接管这个项目。
如果我们有机会,我们首先尝试推动开发项目的小组中的一个人。这样我们就可以在我们的小组接管代码之前得到一些第一手的知识。 (在@Guy所写的内容中)
话虽这么说,对我来说最重要的部分是:
这对我而言是接受代码和项目时的alpha omega