Невелике опитування Мартіна Фаулера багато говорить про стан TFS в попередні роки. "небезпечно" цілком правильно. (Я думаю, що це стосується того, що він не розпізнає зміни, внесені поза VS, тому ви можете створити проект WCF, потім скористатися зовнішнім інструментом svcutil для створення свого клієнта, а потім перевірити всі ваші зміни в .. але TFS буде радісно ігноруйте зміни клієнта, оскільки вони не були внесені до VS).
Вам доведеться порахувати вартість: потрібна версія VS для отримання смакоти - огляди коду, наприклад, вимагають Premium Edition, який значно дорожче, якщо ви отримуєте VS через MSDN. Крім того, доступ до системи для користувачів, які не VS, є нормальним, але якщо вони хочуть отримати повний доступ замість перегляду веб-сторінок, що скорочується, тоді вам доведеться розкрити CAL для них. Загальна вартість TFS може бути досить багато. Навіть недавній звіт Forrester(за замовленням Microsoft, тому вам доведеться трохи прочитати між рядками) сказано, що TFS потребує значної підтримки адміністрації - для підтримки TFS для їх вивчення 122 користувачів потребували 2 консультантів та 6 адміністраторів (які витратили 25% свого часу). (працює на 4,5 адміністратора над цими 122 користувачами ... це багато в порівнянні з моїм налаштуванням та підтримкою повноцінного рішення SVN, а також виконую свою щоденну роботу). TFS може докласти чимало зусиль, щоб продовжувати працювати, як очікують люди.
З мого досвіду роботи з TFS2012 (забудьте попередні версії, оскільки вони лайно), це те, що це дуже складний адміністратор системи, особливо якщо ви виходите за межі попередньо визначених налаштувань. Наприклад, якщо ви використовуєте MSBuild для створення всього, ви все добре. Але якщо у вас є, скажімо, завантаження старих проектів .vdproj, які вже не підтримуються MSBuild, вам доведеться відредагувати величезний сценарій збірки xaml, щоб змусити його створювати ці проекти. Після декількох днів роботи над цим, найкраще, що я міг зробити, - це відновити рішення, передавши його в devenv, і навіть тоді отримати результати збірки та підсумок збірки було неможливо. Аналогічні результати мали й інші команди, які використовували NUnit для своїх тестів - якщо ви використовуєте вбудований MSTest, він працює. Інакше ти сильно напханий.
Як користувач, я вважаю, що інтеграція викликає більше неприємностей. Я віддаю перевагу TortoiseSVN, і я майже всю свою роботу над SCM роблю через це (адже це дивовижний інструмент). З TFS ви отримуєте новий екран всередині VS для кожної операції. Отже, у вашому середовищі є нова вкладка для команди провідника, інша для збірок і ще одна для кожного резюме збірки, яку ви хочете побачити (і якщо ви хочете переглянути деталі збірки, помилка, наприклад, у вас є натискати занадто багато посилань). Я виявив, що кількість документів, які я відкрила під час використання TFS, була більше, ніж вихідні файли!
Те саме стосується реєстрацій, внесення змін, необхідних натисканням декількох вкладок на панелі "Очікують зміни" в VS, щоб призначити робочий елемент та прокоментувати ваші реєстрації. Це невелика річ, але мені здалося, що це дратує, коли я звик до більш спрощених інструментів.
Розширення системи збирання було ще однією областю, якої мені не вистачало. Додавання нових функцій у збірку складно через конфігурацію xaml, і отримати результати цих функцій на екрани збірки - дуже важко, або неможливо. Тож якщо вам подобається додавати такі речі, як складність коду чи статичний аналіз, або навіть автоматичне тестування через, скажімо, селен або розгортання ... забудьте про це. Якщо ви не використовуєте інструменти Microsoft для цих аспектів (наприклад, fxcop).
Оновлення робочого процесу було черговим хитком - хоча powertoys надзвичайно допомагав, все-таки було незручно виправити робочий процес, і ви все одно не можете налаштувати дошку scrum з інформацією, яку ви дійсно хочете бачити - знову ж, ви отримуєте за замовчуванням або нічого .
Об'єднання також було болісним, я думаю, що є дуже вагома причина, коли MS прийняла git для TFS (зауважте, що це працює лише з абсолютно новими проектами TFS, ви не можете конвертувати з TFS в git backends).
Так що загалом це не дуже погано, як це працює, але я знайшов багато інших інструментів набагато краще. Недоліком цих інструментів є те, що вони не повністю інтегровані, але IMHO - це сила, оскільки ви можете вибрати та вибрати найкращі біти, які ви хочете. Завдяки TFS ви отримуєте майже все, що хтось інший хоче від вас. Якщо ви вирішите, що система помилок у TFS погана (і я думаю, що ви будете), вам буде важко змінитися на іншу.
TFS слід розглядати разом з іншими великими, жирними інструментами для повного життєвого циклу. Більшість розробників ненавидять такі речі, оскільки вони не люблять обмеження, які ці інструменти в кінцевому підсумку накладають на них.
Я б спробував це, проте завантажте 30-денні випробування та встановіть його. Оцінюючи, пам’ятайте, що тут і там дещо змінити, не використовуйте його лише для перевірки вихідного коду, перевіряйте необхідним робочим днем і отримуйте звіти на основі цього робочого місця. Спробуйте призначити контрольну реєстрацію декількома робочими програмами та спробуйте поєднати робочі твори разом, як пов’язані між собою. Спробуйте включити щось інше в систему збирання, подивіться, як отримати щоденний звіт про хід роботи з звітних служб, прив’яжіть документ до вимоги робочого процесу та відстежте його через триагу помилок до кодування, яке потрібно побудувати для переробки, а потім випустити. Відгалужуються і зливаються багато. Якщо ви не можете легко зробити всі ці речі, то ви також можете дотримуватися git. Немає сенсу використовувати TFS, якщо ви не скористаєтесь більшості його функцій ALM.