Like A Girl

Pushing the conversation on gender equality.

Code Like A Girl

Pair programming: por que fazer?

Em uma simples definição, pair programming são duas pessoas trabalhando juntas no mesmo código, de uma única estação de trabalho, compartilhando idéias e soluções. De acordo com Martin Fowler, “Pair Programming é sobre melhorar o design e minimizar os erros”[1].

Quando duas pessoas trabalham em conjunto ganhamos em qualidade de código, pois a programação em voz alta leva a articulação mais clara das complexidades e detalhes ocultos na codificação. Já quando o quesito é transferência de conhecimentos, a programação em par é uma poderosa ferramenta para que um desenvolvedor júnior adquira técnicas ou habilidades mais amplas de membros da equipe mais experientes.

Mas, para o CIO e gerente de sua empresa, essa prática pode ser um desperdício. Como provar que duas pessoas trabalhando em uma mesma atividade vão produzir mais do que se cada um trabalhar em atividades separadas, sendo que o júnior pode diminuir a velocidade de um especialista ou sênior? De acordo com o economista Laurie Williams da universidade de Utah na cidade de Salt Lake, pessoas pareando são apenas 15% mais lentas do que duas pessoas trabalhando individualmente, porém produzem 15% menos bugs[2]. A IBM reportou gastos de aproximadamente $250 milhões corrigindo e refazendo correções para 30.000 problemas relatados por clientes [3]. Isto é quase $8.000 por cada problema.

Eu acredito na filosofia que duas pessoas pensam melhor que uma. Com o pair programming, podemos detectar os erros mais cedo e os problemas podem ser resolvidos de uma melhor forma, pois enquanto o “driver” está pensando no código o “navigator” foca na qualidade e em pontos em que o par pode esquecer.

Além de aplicar pair programming para se desenvolver software, descobrimos que essa técnica já é utilizada em outras áreas:

A seguir eu pontuo algumas recomendações no pair programming que fizeram sentido para mim na minha experiência como desenvolvedora,

Itens a evitar:

Parar para conversar com outras pessoas;

Se estiver no comando, esquecer do pair;

Discussões improdutivas;

Focar no Ego;

Mexer no celular;

Atitudes a tomar:

Momentos alternados de concentração e descontração.

Celebração das conquistas;

Disposição a aprender e a ensinar;

Notificações silenciadas (celular, smartwatch, computador, …)

Troca de feedbacks;

Planejamento das atividades, conversem antes de começar a colocar a mão na massa;

Perguntas a fazer:

Você acha que isso é correto?

Você acredita que este é um teste válido?

Você tem alguma ideia melhor?

E agora?

Pontos a falar:

Acho que este é um nome melhor para esta variável ou classe.

Sugestões em relação a tecnologia.

Feedbacks.

Na bionexo usamos o pair programming para resolver problemas que entendemos ser de alta complexidade técnica, ou em novas histórias, onde nenhum dos integrantes tem total conhecimento do fluxo. Nesses casos, juntamos as forças para aprender e compartilhar os conhecimentos.

Quando um integrante está com dificuldade de realizar uma atividade, envolvemos uma pessoa que tenha mais experiência para que naquele momento o pair programming faça parte do aprendizado, assim contribuindo para a entrega da atividade e o crescimento do profissional.

Claro que muitas vezes estávamos fazendo pair programming por fazer, mas como assim, por fazer? O que eu quero dizer é que tem momentos que a atividade exige ajustes pequenos, aí seria o momento de “splitar”, mas cada dia é uma oportunidade de aprendizado e é assim que enxergamos na bionexo, nós erramos mas aprendemos com os erros.

Espero que esse conteúdo possa contribuir no dia a dia do seu time melhorando o pair programming ou até iniciando essa prática.

[1] https://martinfowler.com/bliki/PairProgrammingMisconceptions.html

[2] Williams, Laurie, A Collaborative Software Process PhD Dissertation, University of Utah, 2000.

[3] “A Discipline for software Engineering”, 1995, Humphrey, W.S.

Originally published at medium.com on June 14, 2017.

Siga a tag codelikeagirlBR para ver nossos posts! 😀

Quer escrever ou traduzir artigos em português para a Code Like A Girl? Se você já faz parte do time de escritoras(es) da Code Like A Girl basta enviar seu artigo diretamente para nossa publicação. Se você ainda não faz parte do nosso time, envie uma mensagem direta para a conta de twitter CodeLikeAGirlBr. Nós avaliaremos seu artigo e ajudaremos a refiná-lo para publicação.