Um dos principais recursos da Extreme Programming é o Wiki de Ward, também conhecido como Portland Pattern Repository, também conhecido como C2.com . É aqui que várias pessoas elaboram várias metodologias e as documentam enquanto as utilizam.
Dentro deste wiki, há uma página: Revisões extremas de códigos de programação com vários colaboradores, incluindo Ron Jeffries e Kent Beck.
Para isso, eles disseram:
Revisões de código são consideradas importantes por muitos gurus de grandes processos. Eles visam garantir a conformidade com os padrões e, mais importante, garantir que o código seja claro, eficiente, funcione e tenha QWAN. Eles também pretendiam ajudar a disseminar o conhecimento sobre o código para o restante da equipe.
O ExtremeProgramming exige que todo o desenvolvimento seja feito por dois engenheiros trabalhando juntos. O código é realmente revisado em tempo real, em grande parte. Isso garante que mais de uma pessoa tenha conhecimento íntimo do código o tempo todo.
O ExtremeProgramming exige que todos os objetos tenham UnitTests. Isso garante que o objeto funcione e continue a funcionar conforme modificado.
Algumas línguas são reflexivas. Nesses idiomas, os UnitTests podem verificar diretamente a conformidade com os padrões importantes. (por exemplo, os objetos devem implementar # = e #hash, ou nenhum.)
O ExtremeProgramming pratica o CollectiveCodeOwnership, o que significa que os objetos que precisam de atenção serão procurados por muitos desenvolvedores. Isso tende a pressionar aqueles que produzem código que não está em conformidade com os padrões. Os desenvolvedores visitantes são incentivados / esperados a colocar o código em conformidade quando encontrarem desvios. Isso também garante que o conhecimento do código seja disseminado além do par inicial de programadores que o criou.
Portanto, os projetos ExtremeProgramming não requerem revisões explícitas. Solte-os da sua metodologia.
Também há um pouco mais de discussão sobre o assunto por parte de outros.
Os principais pontos, porém, são que, com a combinação de testes, a propriedade colaborativa e a programação em pares, essas coisas resolvem os objetivos que uma revisão de código normalmente deve fazer, como:
- Dispersar o conhecimento do que está sendo feito
- Um segundo (ou mais) conjunto de globos oculares no código para garantir que está seguindo os padrões
- Verifique o funcionamento correto do código
Isso está sendo feito continuamente por meio de programação em pares e testes automatizados em Extreme Programming e, portanto, uma inspeção explícita da Fagan é desnecessária.
Leitura relacionada: