Como o Vinícius Teles sabiamente disse há alguns anos, “Programação em par é uma das práticas mais conhecidas e mais polêmicas utilizadas pelos que adotam o Extreme Programming“. Emprestando mais algumas de suas palavras, o motivo é que:
“Ela sugere que todo e qualquer código produzido no projeto seja sempre implementado por duas pessoas juntas, diante do mesmo computador, revezando-se no teclado.
À primeira vista, a programação em par parece ser uma prática fadada ao fracasso e ao desperdício. Afinal, embora possa haver benefícios, temos a impressão de que ela irá consumir mais recursos ou irá elevar o tempo do desenvolvimento. Entretanto, não é exatamente isso o que ocorre.”
Não, não é isso mesmo!
Nossa experiência
Há quatro meses decidimos, de uma vez por todas, levarmos realmente à sério esse negócio de programação em par aqui nos times de desenvolvimento dos sistemas centrais da Locaweb. De imeditato, optamos pelo caminho mais eficaz: reduzimos pela metade o número de máquinas dos times. Sim, quase que do dia para a noite, passamos a ter apenas e tão-somente uma máquina para cada dois desenvolvedores.
Estações de pareamento: como é que é isso?
Desde que fizemos a redução de 50% de nossas estações de trabalho, passamos a ter as chamadas estações de pareamento, máquinas destinadas exclusivamente para trabalho.
Estações de pareamento precisam ter:
– usuário genérico para login;
– script para settar no git o dupla atual;
– configuração padrão de desktop, diretórios e ferramentas;
– apenas o instante messager de trabalho;
– apenas o cliente de e-mail de trabalho;
– acesso total à Internet;
– idealmente: 2 teclados, 2 mouses e 2 monitores (grandes!).
Mas não devem ter:
– arquivos pessoais;
– programas de distração.
Bem, não está diretamente associado ao modelo de estações de pareamento, mas é bem importante também que as duplas tenham ao seu lado o monitor da integração contínua de seu time, para ter sempre à vista o feedback dos builds. No nosso caso, temos monitores suspensos como o que pode ser visto na foto ao lado — de preferência, sempre verdinhos!
Estação de relax: tem isso, é?
Junto com a idéia das estações de pareamento também adotamos a idéia de estação de relax. Atualmente temos apenas uma, dado o tamanho de nossa equipe.
A estação de relax é uma máquina com acesso total à Internet para a galera relaxar um pouco durante a jornada de trabalho, acessar e-mail pessoal, redes sociais, internet banking, enfim, o que quiserem e bem entenderem. Acesso total à qualquer hora do dia!
O que temos colhido com isso?
Até agora só ganhamos! Ganhamos produtividade, qualidade, propriedade coletiva de código, padronização, e por aí vai.
Desperdício isso? Não, acho com certeza não.
Estrátegia BEM legal essa de ter uma estação apenas para trabalho. Realmente acho que prejudica o pareamento o fato de estar pareando com alguem em sua maquina pessoal e uma conversa pessoal começar no instant message!
Bem acho legal este esquema de trabalho. Pena que ainda não se trabalha assim na maioria das empresas. E se você é um consultor independente, isso beira a utopia. E a estratégia de se ter a estação de pareamento para cada par da equipe e uma estação de relax é bem bacana.
Dois monitores e dois teclados pra cada? Por que isso? Quer dizer, um monitor e um teclado com trackpad não resolveria? (Não tou questionando seu método, apenas quero descobrir mais sobre a técnica 🙂
Outra coisa: no seu caso, a imagem dos monitores é espelhada (mirrored)?
Oi Herberth,
– 2 monitores, 2 teclados e 2 mouses por estação de trabalho dá mais conforto pras duas pessoas que vão passar o dia todo juntas, pareando. Poderia ser 1 monitor, 1 teclado e 1 mouse, isso não invalidaria a técnica de programação em par, de modo nenhum; só não seria tão confortável.
– No meu time são 2 monitores com tela expandida. Mas em outros times já vi o pessoal usando tela espelhada. Vai do gosto das duplas, não tem uma regra.
Abraço
Realmente acredito que essa forma de trabalhar vai ganhar muito espaço e espero poder trabalhar assim também um dia