Atualmente, minha equipe de desenvolvimento usa o seguinte software em nosso fluxo de trabalho:
- JIRA
- Bambu (integração contínua atlassiana)
- Greenhopper (gerenciamento ágil de projetos da Atlassian)
- Confluência
- Git, hospedado no BitBucket
- Visual Studio 2012
Como você pode ver, investimos bastante no ecossistema atlassiano. Estamos pensando em mudar para o TFS para que possamos obter os detalhes das integrações avançadas do Visual Studio, como revisões de código e, mais importante, o Microsoft Test Manager.
Minha experiência anterior com o TFS foi em 2005 ou 2008 (não me lembro) e tenho lembranças ruins, embora não tão ruins quanto meu tempo com o ClearCase.
Que critérios devemos observar para avaliar adequadamente nossa mudança para o TFS?
Respostas:
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.
fonte
Mudei de uma empresa com uma pilha basicamente Atlassian (e Mercurial) para uma empresa com uma pilha TFS pesada. Eu encontro duas irritações.
O primeiro é o controle de origem .
Quando você se acostumou ao DVCS, retornar ao CVCS é doloroso. O TFS é particularmente doloroso porque, para toda essa integração funcionar, ele insiste em estar conectado ao servidor o tempo todo.
No entanto, felizmente, a Microsoft permitiu recentemente a integração do controle de versão do Git no restante da pilha do TFS. Então você não precisa desistir do Git, e eu aconselho você a não desistir, já que todo mundo já sabe disso.
Ainda não tenho certeza de como a ferramenta de revisão de código funciona com o Git, já que parece depender muito de prateleiras (um pouco como stashes, mas não tão poderosas). Porém, depender de prateleiras para revisão de código é doloroso por si só, porque desencoraja compromissos regulares.
A outra irritação é a razão pela qual as pessoas não consideram se afastar do TFS: a integração do Visual Studio .
Ainda tenho que descobrir o raciocínio cognitivo por trás disso, mas, na minha experiência (e levando em consideração que isso é generalizado), as pessoas que estão acostumadas ao TFS adoram a integração. Eles não gostam de sair do IDE para nada.
Eu, por outro lado, não gosto disso depois de um ano. Acho que é difícil e difícil de navegar, comparado a ter meu servidor de compilação em uma guia do navegador, meus tickets em outra guia do navegador e assim por diante. (Edit: Como Andrei observa, existe uma interface da web, mas também é inexplicavelmente desajeitada, quando você está acostumado a versões mais recentes de Jira e Jenkins. Mas ainda assim, pelo menos funciona em navegadores que não sejam o IE agora. isso é algo.)
Eu nunca olho para construções, a menos que esteja tentando fazer uma, e então acho difícil descobrir se alguém já está fazendo uma. Não vejo as alterações de outras pessoas, a menos que seja solicitado que eu analise.
Mas sua milhagem pode variar. Como eu disse, algumas pessoas parecem achar indispensável. Só não consigo deixar de notar que geralmente são pessoas que nunca fizeram isso de outra maneira.
Além disso, não deixe de notar que são dois negativos, um dos quais pode ser pessoal, em uma infraestrutura bastante grande. A maior parte da minha experiência é boa e o TFS não é tão ruim quanto algumas pessoas acreditam. E a maioria das coisas que você acha que está perdendo provavelmente pode ser ligada (é muito configurável); como você está movendo uma equipe inteira, em vez de uma pessoa, pode encontrar menos resistência.
fonte
Tenho uma experiência muito positiva no uso do TFS 2012. É muito fácil configurar e executar o servidor TFS, a automação de compilação do CI é muito simples e direta (e a compilação de check-in Gated é simplesmente incrível. Falha ao obter a mesma funcionalidade com Team City). A interação da equipe também é muito transparente e direta. Você pode associar facilmente seus check-ins aos itens de trabalho do TFS, gerenciar uma lista de pendências, rastrear defeitos, fazer visualizações de códigos e assim por diante. Existe até um messenger construído em =)
No entanto, lembre-se de que se você se acostumou ao fluxo de trabalho do JIRA, configurar o fluxo de trabalho do TFS pode ser uma tarefa difícil. Eu sugiro a adoção de um dos fluxos de trabalho predefinidos do TFS. Além disso, você precisará manter o Confluence como base de conhecimento ou alternar para o SharePoint, pois não há wiki incorporado ao TFS.
O TFS é muito mais barato se você tiver uma assinatura do MSDN (acredito que a maioria das empresas de desenvolvedores que trabalham com a pilha de tecnologias da MS a possui), nesse caso, você tem o TFS gratuitamente.
Acho que não há razão para continuar usando as ferramentas de terceiros, se todos os seus desenvolvedores estiverem trabalhando com o Visual Studio. O TFS fornece um sistema ALM integrado, robusto e fácil de usar. Terei prazer em responder suas perguntas, se você tiver alguma.
fonte
Os povos devem saber, o TFS não é apenas o VCS, é o ALM .
Parece que muitos povos querem apenas um VCS, mas optar pelo TFS é o caminho errado.
Para o CVCS, ainda prefiro o SVN.
Para solo ou código aberto, vá para o GIT.
Mas o TFS2012 não é ruim, é fácil entender sobre mesclagem / bifurcação e depois SVN.
E o serviço de fundação da equipe é gratuito para 5 usuários / repositório privado ilimitado.
O cliente também é gratuito, o TFS explorer é compatível com o VS2010 e é gratuito.
Para o Eclipse, ele possui o plugin Eclipse - TFS em todos os lugares.
Não vejo nenhum problema de custo nisso.
O TFS Express (gratuito) pode funcionar com o SQL Server Express (gratuito também).
fonte