< Insights

Como elevar a qualidade do seu trabalho com o Pair Programming

  • Desenvolvimento de Software

Empresas estão aplicando agilidade para responder rapidamente às mudanças de contexto no mundo atual. Diversas práticas podem ser aplicadas para desenvolver agilidade e o Pair Programming é uma prática realizada para aumentar a qualidade do trabalho, tornando os códigos mais simples e de fácil manutanção.

Utilizado por times que adotaram o XP (Extreme Programming), essa técnica é polêmica, porém, possui vantagens inegáveis, que tornam o processo de programação mais eficiente.

Dito isso, saiba o que é Pair Programming, como funciona e como implementar essa técnica em seu time de desenvolvimento.

O que é Pair Programming?

O Pair Programming, que em português significa programação em pares, é uma técnica de desenvolvimento de softwares ágil. O intuito é tornar o processo de criação mais ágil, aumentando a qualidade de criação e desenvolvimento do programa sem, necessariamente, alterar a data de entrega do projeto.

Normalmente, o trabalho é dividido da seguinte maneira: uma pessoa fica responsável por controlar o processo de criação dos códigos, assim como sua escrita na plataforma, e seu parceiro realiza um trabalho analítico, ou seja,analisa o que foi criado por seu par e por meio de feedbacks constantes, garante que as melhores práticas de programação foram executadas. 

A pessoa que está criando os códigos estará com o teclado e receberá o nome de driver (ou piloto). Quem está fazendo o trabalho analítico é chamado navigator  (ou copiloto).

Além disso, é comum que as duplas troquem de papéis ao longo do desenvolvimento, pois a técnica Pair Programming possibilita um processo de criação e programação dinâmico e eficaz. Essa troca é incentivada, pois torna o trabalho mais produtivo, pois ninguém se cansa das tarefas realizadas, e impede erros comuns, com revisões que um dos parceiros pode não ter percebido. 

Quais são as bases do Pair Programming?

O Pair Programming possui uma base muito simples de trabalho, que no básico é a realização de tarefas em duplas. Outro ponto é a divisão de tarefas, pois o intuito não é que os parceiros realizem o mesmo trabalho, mas que se orientem em duas tarefas distintas para que juntos criem algo. O conceito básico é o seguinte: compartilhar codificações de um método ou de um trecho de códigos paralelamente entre os parceiros, em que trabalham juntos e, ao mesmo tempo, no mesmo computador, mas com papéis distintos que serão invertidos no decorrer da programação.

Nessa dupla, enquanto um dos parceiros está codificando e programando, o outro acompanha seu trabalho, observando se os padrões de projeto estão sendo seguidos e se há erros na codificação. Enquanto analisa, contudo, esse programador deve observar se há possibilidades de refatoração no projeto, sempre seguindo regras de negócios. Ele deve observar e opinar se as etapas de teste estão sendo realizadas e quais os resultados apresentados.

Pair programming pode ser utilizado para disseminar o conhecimento dentro do time, já que a pessoa que conhece mais de um tema poderá propagar o conhecimento com o seu par de trabalho. Essa estratégia vem sendo adotada por várias empresas para a gestão do conhecimento. 

O rodízio dos pares é essencial para que o pair programming funcione. Os pares devem trocar os papéis com frequência, ou seja, quem estava como copiloto passará a ser piloto e vice-versa.

New call-to-action

Para que funciona o pair programming?

A programação de um software a partir da técnica de Pair Programming auxilia em um trabalho mais dinâmico, trazendo agilidade e compartilhando experiências, métodos e conhecimentos entre a equipe.

Durante a implementação dessa técnica dentro de seu time, serão realizados pares, em que um irá agir como “piloto” e outro será o “copiloto”. Ambos serão muito importantes, mas desempenharão tarefas distintas: o piloto ficará responsável pela programação, ou seja, pelo desenvolvimento do software. Enquanto o copiloto irá analisar cada etapa realizada, buscando por erros e pontos de melhoria do código, para ter um design mais simples.. 

Os parceiros irão mudar de tarefas no decorrer do projeto, em um determinado intervalo de tempo.

As duplas de parceiros poderão trabalhar com cinco tipos de técnicas, que podem ser aplicadas na dupla de acordo com o nível de conhecimento dos parceiros em programação, do objetivo do projeto, entre outros pontos.

⦁ Técnica de Pomodoro;

⦁ Baseada em turnos;

⦁ Testador – Codificador;

⦁ Mentoring;

⦁ Peer Review.

Benefícios e pontos de atenção do Pair Programming

A técnica de Pair Programming possui benefícios como tantas outras técnicas ágeis. Suas vantagens estão relacionadas a um trabalho em equipe eficaz, troca de conhecimentos, desenvolvimento de habilidades sociais, entre outras.

As principais vantagens do Pair Programming são:

⦁ Troca de conhecimento: durante o trabalho em par é comum que habilidades, técnicas e conhecimentos sejam compartilhados. Ainda mais quando a dupla for formada por alguém com pouca experiência na área e outra pessoa com mais experiência. Se as duplas trocarem de tarefas com frequência, essa partilha de conhecimento será ainda maior, pois os dois terão a oportunidade de vivenciar os dois tipos de trabalho.

⦁ Correções: quando o trabalho é realizado por apenas uma pessoa, a chance de existirem erros é bem maior, pois o programador não possui o distanciamento necessário de seu trabalho para avaliar. No entanto, o trabalho em dupla, com uma das partes focadas na análise do código e em erros, permite que eles sejam identificados facilmente. Além disso, ele ficará livre para analisar outras partes, enquanto o outro corrige o problema que foi identificado.

⦁ Manutenção: um código necessita de manutenção durante sua produção e quatro mãos trabalham melhor do que duas. Ou seja, a dupla poderá se revezar e se ajudar com a manutenção.

⦁ Confiança: por ter sido realizado em pares, há uma confiabilidade maior no resultado, pois há a garantia de que duas pessoas analisaram e se empenharam na criação do software ou daquela etapa em específico. Além disso, a confiança entre os colegas de trabalho também é desenvolvida, pois é necessário confiar que ele irá fazer sua parte corretamente, seja a análise ou a programação.

⦁ Amadurecimento: durante os trabalhos em pares, os profissionais têm a possibilidade de amadurecer suas técnicas e como trabalham. Isso porque a experiência promove a troca de conhecimentos, o aperfeiçoamento de habilidades sociais, entre outros pontos que tornam um profissional mais maduro.

⦁ Pressão: ao saber se está em dupla, com alguém analisando ou dependendo de sua análise, cria-se uma pressão em seu trabalho. Ela lhe incentiva a realizar sua tarefa, sem procrastinação, dentro de sua carga horária, seja ela de 8 horas, mais ou menos. Esse é um dos pontos mais positivos, pois muito tempo é gasto com tarefas desnecessárias, sendo assim, o projeto avança melhor e pode ser concluído em menor tempo.

⦁ Velocidade: devido ao trabalho em dupla, com tarefas divididas, pouca procrastinação e organização, as etapas são finalizadas em menor tempo, garantindo agilidade para o trabalho.

O Pair Programming, contudo, possui alguns pontos de atenção e que exigem cuidados, algumas desvantagens causadas por dificuldades culturais e aumento de custos. As desvantagens da programação em pares são:

⦁ Aumento de custos: Mesmo aumentando o custos, costuma-se perceber a redução de defeitos e a quantidade de horas trabalhadas com bugs, ou seja, o custo acaba não aumentando. 

⦁ Falta de prática: quando o time não tem experiência em pair programming, pode existir diversas dúvidas em como executar o trabalho e o rodízio, aumentando o custo de coordenação.

⦁ Dificuldades culturais: alguns programadores podem ter dificuldade em realizar o trabalho em duplas. Isso porque muitos estão acostumados a trabalhar sozinhos ou a serem os únicos a deter certo conhecimento. Isso poderá atrapalhar o dinamismo do projeto, causando problemas no desempenho da programação que irá atrasar o trabalho. 

⦁ Desvio de atenção: em alguns casos, não há aquela pressão para realizar as tarefas, mas, sim, dois profissionais acostumados à procrastinação. Isso causará um atraso enorme, pois o projeto não está sendo desenvolvido, nem ao menos uma análise será feita e, quando feito, pode ter erros ou atrasos.

Como aplicar o Pair Programming em seu time

Para aplicar o Pair Programming, é necessário estar, antes de tudo, familiarizado com as práticas ágeis de programação. A cultura ágil deve fazer parte do seu time, pois assim o processo de transição de técnicas será mais fácil. Em seguida, será necessária a criação de uma nova dinâmica, com a identificação dos parceiros, o que cada um irá realizar e como desenvolverá seus projetos.

Existem técnicas que podem ser aplicadas às duplas, para isso, é necessário entender o que a dupla necessita e quais as técnicas que irão favorecer seu trabalho. Lembre-se de que duplas diferentes, ou seja, com conhecimentos e bases distintas podem ser muito boas, pois irá enriquecer o conhecimento de seus profissionais, criando uma equipe altamente qualificada. Além disso, busque mudar as duplas, para que essa troca seja feita com mais profissionais, além de criar uma dinâmica no ambiente de trabalho.

Assim que as duplas de parceiros começarem a se formar e que a cultura ágil estiver presente, explique para seu time porque estão adotando o Pair Programming. Fale sobre as vantagens profissionais, como isso ajudará com o desenvolvimento e programação de softwares, entre outros aspectos.

Por último, mas não menos importante, possua uma estrutura adequada para a programação. Equipamento e ferramentas que irão facilitar o trabalho em duplas, por exemplo, é necessário o uso de um computador apenas, mas monitores maiores, facilitando a visualização dos parceiros ao mesmo tempo, do que está sendo feito. Em casos onde o pareamento é remoto, é necessário utilizar ferramentas adequadas para garantir a eficiência. 

Além disso, mesas que caibam ambos são essenciais, para que se sintam confortáveis em seu local de trabalho. Separar as duplas também é importante, pois cada um deverá se preocupar com seus parceiros, e não com outras pessoas ao seu redor. Então, antes de implementar a técnica, garanta que o local esteja propício para ela.

Se deseja implantar uma técnica ágil como o Pair Programming ou outros métodos de programação, ou não que irão auxiliar em seu trabalho, escolha uma empresa qualificada, que irá lhe proporcionar toda a experiência ágil, desde a cultura até as ferramentas necessárias. Fale com nossos especialistas.

Insights do nosso time

Obtenha insights do nosso time de especialistas sobre metodologias de desenvolvimento de software, linguagens, tecnologia e muito mais para apoiar o seu time na operação e estratégia de negócio.