Este é um post rápido. Precisei documentar a forma como organizamos nosso ambientes aqui na Codevance e então resolvi fazer este post, para, além de documentar, poder compartilhar com vocês e receber feedbacks!

Imagine que nós temos 3 ambientes de trabalho: Desenvolvimento, QA e produção. O fluxo ideal para mantermos todos os ambientes organizados é:

Dividir as novas implementações em dois tipos:

  1. bugfix: Conserto de algum bug
  2. featureDesenvolvimento de uma nova feature

Ter uma branch que corresponda a cada ambiente:

  1. developmentbranch que corresponde ao ambiente de Desenvolvimento
  2. qa: branch que corresponde ao ambiente de QA
  3. master: branch que corresponde ao ambiente de Produção

Para cada nova implementação, o fluxo a ser percorrido é:

  1. Fazer um pull request da branch relacionada a implementação para a branch developmentNesta etapa o desenvolvedor faz os testes de integração inerentes ao ambiente de desenvolvimento e aplica o desenvolvimento do seu código para seus pares executarem o processo de Code Review.
  2. Fazer um merge da branch relacionada a implementação para a branch qa. Com a etapa acima validada, nesta etapa o desenvolvedor valida a implementação com a equipe responsável pela validação da funcionalidade no ambiente de QA.
  3. Fazer um merge da branch relacionada a implementação para a branch master. Com a etapa acima validada, nesta etapa, o desenvolvedor faz com que a implementação seja integrada ao servidor de produção e seja entregue ao usuário final.
  4. Com a branch integrada ao ambiente de produção, podemos excluir a branch relacionada a implementação.

O ideal é que, ao realizar os merges e pull requests, os ambientes sejam atualizados automaticamente através da implantação de um serviço de integração contínua.

Junte-se a outras 397 pessoas!

Informe-nos seu e-mail para receber atualizações com o melhor conteúdo sobre desenvolvimento, empreendedorismo e gestão de projetos!

(prometo nunca te enviar spam!)

Vejamos um exemplo da vida real da implementação do fluxo acima

A equipe de QA identificou o seguinte bug:

Admin dO DJANGO não está funcionando

Com este bug em mãos, o desenvolvedor cria uma nova branch chamada bugfix/admin. Verifica o que ocorreu, encontra o erro e faz dois novos commits para consertar o problema.

Então, ele faz um pull request da branch bugfix/admin para a branch development. Seus pares analisam o PR e aprovam. Então, o sistema de integração atualiza automaticamente o ambiente de desenvolvimento. Com o ambiente atualizado, o desenvolvedor executa testes de uso.

Então, ele faz um merge da mesma branch bugfix/admin agora para a branch qa. Então, o sistema de integração atualiza automaticamente o ambiente de QA. Com o ambiente atualizado, e equipe de testes e validação verifica se a implementação está de acordo com o que foi solicitado. Está tudo ok!

Então, ele faz um merge da mesma branch bugfix/admin agora para a branch master. Então, o sistema de integração atualiza automaticamente o ambiente de produção e voilà, temos nossa produção atualizada!

Com a branch bugfix/admin integrada a produção, podemos excluí-la.

Alguns pontos importantes

  • É importante manter a organização sempre.
  • As branchs de novas implementações devem sempre serem originadas a partir da branch master, que é a que responde a produção. Caso sejam originadas a partir de outra branch que não seja a branch mais estável, commits que fogem do escopo da implementação em questão podem acabar entrando.
  • É importante também que a branch master não fique muito desatualizada em relação a branch de qa, pois senão começarão a surgir conflitos na hora de fazer o merge, causando desordem.

Nomenclatura das branchs

A nomenclatura que utilizamos na Codevance segue o seguinte padrão:

<implementation-type>/card-#

A primeira parte corresponde ao tipo de implementação, que pode ser bugfix ou feature. Já a segunda parte corresponde ao número do card (quando trabalhamos com trello), ou issue (quando trabalhamos com github), em que está trabalhando.

Exemplos:

  • bugfix/card-11
  • feature/issue-33

Para saber o número dos cards no trello, instale as extensões abaixo no seu navegador:

  • https://chrome.google.com/webstore/detail/trello-card-numbers-by-fl/bjbmgbhoaabjfeloohkahgilicjkambi
  • https://addons.mozilla.org/en-US/firefox/addon/trello-card-numbers/

***

Como disse, este é o fluxo que utilizamos aqui na Codevance.

Aproveitando, estamos com uma promoção imperdível para quem estiver precisando de desenvolvimento de software: O primeiro ciclo de entrega tem garantia! Se você não gostar da entrega, seja o motivo qual for, nós encerramos a parceria e você não paga nada!

Clique aqui para saber como nós podemos te ajudar!

E ai? O que achou do fluxo? Concorda? Tem uma sugestão para melhorar?

Deixa seu comentário aí embaixo e me procure nas redes sociais para continuarmos o papo. Os links estão logo embaixo!

Abraços