TFS? Бігайте за пагорби! Рухайтеся якомога швидше. Він робить багато різних речей, але жодна з них не є такою доброю, як найкращі інструменти породи.
Але серйозно:
Після того, як у вас є пристойна система управління версіями (SVN, GIT тощо), я рекомендую встановити правила для управління філіями, наприклад, коли створювати гілки, для чого, коли об’єднувати, хто та багато іншого.
До недавнього часу ми використовували єдину гілку для нової розробки ("магістраль"). Для випуску ми створимо стовбур гілки. Заключний контроль якості буде зроблено в цій галузі, і після завершення ми випустимо (ми щомісяця випускаємо).
Ми переключились на концепцію "без сміття в багажнику", щоб зменшити ризик розкладу. Ця концепція, в основному, містить правило, за допомогою якого слід створювати гілки для роботи з розробки окремо від магістралі. Наприклад, у вас може бути окрема гілка для функції, для невеликої команди розробників або подібної. Ми використовуємо "епоси", щоб описати невелику функцію чи звільну частину функції та створити гілку для кожного епосу. Принаймні раз на день всі зміни зі стовбура зливаються в епічну гілку. Ключовим є хороша підтримка злиття за допомогою контролю версій або окремого інструменту (наприклад, тристороннє злиття). QA для епосу буде зроблено на епічній гілці. Після того, як пройдена епічна гілка буде об'єднана в магістраль і буде запущений тест на інтеграцію. У нас ще є відділення для випусків.
Завдяки епічним гілкам ми значно знизили ризик розкладу, оскільки зараз ми маємо змогу випустити з магістралі та включити всі епічні файли, які були успішно об'єднані в магістраль. Епоси, які не є повною, пропустять автобус і зробить наступний реліз (наступного місяця).
Це, звичайно, може працювати лише в нашому середовищі. Ймовірно, у вас будуть фактори, відмінні від наших, які впливатимуть на те, які найкращі варіанти для управління галуззю.
Наприклад, якщо у вас є команда з великою кількістю людей, які працюють віддалено і не завжди підключаються до сервера управління версіями, тоді ви хочете використовувати систему управління версіями, яка підтримує розподілену модель. GIT та деякі інші люди потраплять до цієї категорії. Наскільки мені відомо, TFS вимагає підключення до сервера, щоб просто зробити файли для запису (виправлено у версії 2010?).
Сподіваюся, мені вдалося показати, що не існує "одного розміру, який підходить усім". Почніть зі своїх процесів, зокрема управління галузями, визначте вимоги та нарешті виберіть інструмент, який найкраще відповідає вашим потребам. Можливо, це TFS, а може ні.