Você ainda acha que programação em par é desperdício?

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.

Galera de Sistemas Centrais pareando

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.

Outra dupla de Sistemas Centrais

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.

{ 8 comments to read ... please submit one more! }

  1. 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! :/

  2. 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.

  3. 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)?

  4. 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

  5. Realmente acredito que essa forma de trabalhar vai ganhar muito espaço e espero poder trabalhar assim também um dia

{ 3 Pingbacks/Trackbacks }

  1. Podcast #7 – Lean Software Development « Blog da Bluesoft
  1. Mais produtividade com uma área de trabalho maior | CØdeZØne!
  1. Podcast #7 – Lean Software Development « Blog da Bluesoft

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>