"Essa história vai melhorar as vendas. Essa refatoração vai melhorar a manutenção". Será?
Se queremos escolher histórias e manter um produto melhor para o cliente final, essa decisão deve ser baseada em alguma medida.
Complexidade do código? Coesão? Aguentar altas cargas? Diminuir taxas de erro? Efetuar mais compras? Para entender qualquer uma delas é preciso medir: veremos nessa palestra como pegar um projeto cujo build mínimo está automatizado, mediremos a complexidade do código, o desempenho em relação a erros, a vendas e a percepção do usuário final.
Mantemos um rastreamento dessas métricas com o passar do tempo: encontrando os commits responsáveis pela quebra nas regras estabelecidas. A decisão se algo é bom ou não deixa de ser romântico e passa a ser algo lógico.
14. Meu código tá bom
• O que é bom?
• vai dar erro?
• digitar menos?
• permitir mudanças?
• complexidade?
• erros?
15. O que é bom?
• vai dar erro? compilador.
• digitar menos? IDE.
• permitir mudanças? testes + compilador + IDE
• complexidade? medir com compl. ciclomática.
• erros? log
29. Code Sheriff
“Efeitos da Prática de Revisão de Código na Caelum:
Um Estudo de Caso Preliminar”
quinta feira, 11:30 com Maurício Aniche e Chico Sokol
30. Bugs por deploy
• deploy + exception line => acumular as linhas
41. Meu cliente comprou mais
• O que é mais?
• 0.1%? 5%? 10%? 1000%?
• O que é comprar?
• comprar é anomalia?
• 0.0001% => 0.01%
• 1 compra para 100 compras?
42. Testes A/B
• Evitar algumas variações de variáveis
• Mas mesmo assim não evita tudo
43. Amostra: teste a/b
• Testei clientes no A: 10 compras
• Testei clientes no B: 100 compras
• Uhu! B é 10 x mais efetivo
• Será?
44. Amostra: teste a/b
• Testei 100 clientes no A: 10 compras
• Testei 10000 clientes no B: 100 compras
• Coco! A é 10 x mais efetivo
• Será?
45. Faço o teste novamente
• Resultando completamente trocado
• A/B => A ganha, A/B => B ganha
• A/A’ => A ganha
• qual a margem de erro?
46. Amostra: teste a/b
• Capturando os dados
• opção mostrada
• resultado da ação (comprou/não comprou)
47. Amostra: teste a/b
• nos testes que fazemos se usarmos
• 2 sigma => 95.4%
• 4.6% de chance de eu errar
• é suficiente?
48. Amostra: teste
• Mas os físicos usam isso Guilherme
• Boson de Higgs
• Sim, com 5 sigma
• 3 x 10 -7 => 0.00007%
49. Amostra: teste a/b
• Visualizando
• mostrando se está dentro ou fora do erro
• conclusivo ou não
50. Não adianta fazer 1000
testes e 1 só dar certo!
• 1000 testes vai dar caca
• Você VAI achar um certo. E ele está errado.
• Meta meta erro
• Correção de Bonferroni
58. Resumindo
• Capture
• Armazene
• Mostre
• Acompanhe no dia a dia
• Desconfie do resultado
59. O que eu quero
• garantias ao digitar
• garantias ao refatorar
• garantias ao rodar local
• garantias ao rodar remoto
• garantias ao mudar o processo
60. O que eu gosto
• garantias ao digitar: compilador Java, Panettone
• garantias ao refatorar: Eclipse
• garantias ao rodar local: testes
• garantias ao rodar remoto: testes
• garantias ao mudar o processo: dados de
produção
61. Métricas e automatização
do controle de qualidade
Guilherme Silveira
www.alura.com.br
www.caelum.com.br