A importância do Code Review para a equipe de desenvolvimento de software
Como essa prática pode ajudar os times de desenvolvimento de software.
Fala galera, tudo bem com vocês? Sou desenvolvedor aqui na Equals e hoje vou falar sobre um assunto que, sinceramente, eu não gostava até pouco tempo atrás. Vamos falar um pouco de Code Review!
“There’s a human on the other side of your code review.”
Definição de code review
Primeiro de tudo, pra quem não sabe ainda do que estamos falando, vamos conceituar esse termo:
“Code review is a systematic examination of software source code, intended to find bugs and to estimate the code quality.”
Ok, então podemos dizer que o code review é basicamente olhar o código da pessoa para tentarmos encontrar algum bug? Na grande parte do tempo não! Então você pode estar se perguntando qual ou quais são os principais significados do code review? O que nós ganhamos com isso?
Abaixo listo alguns do significados que considero mais importantes.
Compartilhamento e ganho de conhecimento
Pra mim esse é um dos ganhos mais importantes desse processo e talvez o que mais as pessoas não se dão conta. Nem sempre o time tem tempo de escrever artigos, mostrar exemplos de uso de tecnologias ou melhorias no código, nesse momento que entra o Code Review. Através dele é possível compartilhar bastante conhecimento entre pares ou até mesmo toda a equipe sem sair do processo de desenvolvimento do projeto. Quando o revisor sentir dúvidas, ou tiver alguma sugestão, todo o time começa a ganhar pois de qualquer modo esse processo irá somar no conhecimento dos envolvidos.
“Esse método que você usou faz parte de algum padrão de projeto? Se sim, você poderia me dizer qual para eu aprender?”. Seja humilde para aprender e ensinar.
Soluções alternativas
Através desse processo que envolve mais de uma pessoa, na maioria das vezes o desenvolvedor e o revisor, soluções alternativas são levantadas sempre que o revisor ou até mesmo o desenvolvedor lê uma parte do código e, com intuito sempre de melhorar, faz a sugestão de alteração.
“Você não acha que talvez dessa maneira X seja melhor que da maneira Y que você implementou?”. Seja gentil e humilde ao oferecer novas soluções.
O Time fica mais atento quanto ao código do projeto
Com o compartilhamento de conhecimento do código entre todo o time, uma outra coisa que se ganha é mais conhecimento do código do sistema por todos os integrantes do time. Mas Gabriel, por que isso é importante?
Vocês já passaram por uma situação em que o conhecimento ficasse retido, na sua grande maioria, em uma pessoa só? Pois é, nós sabemos o quanto é difícil continuar com o projeto quando essa pessoa não está mais presente no projeto por algum motivo. É nesse caso que o code review ajuda todo o time compartilhando o conhecimento entre TODOS os membros da equipe, dessa maneira não ficamos dependentes de uma pessoa para a continuidade do projeto.
Ganhamos a disciplina de discutir código entre o time
Outra coisa que obtemos com esse processo de code review é disciplina de compartilhar conhecimento do código do nosso time. Ao passar do desenvolvimento das tarefas do projeto, a cultura de code review começa a enraizar na equipe de tal maneira que o compartilhamento de conhecimento é algo natural e que agrega valor ao time, ao produto e a entrega de qualidade do software.
Conclusão
Enfim pessoal, esse processo tem muito o que nos ensinar ainda, acredito que com ele podemos alcançar novos lugares no quesito qualidade de software e conhecimento como um todo. Sempre que possível, use ferramentas para analisar código, como os linters por exemplo. Acredito que a junção do lado automatizado com o lado humano do processo de code review é a chave para o sucesso.
Por hoje é só, espero que gostem, caso falei algo que você não concorde, por favor comente abaixo (de um jeito humilde e gentil) para compartilharmos conhecimento entre todos nós. Obrigado!
Referências
https://www.atlassian.com/agile/software-development/code-reviews
https://github.com/viniciusalonso/code-review-good-practices
https://medium.com/@real_tadas/theres-a-human-on-the-other-side-of-your-code-review-9732cc15bfee
https://www.youtube.com/watch?v=PJjmw9TRB7s&index=2&list=LLd_50AreJiQvwohSFlvH99w
https://www.youtube.com/watch?v=1m3eRFeCInY&index=4&list=LLd_50AreJiQvwohSFlvH99w