准备源代码移交计划


12

我们公司即将获得一个巨大产品的源代码。

开始移交时要考虑哪些事项,以确保我们拥有一切并能够在将来维护该产品?


1
如果可能的话,请一些从事该项目的工程师要求收购。这将有助于解决资源连续性问题。
tehnyit,2012年

我们还不够幸运。我们不能做的最大事情就是让一些工程师在3-4周内待命。
艾哈迈德·阿斯瓦尼

我找到了一个相关的答案,我认为它可以完成此处大多数答案。
艾哈迈德·阿斯瓦尼

Answers:


8

首先祝你好运。

以下是您可能需要/提供的一些东西。

  • 已知缺陷列表。
  • 事件和问题记录列表。
  • 最后两个版本的详细信息如下;他们实施需要多长时间,发布后是否有一段时间事件增多等?
  • 谁是关键主题专家。
  • 营业时间和主要支持时间是多少?
  • 产品存在了多长时间了,代码库的稳定性如何。
  • 什么是产品路线图。
  • 什么是技术堆栈。
  • 集成点是什么,谁支持集成系统。
  • 是否有任何DR组件
  • 谁负责调用DR
  • 什么是应用程序SLA或服务目标。
  • 文件系统/数据库/消息队列的预期增长是多少?
  • 什么时候执行系统备份,谁来负责,什么是恢复策略。
  • 谁负责管理产品积压。
  • 有哪些供应商SLA和联系方式。
  • 是否有任何批处理时间表或长期运行的流程。
  • 系统是完全事务性的,并且如何管理并发性。
  • 什么是应用程序的主要事件管理过程。
  • 利益相关者在什么时候,什么时候,谁以及如何得知变化和中断。
  • 约定的中断时间/次数是多少?
  • 源代码保存在哪里。
  • 如何对源代码进行备份,还原和更改日志管理。
  • 解决方案体系结构的位置,位置和所有者。
  • 部署目标是什么(DEV,ST,UAT,PROD,PROD,DR)。
  • 第三方许可证何时续签。
  • 有RACI图吗
  • 那里有多少用户,他们在哪里。
  • 什么是常见的故障排除问题或投诉。
  • 谁负责授予系统访问权限。
  • 什么时候进行笔电测试/安全审核。
  • CI和自动构建过程在哪里。
  • 谁负责管理源代码管理和构建服务器。
  • 安装指南在哪里。
  • 是否有关于目标基础架构和网络的文档。
  • 最近发生的事件的严重性和影响类型是什么?
  • 是否有开发人员工作站安装说明。
    • 使用了哪些开发助手和框架,并已为您的团队授权使用它们。

目前,这就是我能想到的。


8
请定义“ DR”,“ DEV,ST,UAT,PROD,PROD,DR”和“ RACI”。请注意,其中一些与源代码无关(即,RACI图表是组织性的,与代码完全无关。)
S.Lott 2012年

我想访问whoel源代码存储库,而不仅是源代码的当前版本。其中的注释通常会告诉您为什么要以特定方式更改代码。这对于iknwo维护它很重要。
HLGEM

@HLGEM对不起,我对当前源代码版本的声明暗示(无论如何对我来说)所有组件的完整源代码。
凯恩

@ S.Lott DR用于描述“灾难恢复”。开发是“开发环境”的通用术语,无论您的环境包括什么。ST是系统测试环境的缩写。我不同意RACI是一种组织工具,因为它用于描述谁负责,负责,知情和接受咨询。那么,在提交代码时由谁负责呢?在同行评审中会咨询谁?谁被告知构建成功/失败?依此类推
凯恩

@kame:请使用定义更新答案。请不要在答案中添加更多评论。请更新答案。
S.Lott 2012年

6

开始移交时要考虑哪些事项,以确保我们拥有一切并能够在将来维护该产品?

您应该确保的事情是:

  • 您会看到他们成功构建代码
  • 您会看到他们建立单元测试并全部通过
  • 您会看到他们成功执行了其他测试,并且全部通过(接受,集成等)
  • 您可以获得未解决问题的数据库(如果他们使用Bugzilla或类似工具,则很容易获得)
  • 产品运行(安装说明)。

其他一切取决于当前的维护者。


2
我建议将其修改为带有“您必须看到它们...”的字样,例如“您必须看到它们构建代码”和“您必须看到它们运行单元测试”等。在这里,证据很重要。
S.Lott

@ S.Lott无论显示还是写在文档中,都没有关系。艾哈迈德·阿斯瓦尼(Ahmed Aswani)和他的团队将维护该应用程序,并且应该能够自行完成上述所有步骤。我对答案做了一些修改,但是我不确定这是否是您的建议。
2012年

1
声称代码已构建与实际看到代码已构建不同。到过那里。做到了。文档可能含糊不清,混乱或不完整。这是古老的“信任但验证”原则。除非您看到它,否则请不要相信。
S.Lott 2012年

1
@ S.Lott Ok很有道理。现在我想到了,以前我也处于类似的情况,他们使我们在损坏的硬件板上实施了某些措施。我们花了4个月的时间才弄清楚真正出了什么问题。
2012年

5

您需要确保团队交出的代码将在一段时间内提供支持。签署合同!

稍后您将有一个问题,即您不知道必须先提出要求,因此他们需要“坚持不懈”向您解释内容,而不仅仅是提供代码,文档以及他们在项目中拥有的任何东西。

当您进行项目移交时,您会失去一件重要的事情:原始的团队经验。

有时您还会得到意料之外的东西:他们的敌意。

进行移交的公司对移交有很好的处理吗?如果他们因为将项目交给您而失去了业务,那么创建代码的(骄傲的)开发人员可能会反感他们的“孩子”被放弃的事实。您可能会收到类似以下内容的响应:“它在您获得的文档中”……即使不是。

技术方面的内容不错,但也要考虑到它的人性化方面。

YMMV!


0

该代码是否带有测试套件?测试套件中的所有测试都通过了吗?套房覆盖多少?

我建议您,在缺少测试套件的情况下,将构建测试套件和相关框架作为第一要务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.