Programação pareada é uma das técnicas ágeis mais aplicadas em todo o mundo, os seus benefícios são inúmeros dentre eles temos a melhoria da código final e a disseminação do conhecimento. Programar em par consiste em dois membros do time programarem em apenas 1 computador com o intuito de resolver o mesmo problema ou implementar a mesma funcionalidade.
Existem algumas dicas que você pode seguir para ajudar no sucesso da programação pareada, absorvendo melhor seus benefícios e tornando sua adoção mais agradável, são elas:
- Utilizar apenas 1 computador, isso evita a distração e melhora a comunicação entre os membros.
- Procurar não abrir outros programas(email, msn, twitter) além dos necessários para se executar a tarefa.
- Um computador rápido e que não fique travando ajuda, pois evita a distração e, consequentemente, o desfoque no problema.
- Revezar as duplas para que o conhecimento possa ser melhor disseminado.
Existe também as formas diferentes de "parear" - termo utilizado para o ato de programar em par -, essas que variam de time para time. Recentemente o blog dhelper publicou uma lista com 4 formas de se parear, são elas:
Baseada em Turnos
A idéia é simples, você deve mudar de posição de tempos em tempos, esse tempo deve ser pré definido. Quem estava digitando o código(piloto) se torna a pessoa que irá revisa o código(co-piloto) e vice-versa. Uma dica é mudar de posição a cada feature implementada ou em um curto espaço de tempo como 30 segundos ~ 1 minuto. O mais importante é que a dupla entre em uma regra comum para a troca de posição e que a mesma seja rigorosamente respeitada.
Utilizando esse método os dois desenvolvedores irão sempre ficar interessados no código além de evitar que apenas um desenvolvedor fique codificando enquanto o outro acaba ficando entediado.
Testador - Codificador
Essa é uma das favoritas pelo autor do post. A técnica consiste em, utilizar TDD com "pareamento". Um desenvolvedor primeiro escreve um teste que falha, então o outro desenvolvedor assume o teclado e deve fazer com que o teste passe escrevendo o mínimo de código possível. Você pode mudar quem escreve o código e quem faz ele passar de tempos em tempos ou então quando uma funcionalidade estiver completa.
Esta é uma ótima forma de você ensinar e mitigar TDD no seu time através de exemplos.
O Rei da Colina
Quem estiver com o teclado escreve o código. Se a pessoa parar de digitar ou começar a demorar muito para codificar (cuidado com o seu companheiro) o parceiro(co-piloto) pega o teclado sem aviso prévio e continua o código.
Essa técnica deve ser utilizada apenas quando a uma dupla que se sentir confortável pois pode ofender o parceiro. Utilizando ela você exercita o pensamento rápido e também evita possíveis distrações.
Uma mente - quatro mãos
Esse método é raro, e pode se facilmente confundindo com o modo baseado em turnos. Ele consiste de, tanto o piloto quanto o co-piloto, instantaneamente entenderem o código que está sendo escrito sem a necessidade de explicação.
Um desenvolvedor escreve o código enquanto o outro fica apenas revisando, então quando o que estava codificando se cansar(ou o timebox terminar) eles trocam de posição. Não deve haver nenhuma explicação sobre o código que está sendo escrito.
O problema dessa técnica é que a dupla deve pensar da mesma forma e terem conhecimentos próximos . Além disso é necessário que quem revisa o código sempre interrompa o outro a cada "problema" que ele ver. Caso a frequência das interrupções seja muito baixa isso pode significar que o código está sendo muito bem escrito e realmente não existe problemas, ou então que o co-piloto não está entendendo nada que está sendo codificado por que o código está mal escrito ou então pela diferença de conhecimento existente na dupla.
Com essa técnica você consegue que os desenvolvedores escrevam códigos legíveis e que os outros possam entender conseguindo, no fim de tudo, um código com mais qualidade.
Vimos acima algumas técnicas utilizadas na programação em par, lembre-se de que elas variam de time para time.
E você leitor quais técnicas de programação em par que você conhece? Você se identificou com alguma das citadas acima? Há algumas outras dicas que você gostaria de sugerir?