Pontos Principais
- É preciso ver e conversar com as pessoas para que elas se sintam parte da equipe;
- Planning Poker virtual é possível e existem ferramentas gratuitas para isso;
- Durante o planejamento da Sprint é preciso garantir que as pessoas tenham oportunidade de falar;
- Ferramentas que trabalham com post it virtual para cerimônias de retrospectiva;
- Socializar virtualmente também é importante e abrir a sala com alguns minutos de antecedência para a conversas paralelas faz todo sentido.
Jeanne Boyarsky é desenvolvedora Java e Scrum Master parte do dia. Co-autora em livros de certificação OCA/OCP 8 e trabalha na atualização do Java 9. Ela também é voluntária na CodeRanch e mentora de equipes de robótica em programas do ensino médio. Em sua apresentação Scrum Virtual durante o SpringOne Platform, Jeanne falou sobre os desafios de ser ágil em equipes virtuais e apresentou diversas ferramentas e dicas sobre como manter a equipe engajada e com foco.
Este artigo apresenta alguns dos principais pontos apresentados na palestra e o InfoQ Brasil conversou com a Boyarsky para obter mais informações sobre o conteúdo da palestra.
Introdução ao Scrum
O Scrum vem tomando corpo à medida que a complexidade dos produtos aumenta. Para contribuir com essa expansão, novas ferramentas de comunicação baseadas em realidade virtual e conexões de alta velocidade vem surgindo a cada dia. O Scrum é um framework para realização de produtos complexos e com alto grau de resposta às mudanças, ele faz parte do guarda-chuva de soluções Ágil.
Embora os princípios do Scrum assumam que a equipe trabalha no mesmo local, as possibilidades oferecidas pelo avanço da tecnologia permitem que as equipes contribuam de forma remota. Neste cenário algumas ferramentas e técnicas concretas podem ser úteis para engajar e manter a equipe alinhada antes de qualquer decisão crítica seja tomada.
Canais de comunicação
Com um panorama sobre a transição de sua empresa para equipes virtuais, Boyarsky explica como conseguiram quebrar as barreiras para a comunicação na equipe. Para ela um dos pontos mais sensíveis são justamente os canais de comunicação, é preciso ver as pessoas para que elas se sintam parte da equipe. Ferramentas como o Google Hangout, Skype e o Discord, muito utilizado por gamers, são extremamente úteis na aplicação do que Boyarsky chama de Scrum virtual.
Além de conversas em tempo real, Boyarsky fomenta a importância de ferramentas que possibilitem a persistência e o compartilhamento de informações para futuras consultas. Em um ambiente físico as pessoas normalmente possuem acesso às informações após as reuniões, com equipes virtuais não deve ser diferente. Para isso, algumas ferramentas como Slack, NewsGator e quadros de discussão online entregam uma experiência fantástica e podem auxiliar a equipe a se engajar no projeto. Entretanto, quando houver a necessidade de convidar alguém para um café prefira mensagens transientes por meio de ferramentas como Google chat, Skype ou talvez o AIM. Outra dica valiosa é utilizar utilizar funcionalidades avançadas como os questionários do Google Forms, eles podem ser muito úteis.
Em equipes virtuais os integrantes estão livres para trabalhar de qualquer lugar e é comum que estejam viajando justamente no momento da reunião. Para que a comunicação seja efetiva é preciso se prevenir em situações onde as chamadas de vídeo não funcionem como o esperado. Neste ponto os telefones da própria empresa ou ferramentas como Join.me e Free Conference Call podem salvar a reunião.
Planejamento da Sprint
Para planejar sprints remotas algumas ferramentas como telefone ou vídeo são muito úteis, além disso é importante que as telas com o backlog do produto estejam compartilhadas. O Jira se comporta muito bem nessa situação. Para se comunicar efetivamente e estimar pontos de estórias Boyarsky sugere a utilização da ferramentas Point Poker, nela as equipes ágeis podem realizar o planning poker.
Planning Poker e técnicas de estimativa
Este poker de planejamento ajuda as equipes a definirem o tamanho de suas estórias por meio de mecânicas da gamificação. Neste jogo de cada membro da equipe de desenvolvimento define uma carta com um número específico representando o nível de dificuldade do trabalho que será desenvolvido. Existem diversos exemplos disponíveis na internet, muitos deles se baseiam em uma variação da sequência fibonacci (0,1,1,2,3,5,8,13,21,...) em que 1 pode representar uma tarefa de 1h, 1 dia ou 1 ponto de história, por exemplo.
Embora haja uma grande discussão sobre as estimativas, #noestimates, cuja a ideia é se basear em dados históricos, comportamento da equipe em relação às atividades para então projetar a entrega. O artigo 'Saiba por que a estimativa de software está mais importante do que nunca' mostra que esta técnica ainda ajuda muitas equipes.
Além do planning poker existem outras técnicas interessantes que talvez possam ser adaptadas ou até combinadas para conseguir um melhor resultado nas estimativas:
- Opinião de especialistas - Associado com tarefas, esta técnica é muito utilizada em projetos tradicionais. Em projetos ágeis no qual as estimativas são feitas por meio das estórias de usuário, que muitas vezes precisam de diferentes profissionais, tornando a opinião de especialistas uma missão difícil. Seu grande benefício é a velocidade que pode ser feita, por exemplo, um desenvolvedor observa uma estória de usuário e fornece uma estimativa baseada em sua intuição;
- Analogia - Estimativa baseada em projetos anteriores, caso a haja uma estória parecida um período semelhante será estimado para a estória em questão. Entretanto, neste tipo de estimativa é preciso ter cuidado com o tamanho das estórias, caso não haja alguma estória com tamanho parecido uma técnica possível de ser aplicada é a chamada triangulação. Está tecnica compara a estória atual com pelo menos três estórias parecidas antes de se estimar;
- Desagregação - Consiste em dividir a estória em partes menores e mais fáceis de estimar.
Boyarsky também compartilha algumas lições aprendidas para que esta cerimônia tenha maior impacto. Antes de começar é preciso ter os horários bem definidos, equipes ao redor do mundo trabalham em fuso-horários diferentes e essa pode ser uma barreira dependendo da localização da equipe. A definição sobre os intervalos e o consenso sobre a utilização do telefone no modo silencioso deve ser combinada entre os participantes.
Durante a o planejamento da Sprint é preciso garantir que as pessoas tenham oportunidade de falar, uma de cada vez, por isso é interessante que haja um botão "mute" na sala principal e que o mesmo botão esteja ativo em lugares com muito barulho. Entretanto, Boyarsky explica que ao ouvir o som ambiente, mesmo como conversas paralelas sobre clima, esportes ou outros assuntos comuns em ambientes de pré-reunião, fazem com que os participantes remotos sintam-se mais à vontade com a experiência do ambiente real.
Reuniões remotas são um desafio enorme para quem deseja implementar o Scrum virtual, diversos cenários podem contribuir ou tornar a prática um desastre. Por exemplo, imagine uma equipe de cinco pessoas onde uma delas está participando de forma remota. Os participantes que estão no mesmo ambiente físico iniciam uma conversa que toma proporções mais acaloradas. O participante virtual neste momento solicita a palavra, porém, é inconscientemente ignorado. Este é apenas uma das inúmeras situações que a equipe pode experimentar durante o planejamento da Sprint. Neste tipo de reunião fazer com que cada participante utilize sua própria estação de trabalho talvez ajude a equipe a melhorar a comunicação.
Além disso é preciso seguir protocolos básicos como falar um de cada vez, normalmente ferramentas com este propósito tem opções para que usuários levantem a mão quando desejam falar.
Reuniões diárias do Scrum
As chamadas stand-up meetings são reuniões diárias do Scrum, essa reunião é balizada por um período máximo de 15 minutos e normalmente ocorrem no mesmo local e horário. Seguindo esta premissa Jeanne explica que a utilização de post-its são interessantes mas não obrigatórias. Se a equipe decide utilizá-los é preciso ter certeza de que todos os participantes tenham acesso, ela sugere que ferramentas como Jira, ScrumWise e ScrumDo são opções interessantes para este propósito.
InfoQ Brasil: Perguntamos a Jeanne sobre importância de representação das pessoas que estão trabalhando de forma remota nas reuniões diárias do Scrum:
Um ponto essencial neste tipo de cerimônia é a presença de todos os membros e é importante representar os membros que não puderam participar remotos ou fisicamente no mesmo ambiente. Sobretudo quando temos apenas uma ou duas pessoas trabalhando de forma remota, as chances da equipe esquecer essas pessoas aumenta.
Outra dica é utilizar uma imagem impressa com uma foto e o nome do participante, utilizar personagens ou qualquer outro símbolo para representar o integrante que não pôde participar da reunião. Assim todos na reunião poderão lembrar do membro remoto nas tomadas de decisões durante a reunião diária do Scrum.
Ao realizar as reuniões é importante que todos conheçam as estórias e os objetivos da Sprint, além disso, qualquer ferramenta que possa ajudar no aprendizado é bem vinda. Devido ao tempo curto, uma característica das reuniões diárias do Scrum é serem realizadas de pé. Pessoas que estão participando de forma remota devem ser encorajadas a participar também de pé durante esta cerimônia.
Embora as reuniões tenham horário pré-determinado para acontecer, é interessante abrir a sala com alguns minutos de antecedência, evitando assim qualquer eventual problema técnico. Este tempo também serve para as pessoas socializarem. Tempo para socialização também é uma das dicas de Angela Wick, mais dicas da autora sobre como se tornar ágil em equipes remotas podem ser encontrados neste link.
Programação em pares
Embora não faça parte do Scrum o pair programming (Programação em pares) é uma técnica importante que muitas equipes utilizam, portanto falar sobre ela é essencial neste contexto. Antes de tudo é preciso que a equipe tenha à sua disposição um quadro branco no qual todos possam acessar para representar suas ideias em tempo real e não apenas para reflexões posteriores. Algumas ferramentas que podem ser utilizadas como quadro branco: Skype, Google Docs, Web Whiteboard e Deekit.
Quando a equipe está pareando de forma remota é importante que ferramentas de vídeo/voz funcionem perfeitamente, que a tela seja compartilhada e trabalhem no mesmo quadro branco. Durante o pair programming também é preciso considerar que ser multitarefa não é interessante. Normalmente as pessoas não gostam de trabalhar com alguém que esteja falando ao telefone, almoçando ou realizando outras atividades ao mesmo tempo que realizam uma tarefa em par.
Reuniões de retrospectiva
Outra cerimônia descrita no Scrum como parte essencial no desenvolvimento de projetos ágeis. Uma forma interessante de realizar esta atividade é utilizar post it e muitas equipes adoram esta ferramenta simples e muito útil. Aqui Jeanne sugere as ferramentas OneNote e NoteApp para trabalhar com post its virtuais.
Na reunião de retrospectiva virtual podemos utilizar ferramentas de vídeo ou voz como o Webex, nela é possível levantar a mão quando o participante deseja falar. No caso do Skype o simples ato de digitar algo como a palavra 'mão' poderia servir como uma solução para que todos os integrantes pudessem falar.
Revisão da Sprint
Conforme o Scrum sugere, o Product Owner (PO) é parte da equipe e portanto deveria participar das reuniões de revisão da Sprint. Em um cenário cujo o PO está presente no local a comunicação se dá por meios verbais e não-verbais. Na revisão da Sprint realizada de forma remota é interessante que a linguagem corporal seja reforçada, como, um sinal de positivo, demonstrando o que está sendo dito também está sendo compreendido.
Boyarsky também demonstra um exemplo no qual um PO foi resistente em participar da revisão da Sprint de forma remota, pois estava em uma cidade diferente e solicitou que a reunião fosse reagendada. Este é um ponto interessantíssimo para uma possível mentoria e fazer com que o PO participe de algumas reuniões de forma remota poderia evitar este tipo de problema.
Conclusão
Existem diversas ferramentas que podem ajudar a manter equipe engajada e com foco no projeto projeto, muitas delas gratuitas e intuitivas para rodar o Scrum virtual. Contudo, é preciso ter em mente que a cultura da empresa é uma parte importante no processo e deve ser considerada. É comum encontrar tentativas de implementação de uma nova ferramenta, framework ou até processo frustrados por conta da cultura disseminada.
Para o sucesso do Scrum virtual é preciso fazer com que os membros da equipe sintam-se juntos, mesmo estando em ambientes remotos, entender que o trabalho de todos os envolvidos tem consequência para o projeto, participar das decisões e criar metas aceitáveis, desafiadoras, específicas, quantificáveis e mensuráveis pode ajudar. O artigo Desenvolvimento Ágil e equipes remotas - Seis hacks poderosos de produtividade para conhecer trás algumas técnicas que também podem ajudar nesta empreitada.
Sobre o Autor
Edeilson Silva é analista de projetos e está engajado com o mindset ágil, sua missão é ajudar desenvolvedores juniores a resolver problemas com agilidade, para se tornarem em sênior mais rápido e entregar produtos com maior valor. Acredita que não deve haver barreiras para a aprendizagem e por isso ajuda a comunidade traduzindo e escrevendo artigos para o InfoQ Brasil.