• Home
  • Blog
  • Programação em grupo - 5 programadores num único computador?!

Programação em grupo - 5 programadores num único computador?!

Pré-corona. Cinco programadores numa sala estão a olhar para um ecrã grande. Quatro deles estão a discutir, o outro está a escrever. Ouve-se um sinal sonoro. Todos mudam de lugar e continuam como se nada tivesse acontecido. O que é que se passa aqui?

Publicado em
9 de abr de 2021
Tempo de leitura
6 Minutos
Redigido por
Knowly

A realização de experiências para melhorar os nossos processos faz parte do nosso trabalho diário. Por isso, quando ouço falar de algo que nos pode ajudar a melhorar, quero investigá-lo. No início de 2019, participei na convenção Domain Driven Design Europe. Durante os intervalos, conversei muito com outros participantes, na sua maioria programadores.

Em muitas dessas conversas, o workshop Mob Programming da convenção do ano anterior foi mencionado. Os desenvolvedores estavam muito, muito entusiasmados com a programação em grupo: vários desenvolvedores trabalhando na mesma sala em um único PC. Explicaram o quanto tinham aprendido e crescido como equipa em resultado destas sessões. Isso foi um sinal claro para eu aprender mais sobre o assunto. Depois disso, decidi que iríamos experimentá-la.

Uma parte vital de uma experiência é a hipótese. Sem ela, não se sabe se a experiência foi bem sucedida. A minha teoria era que a programação mob nos ajudaria a partilhar conhecimentos entre programadores enquanto construíamos código limpo.

Planeei e preparei a nossa primeira sessão de programação em grupo, o que não foi muito difícil:

  • Unir um computador ligado a um ecrã grande

  • Colocar uma mesa em frente ao ecrã.

  • Adicionar cinco lugares à mesa.

  • Colocar alguns aperitivos e materiais na mesa.

E lá estávamos nós, cinco programadores numa sala com apenas um computador:

O que aconteceu durante a nossa primeira sessão de programação mob?

Wesley senta-se perto do teclado (estamos a usar o seu PC) e é-lhe automaticamente atribuído o papel de driver. O driver é um dispositivo de entrada inteligente: ele pode digitar, mas não pode tomar decisões. Os outros programadores ficam com o papel de navegador. São eles que discutem o que deve acontecer e dizem ao condutor o que fazer.

O condutor é um dispositivo de entrada inteligente: pode escrever, mas não está autorizado a tomar decisões

Começamos a trabalhar numa história simples de aquecimento em que temos de remover algum conteúdo desatualizado no rodapé do sítio.

Os navegadores dizem ao Wesley para iniciar o Docker. Vemos imediatamente uma mensagem de erro. Wesley explica que isso às vezes acontece, mas é sempre resolvido com algumas tentativas. Não tentamos novamente, mas os navegadores explicam quais configurações devem ser alteradas. A partir de agora, o Docker inicia sempre sem erros;

Wesley escreve em uma nota adesiva o que ele aprendeu sobre o Docker. Ele coloca essa nota adesiva na folha de papel grande chamada Aprendizado.

Escrevo numa nota adesiva que o facto de o Docker não arrancar estava a atrasar-nos. Eu o coloco no Waste Snake, uma grande folha de papel com uma cobra desenhada nela. Nesta folha, você coloca notas adesivas descrevendo tudo o que impede a multidão de programar de verdade:

Passados 12 minutos, soa um sinal sonoro. Todos têm de mudar para a direita. O condutor torna-se navegador e um dos navegadores torna-se condutor. É um pouco incómodo e demora algum tempo a recomeçar. Mas ficamos muito melhores depois de algumas trocas.

Nós terminamos a história e começamos a trabalhar na próxima: Yii2 view causa comentários falsos no HTML, o que causa invalidação do HTML. Uma história interessante. Ela já foi pega duas vezes por desenvolvedores diferentes, mas ambos ficaram presos. Toda a gente contribui com a história. Eventualmente, nós corrigimos o problema de uma forma que todos estão muito satisfeitos.

Após duas horas, a sessão termina.

O que é que aprendemos com a nossa primeira sessão de programação mob?

Fazemos uma reunião de retrospetiva para discutir o que correu bem e o que podemos melhorar. A principal conclusão é: corrigimos a história de forma melhor/mais completa numa iteração do que quando uma única pessoa teria trabalhado nela.

Corrigimos a história de uma forma melhor/mais completa numa única iteração do que quando uma única pessoa teria trabalhado nela.

Toda a gente se sente energizada durante a retrospetiva. Todos gostámos da experiência. Torna-se evidente que a programação em grupo nos ajuda a partilhar conhecimentos enquanto construímos código limpo.

A maior parte das aprendizagens foram bastante óbvias, como quando um atalho era desconhecido para o controlador, ou a configuração de ferramentas para o ajudar a ser mais eficiente. Tornou-se óbvio como é fácil adicionar desperdício ao seu próprio processo de desenvolvimento, usando soluções alternativas se um sistema se comportar de forma inesperada. Isso valida a necessidade de abraçar o Kata de Melhoria.

Outras aprendizagens foram mais subtis. Por exemplo, encontrar formas de dividir um problema difícil em problemas mais pequenos. Ou as sugestões sobre como realmente trabalhar com Test Driven, criando primeiro um teste que falha em vez de apenas adicionar um teste depois.

A experiência foi bem sucedida! A próxima sessão está imediatamente planeada

Um dos aspectos mais difíceis de acertar foi o nível de comunicação entre os navegadores e o condutor. Não se quer explicar tudo, especialmente para os programadores mais experientes. Mas também não se quer deixar que um programador mais jovem sinta que está a ser atirado para o fundo do poço. Com o tempo, a multidão aprende a dirigir-se aos condutores individuais da forma correta.

Programação da multidão à distância

Nos Países Baixos, estamos atualmente em confinamento. O nosso escritório está fechado e toda a gente trabalha remotamente. Isto torna impossível a programação em grupo, como descrito acima, porque não podemos estar na mesma sala.

No entanto, continuámos a querer fazer sessões de programação em grupo. Por tentativa e erro, chegámos ao seguinte para uma excelente sessão de programação em grupo à distância:

  • Todos têm uma webcam, e todos a ligam durante uma sessão.

  • Usamos o Whereby para hospedar nossas reuniões porque você pode compartilhar sua tela e ainda ver os feeds de câmera uns dos outros.

  • O motorista faz login em um computador dedicado por meio de uma conexão de área de trabalho remota (criamos uma conta de usuário mob na rede interna para isso).

  • Criamos uma conta de usuário mob separada para o Git. Isso facilita muito a troca de papéis.

Como é que posso experimentar isto no meu próprio ambiente de trabalho?

De todos os artigos, blogues e livros electrónicos que li sobre programação mob, aconselho vivamente a leitura destes dois:

Depois disso, basta escolher uma data com a sua equipa e experimentar. Divirta-se!

Veja mais dos nossos blogs

Caroline

Caroline

12 de dez de 2024

Explicação das nossas prestações de emprego secundário

While your salary is a big deal when picking a job, let's not forget the perks that come with it. The secondary benefits can really sweeten the deal! And we believe we've put together a fantastic package. Dive into all our wonderful extras!

Ler mais
Caroline

Caroline

8 de abr de 2025

Trabalhe e prospere!

Trabalhar para a Easy LMS é gratificante! Claro, oferecemos um salário competitivo, abonos de viagem e trabalho remoto, e ainda 25 dias de férias pagas por ano! Mas além disso temos orgulho em oferecer benefícios que ajudam você a se sentir e fazer o seu melhor. O seu bem-estar, físico e mental, é a nossa maior prioridade! Porque os nossos funcionários são a espinha dorsal da nossa organização.

Ler mais
Caroline

Caroline

22 de abr de 2025

O seu primeiro mês

Quando se tem um novo emprego, está-se ansioso por começar! Ao mesmo tempo, há sempre uma boa dose de nervosismo. O que é que o espera? Como serão as suas primeiras semanas? E com que rapidez pode realmente acrescentar valor? Este último é o nosso objetivo. O nosso programa de integração claro para engenheiros de software ajudá-lo-á a conhecer a nossa empresa, os seus colegas e as suas tarefas num instante! Veja como lhe damos o pontapé de saída!

Ler mais