O que é Pair Programming e, quais as vantagens e desvantagens
Como o próprio nome já entrega, programação em par é a atividade de dois desenvolvedores que trabalham nos mesmos projetos, usando uma única máquina.
Um programador atua como o escritor, que codifica, enquanto o outro poderá servir, por exemplo, de revisor, que verificará se o código está sendo escrito corretamente, revisará e verificará os detalhes, além de descobrir para onde ir em seguida.
Essas funções podem ser trocadas a qualquer momento, mas o interessante desta técnica é que não há regras: o pair programming se dá da forma como melhor atende os profissionais, de maneira que cada dupla pode segmentar a divisão de trabalho da forma que melhor lhes aprouver.
Esta prática também é comumente chamada de "pareamento", "programação em pares" e "programação emparelhada".
Como funciona
Durante a implementação, um programador age como piloto (digitando o código) e outro age como co-piloto (revisando o que está sendo digitado, apontando problemas e pensando na solução como um todo).
A cada determinado ciclo de tempo, os profissionais invertem os papéis. Dessa forma o piloto passa a ocupar o papel de co-piloto e vice-versa.
Vantagens
A programação em par traz diversas vantagens a todos os envolvidos, como:
Compartilhamento do conhecimento
O conhecimento pode ser ainda mais compartilhado, principalmente se os pares forem revezados com frequência.
Correção de falhas
Com duas pessoas olhando o código, as falhas e erros de lógica são detectados (e corrigidos) mais cedo. Isso faz com que o trabalho seja mais fluido.
Manutenibilidade
Um código escrito a quatro mãos é, naturalmente, mais simples de sofrer manutenção. Afinal de contas, durante a escrita do código sua clareza já estava sendo testada pelo copiloto, que questionará sempre que não entender determinado trecho.
Confiança
Como o código é desenvolvido em pares, os desenvolvedores têm mais confiança no resultado final, uma vez que ele foi validado por, pelo menos, mais uma pessoa.
Os possíveis erros e problemas também são divididos, o que faz com que o time como um todo passe a enxergar o código como propriedade coletiva. Nesse formato, todos estão sempre dispostos a ajudar, pois o sucesso ou fracasso pertencem a todos os membros da equipe.
Amadurecimento
Trabalhando em pares, os profissionais amadurecem a sua forma de trabalhar. Em times com profissionais mais experientes mesclados com profissionais menos experientes, o pareamento faz com que essa experiência seja transferida diretamente, na resolução de problemas do dia a dia.
Mesmo quando ambos não sabem como resolver o problema, a pesquisa se torna mais eficiente e eles podem validar as ideias em conjunto, o que faz com que normalmente a solução encontrada seja mais confiável.
Pressão do Par
Quando há uma outra pessoa junto fazendo o trabalho, a tendência é que o desperdício de tempo diminua consideravelmente. Além disso, como o trabalho é compartilhado, há um maior sentimento de compromisso e ninguém gosta de ser responsável pelo fracasso de outro.
Com isso, é seguro afirmar que a pressão do par faz com que os dois desenvolvedores produzam juntos uma quantidade de trabalho maior do que produziram isolados, mesmo somando o trabalho dos dois ao final do dia.
Velocidade
As vantagens apontadas acima levam, naturalmente, a um aumento na velocidade de desenvolvimento do time.
Um código com menos bugs, onde as soluções são discutidas e há a pressão do par para que o resultado saia, faz com que as soluções fiquem prontas mais rapidamente e com mais qualidade.
Além disso, a inserção de um novo membro no time também é facilitada, uma vez que todos têm o hábito de compartilhar conhecimentos e construir soluções em conjunto.
Dificuldades
Existem, é claro, algumas dificuldades para a adoção da programação em par. A primeira delas diz respeito à personalidade dos desenvolvedores envolvidos.
Eles devem entender que o código produzido é coletivo, e não sua propriedade. Devem também aceitar sugestões e críticas ao seu trabalho, entendendo que isso decorre do fato de a propriedade do código ser coletiva.
Outra grande dificuldade é convencer “quem paga a conta” que vale a pena. No entanto, isso pode ser feito utilizando-se a prática. Realizando alguns experimentos com programação em par, comparando o resultado com programação solo, normalmente chega-se à conclusão de que a programação em par é extremamente vantajosa.
Dicas para trabalhar em par
Pode até não parecer, mas trabalhar em par não é tão simples assim. Algumas dicas podem ajudar os times a trabalharem em pares:
Entender como as pessoas trabalham
Para trabalharem juntas, as pessoas devem entender e respeitar a forma como cada um faz as coisas. Isso deve ser explicitado por todos, de forma que não haja dúvidas e equívocos no momento do pareamento.
O importante aqui é que o par esteja consciente da forma de cada um trabalhar, e consiga montar um esquema de trabalho para ele.
Realizar trocas de pares frequentes
É importante que os pares sejam trocados com certa frequência. Isso pode ser feito a cada sprint, a cada dia, a cada turno, essa frequência deve ser definida pelo time.
É importante pois as pessoas são diferentes, cada uma possui conhecimentos e habilidades diferentes das demais. A melhor forma de garantir um bom entrosamento e uma boa troca de conhecimento é misturando-as.
Todos devem saber porque estão trabalhando em par
Os desenvolvedores devem saber porque trabalham em par, e tirar o máximo proveito dessa situação. Buscar novas formas de resolver os problemas, compartilhar as soluções, realizar revisão de código e conversar. Essas práticas devem fazer parte da alma do par, sendo executadas o tempo todo.
Espero que com esse post tenha ficado claro o que é e as vantagens da programação em par. Dúvidas ou complementos ao assunto são bem-vindos nos comentários. Compartilha com a gente o que você achou do nosso conteúdo!