开发者

Best practices: successfully merge two software?

Let's imagine the situation:

Two PC software, two development team, two different technology (different programming language), two sets of features, but ONE objective !

I'd like to know your TOP 3 things to do first before deciding (or not) to merge the software.

My first (unsorted) ideas: Meet the other team, compare requirements, compare source code metrics, compare work in progress (bugs & features), compare developme开发者_运维问答nt methods ...

What would you start with?

Update : Adding context.

In our (recently merged) compagny, we have two non-customer software (so internal tool only) that are doing the same job. One is written in C and C++ (ugly metrics!), the other in C#. The goal of my question is not to decide now, but just have experience/intuitive feedback about what should we look at first !

Update : Adding Context on my role

I am not a manager ! I'm even not a developper of the solutions, but I would like to help the decision with methods and facts ... because I fear a kind of ... political choice from the management !


It sounds like company A has merged with company B and has two pieces of software that do the same thing but have been coded separately.

If this is the case, my advice is not to merge them at all (they're different technologies as you say. Whilst not impossible, you'll be spending a hell of a lot of money doing this).

My advice is to pick one (the most stable/most features/better designed, the list of criteria is as long as your arm is). Then pick the features from the other one that are desirable and implement them in the one you have chosen (provided the design of the one you have chosen allows this, hence 'design' being a criteria).

Ditch the other one (as far as development is concerned, you may still have to support it).

EDIT:

The definition of "best project" means different things to different people.

The users will see the best project as the one that enables them to accomplish their task in the most quick efficient manner possible.

The two development teams may well see the best project as the one they worked on. Depending on their experience, they may also favour a project that has "cool" technology going on inside it, irrespective of the end-user needs.

The management will favour whichever project is politically good for them.

It's tempting for me to tell you that it's the end-users who stand to win or lose by this decision; but it's also worth noting that the software that is "best" for the user's expectations may well be the worst from a design/coding viewpoint. So, things to ask yourself:

1) Which is best fits the bill for the users?

2) Which project has been implemented with more thought, care and design?

3) How long do I estimate bringing features from A to B, or B to a, would take?

4) Given the development resources available, which is going to be more/less difficult to develop for? Do I have more C# coders than C/C++ coders? What are the relative experiences of the development teams? How can I ascertain this information?

5) Should I split the team between developing my chosen product and maintaining the old product, or should I get the whole team involved in both? (As someone mentioned below, the maintenance team will be the first to look for new jobs. You could potentially avoid this by allowing all devs to work on both projects, but that comes with it's own problems).

6) Which project has the most documentation? If I hired a new developer, which project would he be able to get up to speed on the fastest? Which product's documentation is up to date?

7) How best should I keep the managers out of this decision whilst still maintaining their perceptions?

Like I said, this is a big question and involves even more factors than I've listed here, not least the internal politics of both companies which is outside the scope of an answer here, given we don't know (or care to know :) ) the issues involved there.


If it's two different programming languages for two programs that do the same thing then I don't see how it could be a merger. I would just pick the best project and apply all the resources from the other to it.

But hard to say given the very limited information given.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜