Mob programming — O que é, como e quando usar

Otacilio Maia
Cesar School Abduzidos
3 min readJun 13, 2019

Por Arthur Oliveira e Otacilio Maia

O conceito

O Mob Programming surgiu através da união das técnicas de pair programming e coding dojo, e consiste em reunir uma equipe de pessoas de um mesmo projeto, com diferentes papéis, para desenvolver uma feature de um sistema.

Uma pessoa ficará responsável pelo papel de piloto, e as outras pessoas assumirão o papel de co-piloto, somente o piloto terá acesso ao teclado, e o time poderá ver através de um monitor grande o suficiente ou um projetor, discutindo e auxiliando o piloto.

Alternância de papéis

É importante que a figura do piloto seja alterada de tempos em tempos, permitindo que outras pessoas da equipe também possam conduzir a experiência, cabe ao time decidir quanto será o tempo de rotação do piloto, mas por padrão 2 horas é um tempo bastante utilizado.

Co-pilotos

Enquanto o piloto fica com a tarefa de colocar as ideias em forma de código, os co-pilotos tem a tarefa de pensar, discutir e decidir as direções para o desenvolvimento, os co-pilotos se encarregam de pesquisar, trocar experiências e tomar as decisões por quais caminhos o piloto deve seguir.

Além do código

Um time de mob programming pode trabalhar em todos os aspectos que tangem o desenvolvimento de um software, como definição de requisitos e histórias de usuário, design, prototipação, realização de testes, deploy do código, experiência do usuário e negócios.

Multidisciplinaridade

É importante que no time de co-pilotos exista multidisciplinaridade de perfis, para que todos os aspectos do desenvolvimento do software sejam trabalhados por diferentes pontos de vista. Essa diferença permite que a equipe tenha diferentes visões sobre o problema e tragam novos pontos para a discussão, isso implica em trocar mais ampla de conhecimento.

Local

Assim como para fazer pair programming é necessário um local adequado, em mob programming isso é indispensável. Por termos uma equipe inteira trabalhando em conjunto em um mesmo espaço temos a necessidade de que a sala seja de um tamanho grande o bastante para que todos se sintam confortáveis, aqui temos apenas um computador como esperado, no entanto é recomendado o uso de mais de um mouse e teclado, pois diferentes membros da equipe podem utilizá-los sem se sentirem desconfortáveis, além da necessidade de um ou mais projetores para tornar a visualização do que está acontecendo na tela mais clara para todos, uma observação a se fazer é que os projetores de preferência sejam de modelos iguais ou que tenham características parecidas.

Pequenas pausas

É possível que algum membro precise fazer uma pausa durante a sessão de mob programming, seja para ir ao banheiro ou pegar algo para beber ou comer, o que pode ocorrer de perder algumas informações importante durante o tempo em que esteve fora, assim a fim de evitar a perda do andamento é uma prática interessante que ao retorno do membro ausente ele se torne o piloto automaticamente, sendo assim não se tem uma quebra de foco da equipe além de deixar o piloto atualizado sobre o que ocorreu durante o tempo em que esteve fora.

O poder de um bom mob programming

O mob programming é extremamente poderoso para desenvolvimento de novas features extremamente complexas, onde o tempo que se levaria para garantir uma boa compreensão sobre todos os aspectos da funcionalidade, definidos de forma separada, por todos os membros do time, levaria mais tempo e poderia haver mais falhas, do que juntar o time inteiro para desenvolver juntos.

Obrigado

Este artigo foi escrito por Arthur Oliveira e Otacilio Maia, estudantes do terceiro período de ciência da computação no Cesar School, você pode entrar em contato conosco através dos e-mails aor@cesar.school e osmn@cesar.school respectivamente.

--

--

Otacilio Maia
Cesar School Abduzidos

Brasileiro, nascido no Recife, técnico em eletrônica, graduando em Ciência da Computação. Inovação com alma, Robôs e Bots, Pessoas e Máquinas são minhas paixões