efeitos da prática de revisão de código na caelum: um estudo preliminar em duas equipes

20
Maurício Aniche Francisco Sokol Universidade de São Paulo Caelum Ensino e Inovação Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

Upload: mauricio-aniche

Post on 23-Jun-2015

232 views

Category:

Technology


9 download

DESCRIPTION

Artigo no WBMA2014, em Florianópolis: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

TRANSCRIPT

Page 1: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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

Page 2: 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

Page 3: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

E na Caelum,como vocês fazem?

ambas usam o github como ferramenta

equipes tem revisão de código no seu processo

Page 4: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

RQ: Entender como a prática de revisão

de código ajuda essas equipes

Page 5: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas 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

Page 6: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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

Page 7: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

Os projetos ?Projeto # de classes # de commits # de devs

Gnarus 924 10451 33

Caelumweb 1321 12077 59

Page 8: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

Métricas decódigo ?

Acoplamento Eferente

LCOM-HS

Linhas de código

McCabe

Page 9: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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

Page 10: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

E os resultados ?

Page 11: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes
Page 12: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

E o questionário ?disseminação de conhecimento inerente ao processo

melhoria da qualidade interna do código diminuição na quantidade

de defeitos

Page 13: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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..."

Page 14: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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.

Page 15: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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)."

Page 16: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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

Page 17: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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.

Page 18: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

Conclusões ?acreditam na melhoria da qualidade interna do código

disseminação de conhecimento diminuição na quantidade

de defeitos

Page 19: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

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.

Page 20: Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Duas Equipes

maurício aniche ([email protected])

francisco sokol([email protected])

Obrigado!