Como avaliar a mudança para o Team Foundation Server

10

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?

Sam
fonte
4
Mudei de uma empresa no git para uma empresa com o TFS 2008 e é incrivelmente doloroso. Ouvi dizer que 2012 é muito melhor. Mas não estamos em condições de atualizar no momento. Como é atualmente embora ... eu mataria para voltar para git :(
Simon Whitehead
1
Está correto. O TFS 2008 foi difícil de manter e usar. Mas há uma forte tendência positiva: o TFS 2010 foi muito melhor que 2008, o TFS 2012 é muito melhor que 2010. É muito mais sustentável e possui uma ótima interface da web para que possa ser usado por pessoas sem o Visual Studio (testadores e proprietários de produtos , etc)
Andrei Zubov
@SimonWhitehead como alguém que mudou do TFS2008 para o TFS2012, as diferenças em um nível fundamental de usuário não são muito alteradas - há novos fragmentos (por exemplo, revisões de código, página da web de scrum etc.), mas você ainda odeia. Atualizando ... esquecê-lo, você precisa fazer uma instalação limpa e copiar seus dados em.
gbjbaanb
4
Mesmo o TFS 13 não tem nada para comparar com o JIRA Agile. A atual implementação do "quadro Kanban" é uma tentativa patética de dar vida a essa criança morta. Para substituir o Cofluence, você não encontrará nada. Não sei por que alguém deveria considerar mudar da pilha Atlassian para a pilha TFS. Estou usando o TFS há muitos anos e nunca fiquei feliz com ele, nem meus colegas.
Alexey Zimarev
Como você já investiu no ecosisten do Atlassian, estou surpreso que ninguém tenha mencionado o Atlassian Stash , que roda sobre o Git e oferece recursos como gerenciamento de acesso ao repositório, solicitações de recebimento, revisões de código e estratégias de mesclagem automática. É bem legal.
Mike Chamberlain

Respostas:

17

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.

gbjbaanb
fonte
1
Obrigado por compartilhar suas experiências e é bom obter alguns negativos. Eu usei o ClearCase há algum tempo em uma empresa e esse foi o pior SCM que já usei. A sobrecarga administrativa é preocupante: somos uma pequena startup, mas eu realmente amo que nossa configuração atual praticamente não requer administração.
Sam
Serena Dimensions foi a pior que já usei, o Clearcase não parecia tão ruim em comparação, pelo menos funcionou! Acho que a MS quer que você use a versão em nuvem do TFS, a instalação automática é algo que eles podem vender para empresas por muito dinheiro. Eu ficaria com o que você tem. Obtenha mais algumas ferramentas para fornecer a mesma funcionalidade (por exemplo, ReviewBoard).
Gbjbaanb
ah, e eu sei que é um bug, então não é justo destacá-lo - mas se você tentar o recurso de revisão de código do TFS e tentar revisar um arquivo que foi renomeado e modificado, o TFS reportará um "anterior revisão não encontrada ". Se você fizer muita refatoração, isso pode ser um problema. Pode ser um pequeno bug, mas também pode ser um grande problema de arquitetura se eles não rastrearem as renomeações de arquivos no repositório de back-end do TFS.
Gbjbaanb 17/08/2013
2
Desculpe pela resposta tardia, foi você quem me convenceu a não usar o TFS. Obrigado.
Sam
1
É bom ouvir isso - todo mundo parece pensar que deve usar o TFS, quando na verdade todos nós devemos usar uma ampla gama de ferramentas. Caso contrário, acabaremos com apenas 1 ou 2 empresas que fornecem todas as nossas ferramentas de TI ... Microsoft e Oracle ... que não seriam o mundo mais legal para se viver :) Atlassian faz boas ferramentas, mais pessoas devem avaliá-las.
Gbjbaanb
12

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.

pdr
fonte
1
Isso é basicamente o que eu teria respondido. Fico feliz em saber que não sou o único!
22613 Simon Simonhead
1
você pode revisar o código confirmado, mas sabe que pode impedir o check-in até que, após a revisão, as pessoas o usem exatamente dessa maneira. As políticas corporativas em todos os lugares serão escritas, portanto, isso é obrigatório e, depois, se tornará outro gargalo do processo para irritar os desenvolvedores.
Gbjbaanb 17/08/2013
5

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.

Andrei Zubov
fonte
1
muito obrigado pelo seu feedback. Estamos usando o BizSpark, que tenho certeza de que o TFS está incluído. Eu acho que a única coisa que eu gostaria de você são negativos, só para ponderar. Fico feliz em ficar com o Confluence, pois realmente não gosto do SharePoint.
21413 Sam
O sistema de notificação de alterações no TFS é um pouco mais simples do que em outras soluções (a trilha de teste, por exemplo, tem um sistema muito mais robusto). No TFS, você só recebe notificações se o item de trabalho estiver atribuído a você, não é possível assinar alterações em itens de trabalho específicos, por exemplo. Acho que não é um grande problema em um processo de trabalho ágil, mas se você depender muito de notificações no seu processo de trabalho, pode ser uma dor. O controle de origem exigirá algum tempo para se acostumar. Especialmente se você se acostumou aos comandos de linha de comando do GIT. Mas a visualização ramificada vale os esforços que penso.
Andrei Zubov
-3

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).

Cheung
fonte
1
Como isso responde à pergunta?
Gnat #