Software Developers Retreat (dia 1)

O primeiro dia do nosso retiro de desenvolvedores acabou!

Pela manhã, parte do grupo ficou na casa e eu fui com mais outros dois devs fazer as compras da casa para a semana. Achei que seria rápido, mas no fim demoramos quase três horas nessa tarefa, que foi bem divertida, apesar de cansativa.



Compramos de tudo: comidas, bebidas, material de limpeza, itens para churrasco, etc. Eu já tinha preparado a lista de supermercado antes, o que facilitou muito. Mesmo assim, lembramos de muitas coisas que não estavam na lista enquanto fazíamos as compras.

Voltamos para a casa por volta do meio-dia e o resto do pessoal já estava acomodado na mesa da sala programando. A mesa era bastante grande e cabiam todos os nove membros do time.

O primeiro problema que tivemos foi conseguir fazer a programação em pares da mesma forma que fazemos no escritório. Lá nós temos um computador com dois monitores, dois teclados e dois mouses. Seria inviável levarmos para a casa de campo todos os computadores do escritório e todos os monitores. A solução que encontramos foi cada desenvolvedor levar seu notebook pessoal (por sorte, todos tinham um!) – eram 7 MacBooks e 2 notes rodando Ubuntu Linux. Para fazer o pair programming, usamos o esquema de compartilhamento de tela do Mac OS X, que funciona muitíssimo bem. Assim, quando fazíamos os pares, uma das pessoas acessava a máquina da outra, visualizando sua tela e com a possibilidade de interagir (teclar e controlar o mouse).

O delay é praticamente zero, então dava para trabalhar junto usando esse esquema sem problema. Existem outras formas de fazer isso, usando o Screen e o Vim, porém, como parte do nosso ambiente é Java e temos uma grande dependência do Eclipse, preferimos o compartilhamento da tela.
Depois de comer, voltamos para a mesa e continuamos trabalhando até quase 22h.Por volta das 16h fizemos uma pausa para comer. Descemos para a área da churrasqueira. Alguns não comiam carne, então também fizemos opções vegetarianas (abobrinha, cebola, queijo coalho, saladas, etc). Todo mundo comeu bem e pôde descansar um pouco da viagem. Um dos programadores resolveu fazer uma sauna seca (que havia na casa também) e fizemos nossas tradicionais “flexões de braço antes do almoço”, para manter o time forte.

O segundo problema que tivemos durante o dia foi a lentidão da Internet. Em alguns momentos do dia, a rede baleiava. Pedimos para todos desligarem serviços em seus notes que eventualmente pudessem estar consumindo banda. Uma solução legal que fizemos foi na hora de rodar os testes de aceitação em ambiente de staging (integração). Em geral, esses testes rodavam usando Selenium e Firefox na máquina do desenvolvedor, acessando o site em nosso servidor de staging. Como a rede estava muito lenta, cada página demorava muito para carregar e os testes demoravam muito.

Tivemos a ideia de criar uma máquina no EC2 com Ubuntu e VNC. Assim, poderíamos rodar os testes de aceitação direto dessa máquina que, estando dentro da rede do EC2, rodariam bem mais rápido e não consumiriam nossa banda para rodar (apenas a banda do VNC, que poderíamos deixar a janela oculta. Para configurar essa máquina, usamos as instruções desse site.



No final do dia, alguns resolveram jogar Starcraft 2, enquanto outros foram assistir Walking Dead na televisão.

Pontos Positivos do dia

  • Comida boa (o arroz estava delicioso!)
  • Casa agradável, bem arejada, confortável
  • Mesa grande onde cabiam todos do time
  • Nova maneira de programar pareado usando compartilhamento de tela do Mac
  • Fizemos um pequeno vídeo em Stop Motion com a movimentação do pessoal

Pontos Negativos do dia

  • Internet lenta em alguns momentos
  • Cansaço da viagem
  • Demora para fazer as compras
  • O banho não tinha água quente. Depois descobrimos onde ligava o aquecedor
  • Não conseguimos fazer o WI-FI funcionar perto da piscina. A replicação de roteadores não rolou com o nosso Netgear 🙁
  • O banheiro da sala estava entupido
  • Fez frio e não pudemos usar a piscina