Я думаю, что это действительно зависит от размера вашей команды (групп) и того, что вы хотите от контроля источников.
Я использовал bugzilla в сочетании с Perforce в течение нескольких лет и обнаружил, что оба очень хорошо разбирались в своих собственных вещах, работая в очень небольшой команде (2-3 человека), но страдали от отсутствия интеграции между ними и какими-то маленькими идиосинкразиями, к которым потребовалось время, чтобы привыкнуть.
Недавно я перешел на новую работу, где TFS широко используется. В этой компании 4 основные команды с 10-12 разработчиками в каждой, разделенные на дальнейшие проектные команды ниже этого уровня, и именно в такой среде TFS действительно блестяще выглядит. На мой взгляд, это самые большие преимущества:
1) Интеграция с Visual Studio - это не просто случай открытия меньшего количества окон, но действительно ускорение и упрощение вашей жизни. Такие вещи, как VS, автоматически проверяют файлы для вас во время работы (нет проблем со случайными извлечениями из-за редактирования без блокировки), имеют возможность синхронизировать локальные сборки + TFs, возможность быстрого сравнения локальной версии с предыдущими ... да, вы можете получить Сторонние плагины для интеграции, но не для этого уровня и с той же стабильностью.
2) Коммуникационные функции - такие простые вещи, как интеграция с Live Messenger (при условии правильной настройки TFS), отлично подходят для больших команд. Мы используем WLM для общения по всему офису и для совместной работы, поскольку это просто быстрее, чем переходить к кому-то еще каждый раз, когда вам нужно задать быстрый вопрос.
3) Связывание сборок / списков изменений с задачами - да, другие SCM делают это, но опять же, это просто сделано очень хорошо, интегрированным образом ... Я думаю, что это ничего особенного для TFS, но лично мне нравится, как это отслеживается.
4) Простота слияния / редактирования без блокировки. У меня был опыт работы с некоторыми другими инструментами слияния, и TFS один работает достаточно хорошо, делая объединение после одновременного редактирования довольно простым. Это очень похоже на работу в этом отношении, но также и с довольно довольно эффективным инструментом автоматического слияния, который я использую для крошечных правок, которые, как я знаю, не могут вызвать никаких потенциальных проблем с правками, над которыми работают другие разработчики.
5) Автоматическое построение / управление сборкой. Работа с парой крупных решений, содержащих 20-30 проектов, которые зависят друг от друга, - это находка. Он настроен на постановку в очередь сборки каждые 20 минут, если что-то изменилось, и когда это произошло, оно занесено в журнал истории ... так легко увидеть, когда вам нужно обновить ваши локальные библиотеки.
У меня нет никакого опыта в настройке, кроме управления сборкой, но я слышал, что это худшая часть TFS ... это немного тяжело, чтобы все работало правильно.
Итак, переводя это на экономическое обоснование ... Я бы сказал, что если вы являетесь разработчиком программного обеспечения Microsoft с большой / несколькими группами, то экономия времени и повышение производительности, которые вы увидите в результате использования вышеуказанных функций, стоит инвестиций в его настройку. Его можно использовать в большинстве случаев, так как у вас, вероятно, будет подписка MSDN (возможно, некоторые проблемы с клиентскими лицензиями, но я не уверен), поэтому ваши самые большие затраты будут на обучение пользователей и настройку.