Folha de dicas de programação em pares

A programação em pares é muito poderosa e freqüentemente muito mal compreendida. Recomendo enfaticamente a leitura de Pair Programming Illuminated ( http://www.amazon.com/Pair-Programming-Illuminated-Laurie-Williams/dp/0201745763 ) como ponto de partida. Quando você começar a sentir o emparelhamento, analise estas dicas. Eles são uma combinação de ideias de Pair Programming Illuminated e minhas próprias experiências pessoais em pares no código de produção para vários projetos internos e produtos voltados para o cliente ao longo de vários anos.

Observe que está obtendo o máximo dos 7 comportamentos sinérgicos:
Pressão do par – Encorajamento positivo: não querer decepcionar o parceiro + satisfação em trabalhar mais e de forma mais inteligente do que sozinho.
Negociação de pares – combinando dois conjuntos de habilidades para design e implementação produzindo a melhor solução que se encaixa.
Pair Courage – vantagem de não estar sozinho em uma tarefa desafiadora, tentando juntos o que não se pode estar sozinho.
Revisão de pares – a revisão contínua de design e implementação que acontece no contexto e é mais provável de ser posta em prática.
Depuração de pares – indo da identificação do problema à correção de um caminho mais agradável e geralmente muito mais curto do que por um indivíduo.
Aprendizagem em pares– adquirir e / ou melhorar as habilidades ao mesmo tempo em que agrega valor ao trabalhar com outra pessoa.
Confiança em pares – cada indivíduo fica mais confiante em suas habilidades e comunicação para apresentar suas melhores ideias à medida que se sente apoiado.

Se você achar que essas sinergias são fracas ou inexistentes, reflita sobre o que pode fazer para melhorar suas experiências de emparelhamento.

Jogos de emparelhamento:
“Ping Pong” – Normalmente para Desenvolvimento Orientado a Testes
1.) O driver cria uma classe de teste e / ou falha inicial no teste com a ajuda dos navegadores
2.) Troca de funções!
3.) O novo driver passa no teste com a ajuda de novos navegadores
4.) O par negocia a possível refatoração e o check-in do código, o faz se acordado
5.) Se não estiver pronto para fazer uma pausa, vá para # 1

“Vença o relógio” – Uma boa maneira de reforçar o ritmo e limitar o uso do teclado
1.) Pegue um cronômetro físico ou virtual (Smart Phone, aplicativo da bandeja do sistema, etc.)
2.) Decida quem será o motorista primeiro
3.) Defina o cronômetro e deixe o motorista chegar o mais longe que puder com a ajuda dos navegadores.
4.) Mude o driver e o navegador, repetindo até precisar de uma pausa

“Forma livre” – Para profissionais de emparelhamento avançados
1.) Alguém começa a dirigir
2.) Os papéis são trocados conforme o par se sente necessário, desde que as sinergias não parem

Roteiro de emparelhamento:
1.) Decidir sobre uma história e tarefa
2.) Decidir inicialmente sobre quanto você deseja emparelhar (tempo gasto e / ou progresso)
3.) Decidir inicialmente em um Jogo de emparelhamento para usar
4.) Jogue seu Jogo de emparelhamento
5.) Decida continuar (vá para # 1), troque os pares ou pare

Diálogo de emparelhamento:
Tente o seguinte:
Diga “Eu acho …” para propor uma ideia.
Perguntar “Concordamos …” para confirmar o acordo
Dizer “Concordamos …” para discutir o progresso em direção às metas
Evite dizer “Não” / ”Mas”. Em vez disso, tente dizer “Sim e …”
Pergunte “O que seria necessário para você entrar …” se você discordar sobre uma ideia proposta

Verifique seus 4 “C” s:
Comunicação : Você concorda que ambos estão se comunicando bem um com o outro?
Conforto : vocês dois estão confortáveis ​​com o contexto em que estão trabalhando?
Confiança : você está confiante em suas habilidades e nas de suas equipes, ou pelo menos expressou seus medos?
Compromisso : você está disposto a fazer concessões para progredir?

Mecânica de emparelhamento:
1.) Ative os números de linha em um IDE ou editor de texto, se disponível. Isso torna mais fácil para o navegador e o driver referenciar as seções do código em discussão.
2.) PEÇA controle de mouse / teclado, não lute!
3.) Lembre-se de apontar com o mouse, não para a tela ao usar monitores espelhados.
4.) O emparelhamento remoto não deve ser apenas compartilhamento de área de trabalho e voz. Uma parte significativa da comunicação humana não é verbal, portanto, adicione o bate-papo por vídeo às suas ferramentas.