A Síndrome do MR Grande

Juan Noronha
Fretebras Tech
Published in
3 min readDec 2, 2022

Quem nunca, ao abrir um merge request já teve esses tipos pensamentos:

“Acho que já vou lançar junto a correção do bug X…”
“Vou aproveitar a carona e já adicionar o
recurso Y…”
“É melhor já refatorar esse
código Z…”

São exatamente esses tipos de pensamentos e comportamentos que nos sabotam, pois o que pensamos que será uma vantagem :), pode se tornar a nossa própria armadilha :(. Vamos entender alguns sinais que a síndrome de um MR grande pode causar:

Tempo de revisão

Possivelmente merge requests grandes levarão mais tempo para serem revisados, isso quando eles de fato são revisados efetivamente. Alguns efeitos colaterais poderão surgir, como a demora na entrega de uma feature, o bloqueio de outros desenvolvedores que dependem do código a ser revisado e até mesmo expectativas frustradas para determinada entrega.

Bugs no codebase

O alto volume de files changed podem aumentar a introdução de bugs no codebase. Quanto maior o MR, maior o nível de complexidade durante a revisão do código, por não carregar um contexto único e trazer muitas alterações ao mesmo tempo. Além dos rebases cansativos, que carregam um risco enorme de sobreposição de códigos na branch principal (master/main) da aplicação.

Falsa aprovação

A solicitação mais perigosa entre desenvolvedores: “Aprova lá pra mim?” (Devs, não façam isso). Code review vai além de aprovar (approve) e mesclar (merge) código, é um processo de análise detalhada, que carrega sugestões de melhorias e boas práticas, garantindo a qualidade e saúde do código de uma determinada aplicação.

Além desses sinais apresentados acima, com certeza existem outros casos, mas simplesmente sinalizar o problema sem apresentar uma solução para o mesmo, não é produtivo e eficiente em seu tratamento.

Portanto, gostaria de apresentar alguns conceitos, padrões e abordagens em desenvolvimento de software, que servirão como impulso para um processo saudável de code review, com merge requests fáceis de serem revisados, separados por contexto e que acelerarão o desenvolvimento do produto.

Princípio da Responsabilidade Única

Se você já ouviu falar de SOLID, provavelmente deve estar familiarizado com a sigla SRP (Single Responsibility Principle). Esse primeiro princípio declara que cada classe ou módulo deve ter apenas uma única responsabilidade, e não ser uma God Class (uma classe que sabe ou faz tudo). Aplicar esse princípio em nossos merge requests pode ser uma chave incrível para nosso processo de desenvolvimento e entrega de produto.

Alguns exemplos de MRs com apenas uma responsabilidade:

  • Criar componente Lorem
  • Instalar plugin Ipsum
  • Corrigir o erro Foo
  • Atualizar a classe Bar

Além desses pontos, temos toda uma estrutura de anatomia de um merge request a ser revisada, padronizada e aplicada, mas deixa esse assunto para um outro artigo.

Curtas iterações

O Clean Code (Código Limpo) carrega alguns princípios excelentes para o desenvolvimento de software, e na prática essa mentalidade de iterações mais curtas no código, pode trazer muito benefícios:

  • Velocidade na revisão do código;
  • Simplicidade em testar e identificar más práticas;
  • Entradas mais rápidas de features menores / parciais em produção;
  • Liberar recursos que não estarão ainda visíveis para o usuário, mas irá agregar ao sistema;

Praticar pequenas adições podem ajudar e anteceder o processo de desenvolvimento, como por exemplo, ser inserido até mesmo em cerimônias de planejamento / refinamento com o time, durante as quebras das tarefas.

"It is not the language that makes programs appear simple. It is the programmer that make the language appear simple! "
- Robert C. Martin (Uncle Bob)

Desenvolvimento de software é um universo de possibilidades. O objetivo desse texto não é trazer um discurso triunfalista com fórmulas mágicas, mas sim encorajá-lo a sair da zona de conforto, dar pequenos passos para um processo de desenvolvimento saudável, disciplinado e produtivo.

Hoje essa cultura poderá começar a partir de você e amanhã multiplicar para toda a engenharia da Fretebras 🚀.

”Insanidade é continuar fazendo sempre a mesma coisa e esperar resultados diferentes.”
- Albert Einstein

Obrigado por ler! Se você gostou do artigo, dê um clap 👏.

--

--