Como tornar seu time mais efetivo

Rodrigo Miguel
Ship It!
Published in
7 min readSep 14, 2021
Photo by Gustavo Campos on Unsplash

Certa vez, quando eu conduzia uma retrospectiva com um dos times que liderava, eu havia pedido aos integrantes que escrevessem, num post-it, o que não havia funcionado bem naquela semana. Um dos post-its preenchidos pelo time continha a seguinte frase: “A vibe não estava boa”.

De início aquilo me preocupou. Será que estávamos tendo um problema de relacionamento entre as pessoas? Será que o clima entre os membros do time estava pesado? Fiz algumas perguntas adicionais para o autor do post-it e me surpreendi quando a pessoa afirmou que não havia nada errado, só que simplesmente a vibe não estava boa e essa tinha sido a causa de não terem andando bem naquela semana.

Eu lembro que aquilo me incomodou um pouco e me fez parar pra pensar no porque estávamos fazendo aquilo. Por que estávamos investindo 1 hora semanal de todos os integrantes do time para fazer perguntas do que foi bom e do que foi ruim na última semana?

Se voltarmos um pouco na história do desenvolvimento de software vamos lembrar que, em 2001, um grupo de desenvolvedores publicou o Manifesto Ágil. E, junto com ele, 12 excelentes princípios. Um deles diz o seguinte: “Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.”

É por causa desse princípio que muitos times realizam reuniões de retrospectiva ou de revisão, ou seja lá como chamam. Mas como é possível saber, depois de cada retrospectiva e após o time ter corrigido diversas disfunções, se o time está se tornando mais efetivo? Será que a quantidade de post-its que surge a cada retrospectiva deveria diminuir? Acredite, eu já tentei isso mas eles nunca acabam.

Então como saber se o time está “melhorando”? Como saber se o time está se tornando mais efetivo? A seguir irei detalhar sobre efetividade, indicadores, eficiência e previsibilidade.

Efetividade

Efetividade é a habilidade de atingir o sucesso e produzir os resultados desejados. Todo time de desenvolvimento existe para atingir algum resultado ou objetivo estratégico, que normalmente se desdobram em metas. E quando falamos de cumprimento de metas, normalmente os times alcançam alguma dessas três situações óbvias:

  1. o time atinge todas as metas
  2. o time atinge algumas e outras não
  3. o time não atinge as metas

Normalmente nos casos 2 e 3, quando as metas não são atingidas, as retrospectivas são pesadas e surge uma preocupação a respeito da performance do time. “Por que algumas metas foram perdidas? Elas estavam além do alcance do time? Temos um problema de performance ou subestimamos a dificuldade do trabalho?” — são perguntas importantes de serem feitas.

Entretanto, eu vou além, e digo que nos três casos você deveria estar atento e medindo a performance do time. Se o time atinge todas as metas, talvez você tenha em mãos um time que está se mostrando capaz de ir além e atingir metas ainda mais ousadas, ou talvez você tenha metas frouxas demais.

Provavelmente, a retrospectiva é a cerimônia mais importante para se fazer esse tipo de diagnóstico acerca da performance do time. Porém, se o time foca em coisas subjetivas, falando do clima ou da “vibe”, será muito difícil fazer um diagnóstico assertivo e que gerem ações mensuráveis de performance.

Provavelmente você já ouviu essa frase: você não pode gerenciar aquilo que você não pode medir. O que, de fato, o time precisa melhorar para atingir as metas? Para ser efetivo? Será que precisa “melhorar o clima”? Ok, é possível que de fato essa seja a causa raiz do problema, mas como você deveria diagnosticar isso?

Não me entenda mal, haverá momentos em que emergirão situações que demonstram que há uma relação ruim entre os integrantes, ou um clima de insegurança psicológica ou animosidade, por exemplo. E é muito importante que haja espaço e incentivo para que o time discuta sobre isso e resolva o problema. Entretanto, meu ponto aqui é que o seu ponto de partida para avaliar a performance do time, na maioria das vezes, precisa acontecer a partir de indicadores e métricas, e não a partir de opiniões subjetivas.

Ou seja, você precisa de indicadores que te mostrem ONDE o time está com problemas, para a partir daí entender PORQUE isso está acontecendo e O QUE deve ser feito.

Indicadores

É bastante comum que times de desenvolvimento acompanhem métricas como Vazão, Cycle Time, tempo de revisão, etc. São métricas excelentes, mas que precisam de uma interpretação adicional para que se comunique claramente qual o efeito de se permanecer no estado atual e qual resultado se tem ao atingir a meta estipulada. Por isso, uma boa estratégia é você encapsular essas métricas dentro de indicadores que comuniquem melhor qual comportamento ou qualidade se deseja destacar no time.

Veja só, provavelmente você terá que educar insistentemente as pessoas até que todos entendam o efeito de se diminuir o Cycle Time, por exemplo. Porém, se ao invés disso, você acompanhar e comunicar indicadores como Eficiência, Previsibilidade, Velocidade, Qualidade, Agilidade e Assertividade, provavelmente você estará dando alguns passos adicionais na clareza de comunicação.

Não pretendo aqui explicar detalhadamente como poderiam ser medidos todos esses indicadores. Mas, para fins de ilustração, vou explicar dois deles: Eficiência e Previsibilidade.

Eficiência

Ao medir a Eficiência tentamos garantir que estamos utilizando os recursos da melhor forma possível. Se eu garanto que um time é eficiente, posso aumentar a vazão de tarefas contratando mais pessoas, por exemplo, sem medo de que eu esteja gerando um desperdício de esforço.

Medimos a eficiência através do Cycle Time. O que é Cycle Time? É simplesmente o tempo decorrido entre o início de uma tarefa de desenvolvimento por um membro do time até o momento em que é entregue em produção.

Para podermos definir se um time está eficiente ou não, uma boa prática é acompanhar os percentis 95 dessa métrica, ou percentis menores caso você queira começar com algo mais flexível e ir ajustando à medida que os processos do time vão ficando mais precisos. Porém, nunca use médias!

Após algum tempo de observação dessa métrica, na RD Station percebemos que os times mais eficientes mantinham o p95 desse indicador abaixo de 10 dias. Então estipulamos isso como o nível de saúde desse indicador. Não como uma meta, mas sim como um termômetro.

E como estamos constantemente em busca de mais eficiência nos times, todas as vezes que alguma tarefa passa de 10 dias, aproveitamos a retrospectiva para analisar, fazer uma dissecação da tarefa e entender o que houve. Eventualmente encontramos oportunidades de melhoria no nosso fluxo.

Portanto, o indicador de Eficiência nos diz que, um time é eficiente quando x% das tarefas executadas são completadas em até y dias. Defina x de acordo com o nível de performance esperado, e y de acordo com o contexto e granularidade das tarefas.

Previsibilidade

Previsibilidade nos dá vantagem estratégica. Saber de antemão quando uma implementação vai ficar pronta nos dá condições de preparar um lançamento, sincronizar dependências entre times, realinhar expectativas, etc.

E como se faz isso? Perguntando para o time quando fica pronto e medindo quantas vezes eles acertam? Eu não recomendo!

Para ter previsibilidade, você precisa diminuir a variabilidade. Se o time entrega 10 tarefas numa semana, e 2 na outra, e 15 na seguinte, você jamais terá previsibilidade. Ao medir a vazão de tarefas entregues a cada semana, você deveria esperar uma variação pequena, por exemplo, até 30%. Observando essa métrica percebemos que os times com essa variação, ou menor, tinham uma excelente previsibilidade.

Então esse é outro indicador que acompanhamos e observamos de tempos em tempos, a variabilidade. Se está acima do ponto saudável, fazemos uma análise para entender o que está causando essa variação. Percebemos, por exemplo, no nosso contexto, que times com até 3 pessoas engenheiras costumam ter alta variabilidade. Se uma das três se ausenta ou permanece muito ocupada por um dia inteiro, isso já afeta os ciclos de review, ou prolonga o tempo da tarefa, de maneira altamente impactante para o time. Com 4 pessoas engenheiras (ou mais) a indisponibilidade de uma delas impacta bem menos na variabilidade do time. Então, aqui na RD Station, a não ser que estejamos validando algum conceito ou fazendo as primeiras explorações em uma iniciativa, se quisermos ter previsibilidade, tentamos manter a composição mínima de um time em 4 pessoas engenheiras.

Mas me explica melhor: como eu tenho previsibilidade apenas pelo fato de ter baixa variabilidade?

A baixa variabilidade te permite olhar para o passado e replicar para o futuro. Se eu tenho um lote de 50 tarefas, consigo dizer aproximadamente quanto tempo o time levará para entregar, olhando para o seu histórico. Técnicas de previsibilidade como Monte Carlo podem te permitir ser ainda mais preciso.

Portanto, o indicador de Previsibilidade nos diz que, um time é previsível quando a variação de vazão entre uma semana e outra é menor que x%. Defina x de acordo com o seu contexto, após coletar e observar o efeito em diferentes times.

Conclusão

Entenda o que faz o seu time ser cada vez mais efetivo.

Encapsule as métricas em conceitos que comuniquem claramente a sua intenção.

Meça.

Acompanhe.

Use as retrospectivas para analisar, dissecar as métricas e entender o que causou a discrepância. Teste e adapte o processo. Se você fizer isso — uma análise racional — ao invés de somente uma análise emocional ou subjetiva, você vai estar aplicando de fato esse princípio do Manifesto Ágil: “Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.”

E vai estar fazendo o seu time caminhar na direção de como ficar mais efetivo a cada dia!

E se quiser se juntar ao nosso time para aprender e ensinar mais sobre isso, e trabalhar com pessoas que estão empenhadas em construir software de alto nível, temos muitas vagas!

Um agradecimento ao Caco por ter definido e evoluído esses indicadores na RD Station.

--

--