Close

Por que usar Git na sua empresa

Mudar de um sistema de controle de versão centralizado para o Git muda a maneira como sua equipe de desenvolvimento cria software. E, se você é uma empresa que depende de seu software para aplicativos essenciais, alterar o fluxo de trabalho de desenvolvimento afeta toda a empresa.

Desenvolvimento organizacional

Git para desenvolvedores


Fluxo de trabalho de ramificação de função

Uma das maiores vantagens do Git são seus funções de branch. Ao contrário dos sistemas de controle de versão centralizados, os branches do Git são baratos, e o merge é fácil. Essas funções facilitam o fluxo de trabalho da ramificação de funções popular entre muitos usuários do Git.

Fluxo de trabalho de ramificação de função

Os branches de características oferecem um ambiente isolado para cada alteração na base de código. Quando um desenvolvedor quer começar a trabalhar em algo, não importa o tamanho da empreitada, ele cria um novo branch. Assim, é garantido que o branch principal sempre contenha código de qualidade de produção.

O uso de branches de recursos não é apenas mais confiável do que a edição direta do código de produção; ele também traz benefícios organizacionais. Eles permitem que você represente o trabalho de desenvolvimento com a mesma granularidade do seu backlog ágil. Por exemplo, você pode implementar uma política em que cada ticket do Jira seja tratado em seu próprio branch de recurso.

Logotipo do Git
Material relacionado

Folha de consulta do Git

Logotipo do Bitbucket
VER SOLUÇÃO

Aprenda a usar o Git com o Bitbucket Cloud

Desenvolvimento distribuído

No SVN, cada desenvolvedor recebe uma cópia de trabalho que aponta para um único repositório central. O Git, por sua vez, é um sistema de controle de versão distribuído. Em vez de uma cópia de trabalho, cada desenvolvedor obtém seu próprio repositório local, com um histórico completo de commits.

Desenvolvimento distribuído

Ter um histórico local completo torna o Git rápido, já que você não precisa de uma conexão de rede para criar commits, inspecionar versões anteriores de um arquivo ou realizar diffs entre commits.

O desenvolvimento distribuído também facilita a escalabilidade da equipe de engenharia. Se alguém quebrar o branch de produção no SVN, outros desenvolvedores não vão poder inserir suas alterações até a correção. Com o Git, esse tipo de bloqueio não existe. Todos podem continuar trabalhando em seus próprios repositórios locais.

E, semelhante aos branches de característica, o desenvolvimento distribuído cria um ambiente mais confiável. Mesmo que um desenvolvedor destrua seu próprio repositório, ele pode simplesmente clonar o de outra pessoa e começar de novo.

Solicitações pull

Muitas ferramentas de gestão do código-fonte, como o Bitbucket, aprimoram a funcionalidade principal do Git com pull requests. A pull request é uma forma de pedir a outro desenvolvedor para fazer o merge de um dos seus branches no repositório dele. Além de facilitar o acompanhamento das alterações para os líderes de projeto, esse recurso também possibilita que os desenvolvedores dialoguem antes de integrar o trabalho à base de código.

Solicitações pull

Como são essencialmente um tópico de comentários anexado a um ramificação de função, as pull requests são extremamente versáteis. Quando um desenvolvedor fica preso a um problema difícil, ele pode abrir uma pull request para pedir ajuda ao resto da equipe. Outra situação: os desenvolvedores juniores podem ter certeza de que não estão destruindo todo o projeto tratando as pull requests como uma revisão formal do código.

Comunidade

Em muitos círculos, o Git passou a ser o sistema de controle de versão esperado para novos projetos. Se sua equipe estiver usando o Git, é provável que você não precise treinar novos contratados em seu fluxo de trabalho, porque eles já vão estar familiarizados com o desenvolvimento distribuído.

Comunidade do Git

Além disso, o Git é muito popular entre os projetos de código aberto. Então é fácil aproveitar bibliotecas de terceiros e incentivar que outras pessoas bifurquem o seu código-fonte aberto.

Ciclo de lançamento mais rápido

O resultado principal de ramificações de funções, desenvolvimento distribuído, pull requests e uma comunidade estável é um ciclo de lançamento mais rápido. Esses funções facilitam um fluxo de trabalho ágil em que os desenvolvedores são incentivados a compartilhar alterações menores com mais frequência. Por sua vez, as alterações podem passar pelo pipeline de implementação mais rápido do que as versões monolíticas comuns com sistemas de controle de versão centralizados.

Ciclo de lançamento mais rápido

Como você pode esperar, o Git funciona muito bem com ambientes de integração e entrega contínuas. Os hooks do Git permitem que você execute scripts quando certos eventos ocorrem dentro de um repositório, o que permite automatizar a implementação para o conteúdo do seu coração. Você pode até criar ou implementar códigos de branches específicos para servidores diferentes.

Por exemplo, você pode querer configurar o Git para implementar o commit mais recente do branch de desenvolvimento em um servidor de teste sempre que alguém fizer merge de uma pull request nele. Combinar esse tipo de automação de build com revisão por pares significa que você tem a maior confiança possível em seu código à medida que ele passa do desenvolvimento para o staging e a produção.

Git para marketing


Para entender como a mudança para o Git afeta as atividades de marketing da sua empresa, imagine que sua equipe de desenvolvimento tenha três alterações distintas programadas para serem concluídas nas próximas semanas:

  • Toda a equipe está finalizando uma função revolucionária no qual elas estão trabalhando nos últimos 6 meses.
  • Mary está implementando uma função menor e não relacionada que afeta apenas os clientes existentes.
  • Rick está fazendo algumas atualizações muito necessárias para a interface do usuário.

Se você estiver usando um fluxo de trabalho de desenvolvimento tradicional que depende de um VCS centralizado, todas essas alterações provavelmente seriam acumuladas em uma única versão. O marketing só pode fazer um anúncio que se concentre principalmente na função revolucionária, e o potencial de marketing das outras duas atualizações é efetivamente ignorado.

O ciclo de desenvolvimento mais curto facilitado pelo Git facilita muito a divisão em versões individuais. Assim os profissionais de marketing têm mais assunto de que falar com mais frequência. No cenário acima, o marketing pode criar três campanhas que giram em torno de cada função e, assim, atingir segmentos de mercado muito específicos.

Git para marketing

Por exemplo, eles podem preparar uma grande ação de relações públicas para a função decisiva, um blog corporativo e uma sinopse de boletim informativo para a função da Mary, além de algumas publicações de convidados sobre a teoria subjacente de UX do Rick para enviar para blogs de design externos. Todas essas atividades podem ser sincronizadas com uma versão separada.

Git para gerenciamento de produto


Os benefícios do Git para o gerenciamento de produtos são praticamente os mesmos que para o marketing. Lançamentos mais frequentes geram feedback mais frequente do cliente e atualizações mais rápidas em reação a esse feedback. Em vez de esperar pelo próximo lançamento daqui a 8 semanas, você pode enviar uma solução para os clientes tão rápido quanto os desenvolvedores podem escrever o código.

Fluxo de trabalho do Git de gerenciamento de prioridades

O fluxo de trabalho da ramificação de funções também oferece flexibilidade quando as prioridades mudam. Por exemplo, se você está no meio de um ciclo de lançamento e quer adiar uma função em vez de outro urgente, não há problema. Essa função inicial pode ficar em sua própria ramificação até que a engenharia tenha tempo de voltar a ele.

Essa mesma funcionalidade facilita a gestão de projetos de inovação, testes de versão beta e protótipos rápidos como bases de código independentes.

Git para designers


Os branches de características funcionam bem para prototipagem rápida. Se os designers de UX/UI querem implementar um fluxo de usuário totalmente novo ou simplesmente substituir alguns ícones, fazer o check out de um novo branch oferece a eles um ambiente de repositório para brincar. Assim os designers podem ver como suas alterações vão ser exibidas em uma cópia de trabalho real do produto, sem a ameaça de quebrar a funcionalidade existente.

Controle de versão não destrutivo do Git

Encapsular alterações na interface do usuário assim facilita a apresentação de atualizações para outras partes interessadas. Por exemplo, se o diretor de engenharia quiser ver no que a equipe de design está trabalhando, tudo o que ela precisa fazer é dizer ao diretor para verificar o branch correspondente.

As pull requests dão um passo a mais e oferecem um local formal para as partes interessadas discutirem a nova interface. Os designers podem fazer as alterações necessárias, e os commits resultantes vão aparecer na pull request. Assim todos são convidados a participar do processo de iteração.

Talvez a melhor parte da prototipagem com branches seja que é tão fácil fazer o merge das alterações na produção quanto jogá-las fora. Não há pressão para fazer nenhum dos dois. É um incentivo para os designers e desenvolvedores de UI fazerem testes, garantindo que apenas as melhores ideias cheguem ao cliente.

Git para suporte ao cliente


Os departamentos de suporte ao cliente e sucesso do cliente geralmente têm uma visão das atualizações diferente daquela dos gerentes de produto. Quando um cliente liga para eles, eles costumam estar enfrentando algum tipo de problema. Se esse problema for causado pelo software da sua empresa, uma atualização de segurança precisa ser lançada o mais rápido possível.

O ciclo de desenvolvimento simplificado do Git evita o adiamento de atualizações de segurança até a próxima versão monolítica. Um desenvolvedor pode corrigir o problema e enviar a correção direto para a produção. Correções mais rápidas levam a clientes mais satisfeitos e menos tickets de suporte repetidos. Em vez de ficar preso a "Desculpe, a gente vai lidar com esse problema agora", a equipe de suporte ao cliente pode começar a responder com "A correção está pronta!"

Git para recursos humanos


Até certo ponto, seu fluxo de trabalho de desenvolvimento de software determina quem você contrata. Sempre ajuda contratar engenheiros familiarizados com suas tecnologias e fluxos de trabalho, mas usar o Git também oferece outras vantagens.

Os funcionários são atraídos por empresas que oferecem oportunidades de crescimento na carreira, e entender como aproveitar o Git em empresas grandes e pequenas é uma vantagem para qualquer programador. Ao escolher o Git como seu sistema de controle de versão, você está tomando a decisão de atrair desenvolvedores que pensam no futuro.

Git para qualquer pessoa que gerencie um orçamento


O Git tem tudo a ver com eficiência. Para os desenvolvedores, ele elimina tudo, desde o tempo perdido passando commits através de uma conexão de rede até as horas de trabalho necessárias para integrar alterações em um sistema de controle de versão centralizado. Ele ainda faz melhor uso dos desenvolvedores juniores, oferecendo a eles um ambiente seguro para trabalhar. Todos esses aspectos afetam os resultados financeiros do departamento de engenharia.

Equipe distributiva do Git

Mas não se esqueça de que essas eficiências também se estendem para fora da equipe de desenvolvimento. Elas impedem que o marketing desperdice energia em produtos colaterais para características que não são populares. Elas permitem que os designers testem novas interfaces no produto real com pouca sobrecarga. Elas permitem que você reaja às reclamações dos clientes na hora.

Ser ágil tem tudo a ver com descobrir o que funciona o mais rápido possível, ampliar os esforços bem-sucedidos e eliminar os que não funcionam. O Git serve como um multiplicador para todas as suas atividades de negócios, garantindo que cada departamento esteja fazendo seu trabalho com mais eficiência.


Compartilhar este artigo
Próximo tópico

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Pessoas colaborando usando uma parede cheia de ferramentas

Blog do Bitbucket

Ilustração do DevOps

Caminho de aprendizagem de DevOps

Demonstrações de funções no Demo Den com parceiros da Atlassian

Como o Bitbucket Cloud funciona com o Atlassian Open DevOps

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up