O Git torna o desenvolvimento de software mais fácil

Três dicas para adequar o Git ao fluxo de trabalho ágil (e vice-versa)

Laura Daly Laura Daly
Buscar tópicos

O Git é o padrão de facto para desenvolvimento de software ágil em termos de sistemas de controle de versões. Este projeto de fonte aberta com suporte excelente é flexível o suficiente para dar suporte a uma variedade de fluxos de trabalho que se adequam às necessidades de qualquer equipe de software. A natureza distribuída — em vez de centralizada —, dá a ele características de desempenho superior e permite que os desenvolvedores tenham a liberdade de experimentar localmente e publicar as alterações somente quando estiverem prontas para distribuição à equipe.

Além dos benefícios da flexibilidade e da distribuição, há funções fundamentais do Git que dão suporte e aprimoram o desenvolvimento ágil. Pense no Git como um componente do desenvolvimento ágil. As alterações podem ser movidas pelo pipeline de implementação mais rapidamente do que ao trabalhar com versões monolíticas e sistemas de controle de versão centralizados. O Git trabalha do modo que a equipe ágil trabalha (e deve se esforçar para trabalhar). 

Dica profissional:

O Git é um sistema de controle de versão distribuída (DVCS). Ao contrário dos repositórios de CVS ou de subversão (SVN), o Git permite que os desenvolvedores criem a própria cópia pessoal do repositório da equipe, hospedado junto à base de código principal. Essas cópias são chamadas de bifurcações. Quando o trabalho é concluído em uma bifurcação, fica fácil trazer as alterações de volta para a base de código principal.

Ramificação Git | Coach Agile Atlassian

Dica 1: Comece a pensar sobre as tarefas como ramificações do Git

O Git entra em ação depois que os recursos são aprimorados, adicionados ao roteiro do produto e a equipe de desenvolvimento está pronta. Mas a gente apresenta um resumo rápido sobre desenvolvimento ágil de recursos: produto, design, garantia de qualidade (QA) e engenharia realizam uma reunião inicial para apresentar um entendimento compartilhado do que um recurso vai ser (pense em requisitos), escopo do projeto e em quais tarefas o recurso precisa ser dividido para ser concluído. Essas tarefas, também conhecidas como histórias do usuário, são então designadas a desenvolvedores individuais.

O Git começa a se encaixar no fluxo de trabalho ágil neste momento. Na Atlassian, a gente cria uma nova ramificação para cada item. Seja um novo recurso, uma atualização de segurança ou uma pequena melhoria a um código, cada alteração de código recebe a própria ramificação.

A ramificação é simples e permite que as equipes colaborem facilmente dentro de uma base de código central. Quando um desenvolvedor cria uma ramificação, ele tem, na prática, a própria versão isolada da base de código para fazer alterações. Para uma equipe ágil isso significa que, ao dividir recursos em histórias do usuário e, depois, em ramificações, a equipe de desenvolvimento tem a capacidade de lidar com tarefas individualmente e trabalhar com mais eficiência no mesmo código, mas em repositórios diferentes. Não há duplicação de trabalho, pois as pessoas conseguem se focar em partes pequenas de trabalho em repositórios separados do repositório principal, não havendo tantas dependências reduzindo a velocidade do processo de desenvolvimento. 

Dica profissional:

Há outros tipos de ramificação Git além da ramificação de tarefa, e eles não são mutuamente exclusivos. É possível criar ramificações para uma versão, por exemplo. Isso permite que os desenvolvedores estabilizem e melhorem o trabalho programado para uma versão específica, sem a necessidade de esperar outros desenvolvedores que estejam trabalhando em versões futuras.

 

Assim que tiver criado uma ramificação de liberação, vai ser necessário mesclar ela regularmente ao branch principal para garantir que o recurso seja usado em liberações futuras. Para minimizar a sobrecarga, é melhor criar a ramificação de liberação o mais próximo possível da data programada para a liberação. 

Visão detalhada da ramificação Git | Coach Agile Atlassian

Dica 2: várias ramificações são testáveis individualmente, então aproveite

Assim que as ramificações são consideradas concluídas e prontas para as revisões de código, o Git executa outra função principal em um fluxo de trabalho de desenvolvimento ágil: o teste. As equipes ágeis bem-sucedidas realizam revisões de código e configuram testes automatizados (integração contínua ou desenvolvimento contínuo). Para ajudar com o teste e as revisões de código, os desenvolvedores podem notificar facilmente o restante da equipe de que a ramificação está pronta para revisão e que precisa ser revisada por meio de uma solicitação pull. Sem complicar muito, uma solicitação pull é um modo de pedir que outro desenvolvedor mescle uma das ramificações no branch principal e de que tudo esteja pronto para o teste.

Com as ferramentas certas, o servidor de integração contínuapode compilar e testar as solicitações pull antes da mesclagem. Isso proporciona confiança de que a mesclagem não vai ter problemas. Essa confiança facilita o redirecionamento de atualizações de segurança e conflitos em geral, pois o Git sabe a diferença entre ramificação e código principal, pois as ramificações divergiram. 

Dica profissional:

Uma ramificação de recursos de longa execução que não é mesclada ao branch principal pode prejudicar a capacidade de ser ágil e iterar. Caso tenha uma ramificação de recursos de longa execução, você precisa se lembrar de que tem duas versões divergentes de base de código, o que vai resultar em mais correções de bugs e conflitos. Mas a melhor solução é ter ramificações de curta duração. Isso pode ser alcançado por meio da decomposição de histórias do usuário em tarefas menores, planejamento cuidadoso de sprint e mesclagem de códigos adiantada para lançar como recursos ocultos. 

Dica 3: o Git fornece transparência e qualidade ao desenvolvimento ágil

O Git/história ágil é sobre eficiência, testes, automação e agilidade geral. Depois de mesclar uma ramificação ao branch principal, o fluxo de trabalho ágil está concluído. Da mesma forma, mesclar o código por meio de solicitações pull significa que quando o código for concluído, você vai ter a documentação para saber com confiança que o trabalho é classificado com a cor verde, que outros membros da equipe finalizaram o código e que ele está pronto para ser lançado. Isso mantém as equipes ágeis se movendo com rapidez e confiança para lançar com frequência: um sinal de uma excelente equipe ágil.

Dica profissional:

Adotar uma frequência regular de liberação é fundamental para o desenvolvimento ágil. Para fazer o Git funcionar no fluxo de trabalho ágil, é necessário garantir que o branch principal esteja sempre verde. Isso significa que, se um recurso não estiver pronto, você deve esperar até a próxima liberação. Se praticar ciclos de liberação mais curtos, isso não vai ser um problema.

a seguir
Branching