让我们想象一下情况:
两个PC软件,两个开发团队,两个不同的技术(不同的编程语言),两套功能,但一个目标!
在决定(或不决定)合并软件之前,我想先了解你要做的三件事。
我的第一个(未分类的)想法:与其他团队会面,比较需求,比较源代码指标,比较正在进行的工作(错误和功能),比较开发方法......
你会从什么开始?
更新:添加上下文。
在我们(最近合并的)公司中,我们有两个非客户软件(仅限内部工具)正在执行相同的工作。一个用C和C ++编写(丑陋的指标!),另一个用C#编写。 我的问题的目标不是现在决定,而只是有关于我们应该首先看什么的经验/直觉反馈!
更新:在我的角色上添加上下文
我不是经理!我甚至不是解决方案的开发者,但我想用方法和事实来帮助做出决定......因为我担心管理层的某种......政治选择!
答案 0 :(得分:6)
听起来公司A已与公司B合并,并且有两个软件可以做同样的事情,但是已经单独编码。
如果是这种情况,我的建议不是将它们合并(它们就像你说的那样是不同的技术。虽然并非不可能,但你会花很多钱来做这件事)。
我的建议是选择一个(最稳定/最多的功能/更好的设计,标准列表与您的手臂一样长)。然后从另一个中选择所需的特征并在您选择的特征中实现它们(假设您选择的特征允许这样设计,因此'设计'是一个标准)。
抛弃另一个(就开发而言,你可能仍然需要支持它)。
编辑:
“最佳项目”的定义对不同的人意味着不同的东西。
用户将看到最好的项目,使他们能够以最快捷的方式完成任务。
两个开发团队可能很好地看到他们所工作的最佳项目。根据他们的经验,他们可能也喜欢在其内部使用“酷”技术的项目,无论最终用户需求如何。
管理层会支持那些对他们有政治利益的项目。
我很有诱惑力地告诉你,这个决定是赢或输的最终用户;但值得注意的是,从设计/编码的角度来看,用户期望“最佳”的软件可能是最糟糕的。所以,要问自己的事情:
1)哪个最适合用户的账单?
2)哪个项目已经实施了更多的思考,关怀和设计?
3)我估计从A到B或B到a的功能需要多长时间?
4)鉴于可用的开发资源,开发的难度是多少?我有比C / C ++编码器更多的C#编码器吗?开发团队的相关经验是什么?我如何确定这些信息?
5)我应该在开发我选择的产品和维护旧产品之间分配团队,还是应该让整个团队参与其中? (正如下面提到的那样,维护团队将是第一个寻找新工作的人。你可以通过允许所有开发人员在这两个项目上工作来避免这种情况,但这会带来它自身的问题。)
6)哪个项目的文档最多?如果我聘请了一位新开发人员,那么他能够以最快的速度加快哪个项目?哪个产品的文档是最新的?
7)在保持观点的同时,我应该如何最好地让管理者摆脱这个决定?就像我说的,这是一个很大的问题,涉及的因素比我在这里列出的更多,尤其是两家公司的内部政治,这些都超出了答案范围,因为我们不知道(或者关心:)那里涉及的问题。
答案 1 :(得分:2)
如果两个程序的两种不同的编程语言做同样的事情,那么我看不出它是如何合并的。我会选择最好的项目并将其他资源应用到其中。
但鉴于给出的信息非常有限,很难说。