Pair Programming - fga-eps-mds/A-Disciplina-MDS-EPS GitHub Wiki

Programação Pareada

Pair Programming

A Programação Pareada é uma das práticas do Extreme Programming (XP), que sugere que o código seja sempre trabalhado em dupla em um mesmo computador, revezando quem está digitando. Assim, existem dois papéis nessa atividade, o piloto e o co-piloto. Os dois trabalham de forma análoga a pilotos e co-pilotos de aeronaves.

O piloto é o responsável pela digitação do código, a sintaxe, e por deixar o seu parceiro ciente do que está fazendo, sempre explicando seu raciocínio durante a execução. O co-piloto acompanha a elaboração do código, os testes que deverão passar, a próxima história a ser entregue, o tempo gasto na execução dos testes, o tempo decorrido desde o último commit, e a qualidade do código em geral.

A ideia é que o pareamento ajude a disseminar o conhecimento entre o time de desenvolvimento, que a aplicação tenha menos bugs e que mais funcionalidades sejam acrescentadas num menor período de tempo, resultando em melhores projetos.

Programação Pareada Remota

Pareamento remoto significa pareamento a distância. Esse tipo de pareamento é necessário quando os desenvolvedores não podem se encontrar pessoalmente. Este pareamento é feito com o auxílio de ferramentas que permitem a comunicação e o compartilhamento de tela, como hangouts ou skype, ou em alguns sites que permitem várias programarem juntas. A desvantagem desse pareamento é que o par pode perder o foco com facilidade já que a pressão do outro não é tão grande, o que pode acarretar em perda de produtividade.

Boas práticas Programação Pareada

Algumas práticas de pareamento altamente efetivos:

  • Proficiência: Ter proficiência com a linguagem e com as ferramentas utilizadas é extremamente importante para um pareamento eficiente. Caso contrário, o rendimento não será muito alto pois um membro do par será apenas ouvinte e não conseguirá acompanhar e contribuir.

  • Comunicação: A dupla precisa ter uma comunicação efetiva. É necessário que ambos estejam cientes e de acordo com o que será feito, é válido utilizar ferramentas de BDD para definir claramente o que será feito. Além disso, o piloto tem que estar constantemente se comunicando sobre o que está fazendo e pensando com o copiloto.

  • Autoconfiança: É essencial ter autoconfiança nas suas habilidades, dessa forma cada membro conseguirá contribuir e aprender bastante, criticando, recebendo críticas, questionando práticas e sugerindo novas ideias.

  • Autocontrole: Ter autocontrole para evitar distrações durante o pareamento e não se irritar ou se frustar com algo que não está dando certo contribui fortemente para a eficiência do par. Estabelecer algumas regras, como não usar celular para email ou mensagens que não vão contribuir é extremamente válido.

  • Paciência: Ter paciência com o outro membro do par quando este não tem tanto controle das ferramentas do computador é de grande ajuda para que ambos tenham confiança e vontade de trabalhar.

  • Modos: Estabelecer algumas regras para que o pareamento seja eficiente é extremamente importante. Regras como: trocar a função de cada um na dupla(piloto e copiloto) a cada intervalo de tempo pré-estabelecido, não ler emails ou mensagens no celular, não tocar na tela, não usar palavras ofensivas ou xingamentos, entre outros.

  • Higiene: Apesar de não parecer essa prática é importante. Maus hábitos de higiene pode deixar a outra pessoa extremamente desconfortável e fazer com que ela não queira parear. Ter práticas básicas de higiene pessoal e no ambiente de trabalho é essencial.

Tipos de Programação Pareada

Especialista x Especialista

Tipo de pareamento que a princípio parece ser o melhor, contudo, geralmente traz poucas inovações, já que especialistas já estão acostumados com as estruturas e paradigmas pré-definidos e tendem a não questioná-los.

Principiante x Principiante

Tipo de pareamento que traz melhores resultados que um principiante trabalhando sozinho, contudo, a curva de aprendizagem e de produção deste tipo é bem lenta, sendo ele desencorajado.

Especialista x Principiante

Tipo de pareamento mais recomendado, de modo que a curva de aprendizado do principiante tem crescimento rápido, além de que, o desconhecimento do principiante de estruturas e paradigmas pré-definidos o faz questioná-los, podendo gerar novas ideias e inovações. Contudo, para que este pareamento funcione adequadamente, o especialista precisa ter paciência e vontade de ensinar o principiante, bem como é requerida proatividade deste último, para que o primeiro não faça tudo sozinho.

Treinamento Programação Pareada

  • Incluir descrição do treinamento/DOJO - passo a passo - etapas
  • Registrar os detalhes da dinâmica
  • Infraestrutura Necessária para a dinâmica
  • Código referência no projeto da disciplina (00-Disciplina)
  • Treinamento em, pelo menos 2 linguagens

Referências

Programação em par

⚠️ **GitHub.com Fallback** ⚠️