Mergear um código sem revisão é uma boa ?
Hoje pela manhã vi um post no Linkedin que me fez questionar, realmente seria uma boa ideia mergear código sem revisão, e qual impacto isso causaria no software.
Se você é um desenvolvedor com certeza já passou por esse processo, de adicionar uma feature nova ou corrigir um bug e após a resolução enviar o código para Code Review
, para poder ser revisado e se tudo estiver ok ser mergeado. Essa manhã antes de começar a trabalhar vi um post onde fala sobre a demora de alguns PR's serem meregeados, neste post o autor sugeriu um recurso que o Github poderia ter de mergear automaticamente caso não tenha uma interação em até 48 horas.
Pessoalmente não acho que é uma boa mergear códigos não revisados, nos reviews são apontados melhorias, boas praticas até refactoring garantindo a levibiliadde do código, mantendo o código bem escrito e sem duplicidades ou implementações desnecessárias.
Hoje atualmente os mesmo devs que revisão e fazem os merges, são os mesmos que atuam no desenvolvimento do software, assim não tendo o tempo hábil para focar nessa atividade, devido estar resolvendo um bug complexo que impede do usuário final de usar o softaware.
Excelente pergunta! Na minha visão, essa dinâmica funcionar vai depender da senioridade das pessoas envolvidas e, principalmente, da maturidade que as pessoas tem sobre o design/engenharia da aplicação. Por "design" eu não quero dizer a interface, quero dizer a engenharia por trás, a arquitetura, modelagem e a visão de longo prazo para onde o projeto possa ser levado.
Então se uma equipe é formada apenas por pessoas com uma alta senioridade em tecnologia, e uma alta maturidade no design da aplicação, eu faria sim o tradeoff de deixar o Code Review opcional por uma velocidade maior (e muito maior) de interações com a base de código.
Do contrário, eu não faria isso, pois o mecanismo de revisão é o que faz estes dois fatores serem construídos num time, principalmente o segundo fator (design).
Eu vi uma postagem muito parecida (talvez a mesma). Entendo que esse não é o melhor remédio. Não seria melhor ter PRs menores? Ou talvez ter uma quantidade de horas por semana/sprint/etc para já contabilizar esse trabalho? Enfim, entendo que existem várias outras formas de resolver essa questão. Na minha visão, aprovar PR automaticamente é perder uma oportunidade preciosa.
A equipe da minha empresa passa por esse exato mesmo problema, mas acredito que a maioria também deve passar. Porém, damos mais prioridades de review as demandas dependendo do seu tipo: features ficam em code review até que alguém do time fique livre para revisar, já os as correções de bugs são revisadas o mais rápido possível para poder ser lançado para produção. E para isso simplesmente vamos no chat de alguém que pode revisar demandas e pedimos diretamente que ela valide a correção do bug. Dessa forma, garantimos que os ajustes críticos sejam lançados rapidamente.