O Team Foundation Server (TFS) já dividiu bastante as opiniões na comunidade de desenvolvedores. E apesar de pessoalmente ter tido boas experiências trabalhando anos com a ferramenta, confesso que ele realmente tinha sérios problemas e não raro tive que ter bastante boa vontade para continuar usando ele. O VSTS, seu sucessor tentou corrigir vários desses problemas, mas ainda deixava a desejar, principalmente por ser somente na nuvem e muito restrito para tecnologias Microsoft.
Após quase 15 anos investindo e aprendendo como prover uma solução para gestão do ciclo de vida do desenvolvimento de software (ALM) a Microsoft lança o Azure Devops substituindo o TFS e o VSTS. Vários aspectos receberam melhorias muito significativas e se você não gostava do TFS vale a pena rever.
Usabilidade
O TFS sempre foi reconhecido pela sua flexibilidade. Era possível configurar quase tudo, criar novos campos, segmentar hierarquicamente os projetos, definir um fluxo de trabalho específico, etc. O grande problema é que o custo de toda essa flexibilidade era um sistema “pato”, fazia tudo, mas não fazia nada muito bem. Era complexo lidar com alguns conceitos na ferramenta como area path, iteration path e team projects, por exemplo. E algumas configurações, como customizações de campo exigiam fazer alterações via arquivo XML e usar plugins do Visual Studio Enterprise. Era terrível!
No Azure Devops você tem a flexibilidade de organizar hierarquicamente os times e boards usando area path e teams, mas se você quiser usar o sistema de maneira simples esses conceitos estão bem abstraídos e você não precisa nem mesmo entender o que é isso. Portanto, agora é simples fazer coisas simples, sem perder a flexibilidade de configurar e customizar.
Algo que ilustra bem essa evolução de simplicidade está na forma de configurar campos customizados de features ou user stories. Você faz direto na ferramenta, simples assim:
Integração contínua e entrega contínua
Fazer automações no TFS não era nada convidativo e raramente possível fazer via interface além de exigir muitas configurações nos servidores. (Já tive até que instalar o Visual Studio no servidor.) Agora a configuração de um pipeline no Azure Devops ficou muito mais intuitiva e totalmente integrada ao ambiente do Azure. Direto no Azure Devops você seleciona seus servidores de build do Azure e configura tudo. Se você precisar de pipelines mais sofisticados é possível adicionar scripts para todo tipo de tarefa de CI/CD.
Controle de Versão
Um dos grandes pontos que afastaram muitos desenvolvedores do TFS no passado foi seu sistema de controle de versão ruim. Ele tinha uma abordagem server-centred que exigia rede boa parte do tempo, e era necessário fazer tudo via visual studio. A grande melhoria foi o TFS suportar git como sistema de controle de versão, mas agora ficou ainda melhor no AzureDevops, pois além de suportar o Git é facilmente integrado ao Github.
Portas abertas para a comunidade
Por fim, talvez um dos pontos mais significativos no Azure Devops é que a Microsoft está abrindo as portas para todo tipo de solução, não mais restrito a .NET ou tecnologias Microsoft. No pipeline de automação, por exemplo, é possível fazer build de aplicações Node.js, PHP, python, C++, Ruby…
Gestão de requisitos
Parte fundamental de um ALM são suas funcionalidades para gerir as demandas do time. O TFS sempre sempre deu bastante flexibilidade nesse aspecto, é possível visualizar a user stories em formato boards e montar um kanban, customizar as colunas, alterar estilo etc. Mas algo que era bastante irritante nas versões antigas era a forma de associar os itens hierarquicamente, por exemplo, para associar uma user story a uma feature era necessário fazer isso pelo código e dar vários cliques. Agora isso é trivial com a funcionalidade de mapeamento existente. Você habilita basta arrastar e soltar. É algo simples, mas muda a experiência de uso da ferramenta.
Basta na visão de lista clicar em “opções” e exibir o side pane “Mapping”.
Daí é só arrastar e soltar.
Vale a pena ver de novo…
Essas foram apenas algumas mudanças, a ferramenta está completamente diferente do que já foi. Recomendo que mesmo se você já tenha tido uma experiência ruim com TFS no passado, dê o benefício da dúvida e conheça o Azure Devops.