Лучшие практики: успешно объединить два программного обеспечения? - PullRequest
0 голосов
/ 10 января 2011

Давайте представим ситуацию:

Два ПО для ПК , две команды разработчиков, две разные технологии (разные языки программирования), два набора функций, но ОДНА цель !

Я хотел бы знать, какие ТОП-3 нужно сделать, прежде чем принимать решение (или нет) о слиянии программного обеспечения.

Мои первые (несортированные) идеи: познакомьтесь с другой командой, сравните требования, сравните метрики исходного кода, сравните работу в процессе (ошибки и функции), сравните методы разработки ...

С чего бы вы начали?

Обновление: добавление контекста.

В нашей (недавно объединенной) компании у нас есть две программы, не предназначенные для клиентов (только внутренний инструмент), которые выполняют одну и ту же работу. Один написан на C и C ++ (уродливые метрики!), Другой на C #. Цель моего вопроса не состоит в том, чтобы решить сейчас, а просто иметь опыт / интуитивно понятный отзыв о том, что мы должны смотреть сначала !

Обновление: добавление контекста для моей роли

Я не менеджер! Я даже не разработчик решений, но я хотел бы помочь решению с методами и фактами ... потому что я боюсь своего рода ... политического выбора со стороны руководства!

Ответы [ 2 ]

6 голосов
/ 10 января 2011

Похоже, что компания A объединилась с компанией B и имеет два компонента программного обеспечения, которые делают то же самое, но были закодированы отдельно.

Если это так, мой совет не совмещать их вообще (как вы говорите, это разные технологии. Хотя это и не невозможно, вы потратите на это немало денег).

Мой совет - выбрать один (самый стабильный / большинство функций / лучше разработанный, список критериев такой же, как ваша рука). Затем выберите нужные функции из другой и внедрите их в ту, которую вы выбрали (при условии, что дизайн, который вы выбрали, позволяет это, следовательно, «дизайн» является критерием).

Откажитесь от другого (что касается разработки, возможно, вам все равно придется его поддерживать).

EDIT:

Определение «лучший проект» означает разные вещи для разных людей.

Пользователи увидят лучший проект, который позволит им выполнить свою задачу максимально быстрым и эффективным способом.

Две команды разработчиков могут хорошо видят лучший проект как тот, над которым они работали. В зависимости от своего опыта они могут также отдать предпочтение проекту, в котором реализована «крутая» технология, независимо от потребностей конечного пользователя.

Руководство отдаст предпочтение любому политически выгодному проекту.

Для меня заманчиво сказать вам, что именно конечные пользователи могут выиграть или проиграть в результате этого решения; но также стоит отметить, что программное обеспечение, которое является «лучшим» для ожиданий пользователя, вполне может быть худшим с точки зрения дизайна / кодирования. Итак, спросите себя:

1) Что лучше всего подходит для пользователей?

2) Какой проект был реализован с большим вниманием, тщательностью и дизайном?

3) Сколько времени, по моим оценкам, займет перенос объектов из A в B или B в a?

4) Учитывая имеющиеся ресурсы для разработки, что будет более / менее сложно разрабатывать? У меня больше кодеров C #, чем кодеров C / C ++? Каков относительный опыт команд разработчиков? Как я могу получить эту информацию?

5) Должен ли я разделить команду между разработкой выбранного продукта и обслуживанием старого продукта, или я должен привлечь всю команду к обоим? (Как упомянуто ниже, команда по техническому обслуживанию будет первой, кто будет искать новые рабочие места. Вы могли бы избежать этого, позволив всем разработчикам работать над обоими проектами, но это связано с собственными проблемами).

6) Какой проект имеет больше всего документации? Если бы я нанял нового разработчика, какой проект он смог бы набрать в скорости быстрее? Какая документация по продукту актуальна?

7) Как лучше всего не давать руководителям принимать это решение, сохраняя при этом их восприятие?

Как я уже сказал, это большой вопрос и включает в себя даже больше факторов, чем я перечислил здесь, не в последнюю очередь внутреннюю политику обеих компаний, которая выходит за рамки ответа здесь, учитывая, что мы не знаем (или все равно:)) вопросы, связанные с этим.

2 голосов
/ 10 января 2011

Если это два разных языка программирования для двух программ, которые делают одно и то же, то я не понимаю, как это может быть слияние. Я бы просто выбрал лучший проект и применил к нему все ресурсы другого.

Но трудно сказать, учитывая очень ограниченную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...