maos-de-pessoas-de-negocios-com-quebra-cabeca-mostrando-solucao-de-problemas-e-trabalho-em-equipe

Técnicas de Colaboração – Pair Programming, Coding Dojo e Mentoring

Joel Gouveia
em

Desenvolver, em uma equipe ágil, não se trata apenas de programar de forma mais eficiente, mas de perceber se os outros integrantes estão avançando em suas tarefas e até se você mesmo precisa de ajuda! As dificuldade existentes não são pontuais, mas envolvem conceitos e passos mais complexos: desde arquitetura, passando pela lógica e visão global dos pontos em questão.

Numa equipe ágil, a responsabilidade de um desenvolvedor é, acima de tudo, promover comunicação, colaboração e equilíbrio de competência entre os integrantes do time de desenvolvimento. Existem diversas técnicas que podem ser implementadas para melhorar a integração e o nivelamento técnico da equipe de forma que as tarefas sejam organizadas de modo mais igualitário e não haja saturação de apenas um integrante. Entre essas técnicas, estão o Pair Programming, o Coding Dojo e o Mentoring.

Pair Programming

Pair Programming é um dos elementos difundidos pela metodologia de desenvolvimento de software conhecida como Extremming Programming (XP). O objetivo dessa prática é que a equipe (no caso, a dupla) troque técnicas e ideias para a resolução de problemas. O feedback durante a interação garante que um desenvolvedor entenda o raciocínio e as decisões do outro. Apenas um computador é usado e a dupla fica isolada do ambiente comum de trabalho para que não haja o risco de dispersões.

O ideal é que ambos os desenvolvedores estejam em níveis técnicos semelhantes para que um deles não siga apenas o caminho do outro ou fique alheio ao processo no momento do desenvolvimento. Durante a prática, é necessário alterar piloto e copiloto a cada 25 minutos, seguindo a sugestão de tempo do Pomodoro. A prática não deve durar mais de 2 horas para que o foco não seja perdido com o tempo prolongado.

Apesar de haver muitas críticas ao Pair Programming, diversos estudos comprovam sua eficácia.

Coding Dojo

O objetivo do Coding Dojo é treinar o desenvolvimento e a excelência técnica com foco no que será aprendido. O desafio proposto não pode ser um tarefa real a  ser implementada em algum software em desenvolvimento.

O Coding Dojo é realizado em uma sala com diversos desenvolvedores e os turnos podem variar de 5 a 7 minutos seguindo as seguintes modalidades:

  1. Kata.

Nessa modalidade, a solução para o desafio proposto é conhecida pelo desenvolvedor que a apresenta. As soluções e problemas que vão surgindo podem indicar caminhos para alguns desses desafios. Há apenas um computador e existe alternância entre quem pilota, copilota e volta para a plateia. Vale observar que a plateia não pode sugerir soluções. A interação deve ser apenas entre o piloto e copiloto.

  1. Randori.

A diferença básica entre o Randori e o Kata é que no Randori a solução do problema proposto não é conhecida por nenhum dos integrantes. Os turnos e as duplas autônomas permanecem como no Kata.

  1. Kake.

Neste caso, há diversas estações de trabalhos e um integrante, por turno, muda de dupla, alternando entre quem chegou e quem já estava. Essa modalidade pode ser mais complexa, podendo ocorrer de a linguagem e o framework serem totalmente diferentes em cada máquina, focando apenas na solução do desafio, independente da tecnologia.

Mentoring

O Mentoring utiliza Pair Programming e Coding Dojo para transmitir conhecimento. Pode haver troca de turnos entre o mentor e o aprendiz, mas sempre com foco no ensino e no aprendizado. O ideal é ensinar a pescar em vez de entregar a resposta pronta. É uma técnica muito válida também para o mentor que consegue resolver a tarefa, mas tem dificuldade em explicar o passo a passo, ou seja, só consegue resolver na prática. Essa separação entre quem coordena e quem pilota é fundamental para solidificar o conhecimento.

Para um bom Mentoring, é importante querer aprender, ensinar e reconhecer o valor nesse processo. O mentor precisa saber ouvir e entender o raciocínio do aprendiz e o aprendiz deve se sentir aberto para tirar suas dúvida, sem medo de errar.

Antes da prática, independentemente da técnica, é interessante preparar o material e traçar os objetivos para depois validar o que foi realizado, colhendo os pontos abordados e os feedbacks para melhorar constantemente.

Nivelar o conhecimento da equipe e difundir as boas práticas é a meta do mentoring. Com este objetivo alcançado as distribuições das tarefas serão feitas de modo igualitário sem sobrecarregar nenhum integrante tornando o time mais eficiente.

Empresas que utilizam essas técnicas só tem a ganhar, pois além de entregar produtos com maior qualidade, motivam os desenvolvedores a melhorar de forma contínua com a troca de experiências e integração dos membros.


Serviços relacionados

Nós ajudamos você a liderar iniciativas de transformação digital na sua empresa.
Agende uma conversa