Hoje, vou continuar compartilhando com vocês os desafios por categorias:

Gestão de pessoas

Desafio:  Foco das pessoas

Descrição: a ambição das pessoas em se promover pode ultrapassar as fronteiras. Mostrar serviço e abrir portas para uma vaga no exterior podem ofuscar os objetivos do time.

Exemplo: iniciativas de automação de testes ou arquitetura de software lideradas por times de outra região podem desviar o foco e a iniciativa dos integrantes do time no roadmap proposto. O desvio para atendimento de incidentes de produção pode fazer com que as pessoas não foquem nas suas atividades relativas ao time.

Efeito colateral: atrasos nas entregas, requisitos mal planejados, complexidade em atividades que poderiam ser simples. Além disso, pessoas se destacando mais do que o time por trabalhar em interesses próprios.

Mitigação: PO e Scrum Master devem reforçar os objetivos de sprint e roadmap com o time e gestão, além de garantir que os colaboradores sigam a simplicidade pregada nos métodos ágeis. Um bom processo de atendimento aos incidentes de produção deve resolver a questão processual do atendimento de chamados.

Desafio: Gestão compartilhada

Descrição: em grandes corporações, as pessoas costumam se reportar a várias pessoas, sejam elas gerentes funcionais, diretores, gerentes de programa ou até mesmo as lideranças do próprio time.

Exemplo: gerentes de desenvolvimento querendo priorizar melhorias da arquitetura versus roadmap, gestão de incidentes sobrepondo o trabalho da Sprint e pessoas alocadas em diversos projetos ao mesmo tempo (50% no projeto X, 30 % no projeto Y e outros 20% no projeto Z).

Efeito colateral: entrega baixa e pessoas se destacando mais do que o próprio time.

Mitigação: o RH deve trabalhar na busca de talentos que prefiram trabalhar em equipe. A gestão de stakeholders (ver item acima) e lideranças do time devem direcionar o foco das pessoas (ver item acima).

Desafio: Cultura e comunicação

Descrição: a cultura brasileira costuma ser bastante indireta. Para iniciar um assunto, tentamos trazer o máximo de contexto, mas, outras culturas têm abordagens diferentes: americanos são mais diretos, orientais são mais propensos à hierarquia, africanos e latinos costumam ser mais receptivos, e europeus são mais frios.

Exemplo: ao tentar entender um escopo, um time brasileiro faz uma reunião com uma indiana erradicada nos EUA e tem dificuldade para chegar ao ponto (algumas vezes os brasileiros não são tão objetivos).  Ela pergunta “O que vocês querem de mim?”, que é visto como algo rude pelo time. Da mesma forma, ao notificar uma mudança no escopo de trabalho, um americano fala “bom para você” (good for you) que, traduzido de forma menos literal, é algo bom. Outro exemplo é o termo “Vou dar o meu melhor” (I’ll do my best), que é uma forma de o Indiano falar que a entrega talvez não seja viável.

Efeito colateral: conflitos entre pessoas/equipes, atrasos na comunicação por entender errado.

Mitigação: as regras culturais devem ser estudadas pela liderança e disseminadas entre os times, mas toda regra tem exceções (indianos comendo carne bovina, europeus mais informais do que os próprios brasileiros). A dica seria: entenda as culturas, mas não se prenda aos estereótipos, pois, em um ambiente globalizado, as culturas podem ultrapassar as fronteiras.

Desafios técnicos

Desafio: Code review distribuído

Descrição: uma das práticas ágeis é o code review, em que um desenvolvedor revisa o que o outro fez e provê um feedback. Geralmente, deve-se ter um número mínimo de revisões para que o código seja aceito. Quando esse processo é realizado com pessoas de culturas distintas, pode levar mais tempo para ser entregue.

Exemplo: quando um código é enviado para a revisão de um time na Índia, além da questão do fuso horário, um dos times pode ter mais preocupação com a arquitetura ou com impactos em outros requisitos.

Efeito colateral: atraso na entrega, pois isso pode gerar retrabalho e, consequentemente, o projeto não será finalizado no sprint.

Mitigação: alinhar a solução com arquitetos/pessoas chave antes de iniciar o código, com isso, o retrabalho pode ser minimizado.

Desafio: Arquitetura de software compartilhada

Descrição: a concepção de uma arquitetura de software é algo vivo dentro de um time ágil, que deve evoluir com o tempo. No entanto, a contribuição de códigos novos em um repositório único para diversos times não é trivial.

Exemplo: times/desenvolvedores com pouca aderência a uma cultura de projeto de software baseado em Design Patterns podem introduzir atalhos que dificultam a manutenção.

Efeito colateral: defeitos gerados por conta de refactoring mal feito e atraso nas entregas por conta do retrabalho.

Mitigação: comunicação frequente entre os times para aprender com os erros e melhorar a qualidade continuamente.

Lições aprendidas

Com tudo isso, aprendemos que algumas atividades básicas vêm a construir equipes de sucesso no ambiente proposto:

  • Processo seletivo buscando pessoas com perfil de trabalho em equipe, pois é muito fácil perder o foco em um ambiente complexo;
  • Bom onboarding de pessoas, com treinamento em suas funções e reforço na cultura de times;
  • PO e Scrum Master trabalhando juntos para manter o foco do time em objetivos claros.

Confira a parte um desse conteúdohttp://www.eldorado.org.br/blog/2018/03/29/desenvolvimento-agil-distribuido-no-eldorado-parte-1/