Quem é seu amigo de codificação?

Fico sempre surpreso com o quanto meu código fica melhor depois que um colega o examina. Não estou me referindo a uma revisão formal em uma sala de reuniões, nem a tornar meu código aberto ao escrutínio público anônimo na Internet, nem a algum tipo de programação em pares regime. Apenas uma breve tentativa de explicar e mostrar meu código a um colega programador – geralmente é tudo o que o senhor precisa.

É claro que isso não é novidade. O excelente livro de Karl Wiegers Peer Reviews in Software: A Practical Guide tem sido o guia definitivo desde 2002.

Revisões por pares em software: um guia prático

Acho que ninguém contesta o valor da ter outro par de olhos em seu códigomas há uma espécie de inércia institucional que impede que isso aconteça em muitas lojas. No capítulo intitulado Uma pequena ajuda de seus amigos, Karl explica:

Profissionais ocupados às vezes relutam em gastar tempo examinando o trabalho de um colega. O senhor pode ficar desconfiado de um colega de trabalho que lhe pede para revisar o código dele. Será que ele não tem confiança? Será que ele quer que o senhor pense por ele? “Qualquer pessoa que precise que seu código seja revisado não deveria estar sendo paga como desenvolvedora de software”, zombam alguns resistentes à revisão.

Em uma cultura saudável de engenharia de software, os membros da equipe envolvem seus colegas para melhorar a qualidade de seu trabalho e aumentar sua produtividade. Eles entendem que o tempo que gastam analisando o produto do trabalho de um colega é compensado quando outros membros da equipe analisam seus próprios produtos. Os melhores engenheiros de software que conheci buscavam ativamente revisores. De fato, a contribuição de muitos revisores ao longo de suas carreiras foi parte do que tornou esses desenvolvedores os melhores.

Além do capítulo acima, o senhor pode consultar Capítulo 3 (pdf) cortesia do próprio autor Impacto do processo . Não se trata apenas de um discurso de boas intenções. Há dados reais por trás disso. Vários estudos mostram que as inspeções de código são surpreendentemente eficazes.

a taxa média de detecção de defeitos é de apenas 25% para testes de unidade, 35% para testes de função e 45% para testes de integração. Em contraste, a eficácia média das inspeções de projeto e código é de 55% e 60%.

Então, por que o senhor não está fazendo revisões de código? Talvez seja porque o o senhor ainda não escolheu um colega de codificação!

O senhor se lembra daquelas viagens escolares em que todos eram aconselhados a escolher um colega e ficar com ele? Isso era tanto para manter todos longe de problemas quanto para mantê-los seguros. Bem, a mesma regra se aplica quando o senhor está criando software. Antes de fazer o check-in do código, dê uma olhada rápida nele com seu amigo. O senhor consegue explicar? Faz sentido? Há algo que o senhor esqueceu?

Agora sou obrigado por lei a criar um link para o este desenho animado.

a única medida válida da qualidade do código: WTFs por minuto

Obrigado, ficarei aqui a semana toda.

Mas, falando sério, esse desenho animado ilustra exatamente o tipo de verificação ampla da realidade que estamos procurando. Não é preciso ser complicado para ser eficaz. WTFs/minuto é uma unidade de medida perfeitamente aceitável para usar com seu colega de codificação. A comunidade XP promoveu programação em pares há anos, mas acho que o sistema de amigos é uma maneira muito mais prática de obter os mesmos resultados.

Além disso, quem não gostaria de ser metade de uma incrível dupla dinâmica de codificação em tempo parcial?
Batman e Robin

Isso é muito mais empolgante do que a perspectiva de ficar preso ao mesmo computador com outra pessoa. Pense em todos os outras duplas dinâmicas clássicas que existem por aí:

Os indivíduos podem fazer grandes coisas, mas dois colegas altamente motivados podem realizar ainda mais quando trabalham juntos. Com certeza há pelo menos um programador com quem o senhor trabalha e que admira ou, pelo menos, respeita o suficiente para adotar o sistema de amigos. (E, se não for o caso, o senhor pode considerar mudar de empresa.)

Uma das grandes alegrias da programação é que o não ter que fazer tudo sozinho. Então, quem é o o senhor amigo de codificação?