A pequena pesquisa de Martin Fowler diz muito sobre o estado do TFS nos anos anteriores. 'perigoso' está certo. (Eu acho que isso se refere à maneira como ele não reconhece as alterações feitas fora do VS, para que você possa criar um projeto WCF, use a ferramenta svcutil externa para criar seu cliente e verifique todas as alterações em .. mas o TFS irá felizmente ignore as alterações do seu cliente porque elas não foram feitas no VS).
Você precisa contar o custo: a versão necessária do VS para obter os benefícios - as revisões de código, por exemplo, exigem a edição Premium, que é significativamente mais cara se você obtiver o VS via MSDN. Além disso, o acesso ao sistema para usuários que não são do VS é bom, mas se eles desejam o acesso completo para a exibição da Web reduzida, será necessário desembolsar CALs para eles. O custo total do TFS pode ser bastante. Até o recente relatório da Forrester(encomendado pela Microsoft, então você deve ler um pouco nas entrelinhas) diz que o TFS requer suporte administrativo significativo - foram necessários 2 consultores e 6 administradores (que passaram 25% do tempo) para dar suporte ao TFS no estudo de caso de 122 usuários (funciona para 4.5 administradores sobre esses 122 usuários ... isso é muito comparado a apenas eu configurar e manter uma solução completa de SVN enquanto também faço meu trabalho diário). O TFS pode exigir muito esforço para continuar trabalhando como as pessoas esperam.
Na minha experiência com o TFS2012 (esqueça as versões anteriores, por serem ruins), é que é um sistema muito complicado de administrar, especialmente se você sair da configuração predefinida. Por exemplo, se você usa o MSBuild para criar tudo, está bem. Mas se você tem, digamos, um monte de objetos .vdproj antigos que não são mais suportados pelo MSBuild, é necessário editar o enorme script de construção do xaml para fazê-lo criar esses projetos. Após vários dias trabalhando nisso, o melhor que pude fazer foi reconstruir a solução passando-a para devenv e, mesmo assim, obter os resultados da compilação e entrar no resumo da compilação era impossível. Resultados semelhantes foram obtidos por outras equipes que usaram o NUnit para seus testes - se você usar o MSTest interno, ele funcionará. Caso contrário, você está muito empalhado.
Como usuário, acho que a integração é mais um incômodo. Eu prefiro o TortoiseSVN e faço quase todo o meu trabalho de SCM por isso (pois é uma ferramenta incrível). Com o TFS, você acaba com uma nova tela dentro do VS para cada operação. Portanto, você tem uma nova guia em seu ambiente para o Team Explorer, outra para as compilações e outra para cada resumo da compilação que deseja ver (e se deseja ver os detalhes de uma compilação, um erro, por exemplo, você tem clicar em muitos links). Eu descobri que o número de documentos que eu tinha aberto ao usar o TFS era mais do que os arquivos de origem!
O mesmo se aplica aos check-ins, confirmando as alterações necessárias clicando em várias guias no painel Alterações Pendentes no VS para atribuir um item de trabalho e comentar seus check-ins. É uma coisa pequena, mas achei irritante porque estava acostumado a ferramentas mais simplificadas.
Estender o sistema de compilação foi outra área que eu achei ausente. Adicionar novos recursos à compilação é difícil por causa da configuração do xaml, e obter os resultados desses recursos nas telas de compilação é muito, muito difícil ou impossível. Então, se você gosta de adicionar coisas como complexidade de código ou análise estática, ou mesmo testes automatizados via, digamos, selênio ou implantações ... esqueça. A menos que você esteja usando as ferramentas da Microsoft para esses aspectos (por exemplo, fxcop).
Atualizar o fluxo de trabalho foi outro problema - embora as ferramentas de poder tenham ajudado tremendamente, ainda era difícil obter o fluxo de trabalho correto, e você ainda não pode configurar a placa de scrum com as informações que realmente deseja ver - novamente, obtém os padrões ou nada .
A fusão também foi dolorosa, acho que há uma boa razão pela qual a MS adotou o git para o TFS (observe que isso só funciona com novos projetos de TFS, você não pode converter do TFS para o back-end do git).
Então, apesar de tudo, não é tão ruim quanto funciona, mas eu descobri que muitas outras ferramentas são muito melhores. A desvantagem dessas ferramentas é que elas não são totalmente integradas, mas IMHO é um ponto forte, pois você pode escolher os melhores bits que deseja. Com o TFS, você obtém praticamente o que alguém quer que você tenha. Se você decidir que o sistema de bugs no TFS é ruim (e acho que sim), será difícil mudar para outro.
O TFS deve ser considerado juntamente com outras ferramentas grandes e gordas de ciclo de vida completo. A maioria dos desenvolvedores odeia coisas que não gostam das restrições que essas ferramentas acabam lhes impondo.
No entanto, eu tentaria fazer o download dos testes de 30 dias e instalá-lo. Ao avaliar, lembre-se de mudar um pouco aqui e ali, não o use apenas para um check-in do código-fonte, faça o check-in com um item de trabalho necessário e obtenha relatórios com base nesse item de trabalho. Tente atribuir um check-in a vários itens de trabalho e tente combiná-los, conforme relacionado. Tente incorporar algo diferente ao sistema de compilação, veja como obter um relatório de progresso diário dos serviços de relatório, vincule um documento a um requisito de fluxo de trabalho e rastreie-o através da triagem de erros, da codificação à compilação para retrabalhar e depois liberar. Ramificar e mesclar muito. Se você não consegue fazer todas essas coisas com facilidade, é melhor seguir o git. Não faz muito sentido usar o TFS se você não tirar proveito da maioria dos recursos do ALM.