efeitos da prática de revisão de código na caelum: um estudo preliminar em duas equipes
DESCRIPTION
Artigo no WBMA2014, em Florianópolis: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas EquipesTRANSCRIPT
Maurício AnicheFrancisco Sokol
Universidade de São PauloCaelum Ensino e Inovação
Efeitos da Prática de Revisão de Código na Caelum:
Um Estudo Preliminar em Duas Equipes
O que é revisão de código?
não aparece nem noquestionário da VersionOne
verificação e validaçãodo código escrito por outros desenvolvedores
feitas de maneiras diferentes, o objetivo é aumentar a qualidade
E na Caelum,como vocês fazem?
ambas usam o github como ferramenta
equipes tem revisão de código no seu processo
RQ: Entender como a prática de revisão
de código ajuda essas equipes
Trabalhos relacionados ?
Mantyla confirma os achados de Siy
Kemerer mostra que a prática é eficaz para localização de defeitos
Siy mostra que defeitos encontrados são pequenos, mas que sua refatoração ajuda na manutenabilidade
Planejamento doestudo ?
duas equipes
extraímos comentários do github
extraímos métricas de código
comparamos o antes e o depois
questionário
Os projetos ?Projeto # de classes # de commits # de devs
Gnarus 924 10451 33
Caelumweb 1321 12077 59
Métricas decódigo ?
Acoplamento Eferente
LCOM-HS
Linhas de código
McCabe
O questionário ?antes e depois de verem os gráficos
basicamente perguntava quais as vantagens que ele via na revisão de código no seu projeto
E os resultados ?
E o questionário ?disseminação de conhecimento inerente ao processo
melhoria da qualidade interna do código diminuição na quantidade
de defeitos
Disseminação deconhecimento !
"Alguns desenvolvedores aprendem técnicas e tecnologias com os outros."
"Ensino de boas práticas para pessoas menos experientes, mais clareza e ciência dos padrões de código do projeto, bugs são pegos mais cedo..."
Localização de defeitos !
(...) menos bugs entram em produção, já que todo código é revisado... para passar algo, duas pessoas precisam ``errar'' é não uma.
(...) a maioria das coisas que pegamos no code review são possíveis bugs ligados à regra de negócio.
O que elese acharam dos resultados ?
"Ainda acredito que a prática de revisão é importante, ajudando-nos a encontrar possíveis erros já vivenciados por outros desenvolvedores. O code review pode ajudar muito também no processo de aprendizado de um novo membro da equipe."
"Não acho justo. Eu pelo menos tenho muito a ganhar nas revisões, seja quando eu estou revisando ou quando alguém está revisando meu código. Acredito que este tipo de coisa não pode ser mensurada."
"Uma revisão, não necessariamente deve melhorar a qualidade do código. É mais pra garantir que o código vai funcionar como deve (inclusive sendo ``mantível'' no futuro)."
Comparação comos outros trabalhos?
Diminuição de defeitos
Melhora na qualidade interna
Disseminação de conhecimento
Kemerer et al X
Siy et al X
Mantyla et al X X X
Este estudo X X* X
Ameaçasa Validade ?
A heurística. Olhar o valor antes e depois pode se problemático.
Apesar deles falarem sobre o aprendizado intenso e a redução de bugs, não triangulamos essas informações.
A maneira informal e falta de treinamento específico em revisão de código podem diferir de outras empresas.
Conclusões ?acreditam na melhoria da qualidade interna do código
disseminação de conhecimento diminuição na quantidade
de defeitos
Trabalhos futuros ?Sugerir a outras empresas que também descubram os reais efeitos da prática em seus times.
Dar treinamentos sobre o assunto para a equipe e repetir o estudo.