Toda vez que temos dependências externas ao nosso time de desenvolvimento, temos um problema que impacta significativamente na entrega de produtos e serviços. Quanto maior o número de dependências externas, mais tempo levará o nosso Time to Market.

Visualização

A primeira coisa que devemos fazer quando queremos tratar as dependências externas é dar visibilidade ao nosso fluxo de valor. Mapear todo o processo desde o surgimento da ideia até o produto ou fatia do produto ser entregue na mão do consumidor. Nosso coach Luiz (Lula) Rodrigues escreveu sobre o Statik (Systems Thinking Approach to Introducing Kanban) e como ele pode auxiliar o seu time a fazer esse mapeamento.

Quadro Kanban composto pelos estágios Backlog, Priorizado com o limite de 3 itens, Construção dividida em (Construindo e Construído) com o limite de 4 itens para ambas. Testes é uma etapa externa e não limitada. Etapa Disponibilização da Infraestrutura dividida em 2 subetapas disponibilizando e disponibilizado com o limite de 4 itens. A coluna entrega que é uma etapa externa e não foi limitada e finalmente o concluído.

Mapeamento do Fluxo de valor de um time. As dependências externas são indicadas pela cor em vermelho (Testes e Entrega). As etapas internas ao time estão em preto.

Métricas

Após o mapeamento, é imperativo que você comece a medir a eficiência do seu processo. Duas métricas se destacam nesse ponto: o Lead Time e o Cycle Time.

O Lead Time, atualmente chamado de Customer Lead Time, é o tempo decorrido desde que o time se compromete a desenvolver uma fatia do produto até a entrega desta na mão do consumidor (incluído aqui qualquer dependência externa do processo, mesmo que seja no final dele).

Cycle Time, atualmente chamado de Local Lead Time, é o tempo entre o início e fim de qualquer etapa do seu fluxo de valor.

Lead Time ou Customer Lead Time é o tempo decorrido entre o compromisso de entregar o item de valor e a entrega para o consumidor. Já o Cycle Time ou Local Lead Time é o tempo entre qualquer etapa dentro do fluxo de valor.

Esse time só se compromete a entregar um item de valor quando ele está priorizado. É a partir desse ponto que começamos a contar o Lead Time e terminamos quando o item é transformado em produto e entregue para o consumidor. O Cycle Times é o tempo entre qualquer etapa do nosso sistema ou uma combinação de etapas. Por exemplo, todas as etapas internas ao time e todas as etapas externas ao time.

Por que as duas métricas são importantes?

O Lead Time é o tempo total e alguns times não gostam de incluir dependências externas, pois muitas das vezes elas são o gargalo do processo e não há muita coisa que possamos fazer. Isso é um erro, pois estamos perdendo transparência (varrendo a sujeira para debaixo do tapete) e impedindo mudanças sistêmicas na organização.

O Cycle Time permitirá que você separe quanto tempo o item passa dentro do seu time e quanto passa fora do seu time e vai te municiar com fatos quando houver discussões sobre eficiência, prazos e custos.

Limitação do Trabalho em Andamento

A limitação do trabalho em andamento (Working in Progress – WIP) é essencial para aumentarmos a eficiência do time. Quanto menos itens andam em paralelo no nosso quadro, mais rápido cada item leva para ser desenvolvido. O contrário, infelizmente, também é verdade. Se o seu time quiser ser altamente ineficiente, basta começar a fazer várias coisas ao mesmo tempo. Nada terminará.

Aí vem uma dúvida comum: eu devo ou não devo limitar a quantidade de trabalho em andamento de outro time? Rodrigo de Toledo apresenta três possíveis soluções!

Briga

Podemos adotar três comportamentos nesse caso. São brigas políticas e em todas temos vantagens e desvantagens.

Fugir da briga

Nesse caso, seu time sofre calado. A dependência externa não é limitada e a fila de espera por ela tenderá ao infinito. Evitar o conflito é uma opção que no início parece boa, mas gera resultados péssimos no longo prazo. Continue medindo o Lead Time e você terá fatos que comprovam o problema.

Mesmo quadro apresentado anteriormente. Só que aqui as colunas não limitadas (Testes e Disponibilização) estão com vários itens sendo executados ou em espera.

Ao evitar o conflito e deixar que as filas de espera das dependências externas cresçam indefinidamente, seu lead time piorará e mais ineficiente sua empresa será.

Nunca nos esqueçamos: não fazer nada também é tomar uma decisão.

Brigar

Limitar o trabalho em andamento da dependência externa. Perceba que ao fazer isso, eu posso levar o meu processo à estagnação. Nada pode ir para frente porque a dependência externa não entrega. Quando isso acontecer, o time irá cruzar os braços, pois não será possível fazer mais nada. Entrar em conflito pode ser uma opção mais radical e você deve ter muito cuidado ao executá-la. Faça uma boa leitura de cenário e veja se o seu time possui capital político suficiente para tomar essa ação.

Nesse quadro todas as colunas foram limitadas. Inclusive a coluna de Espera dos times externos. Todavia o quadro estagnou, pois o time tem que esperar que o time externo termine alguma coisa para poder caminhar.

Quadro estagnado. Nada pode ir para frente até que a equipe responsável pela entrega faça alguma coisa.

Fazer política

Uma vez que seu processo está mapeado e medido, fica muito claro onde estão os seus gargalos e quanto eles impactam na sua eficiência. Com posse dessas informações, está na hora de fazer política na organização. Esses fatos são um convite a conversa entre os diversos times da empresa. Procure os responsáveis pelas dependências externas e converse sobre como:

  • internalizar no seu time o trabalho realizado pela dependência externa;
  • ter pessoas do seu time trabalhando junto com a dependência externa para aprender o trabalho que é feito por eles e gerar empatia entre os envolvidos;
  • facilitar o trabalho antes de enviar o trabalho para a equipe externa;
  • combinar quais seriam as restrições mínimas antes de passar a demanda para o time externo;
  • combinar um Nível de Acordo de Serviço que seja suficiente para a dependência e razoável para o seu time;

Muitas das vezes a dependência é criada não por falta de conhecimento e sim por falta de autorização. Por exemplo: mesmo que o time de desenvolvimento saiba como fazer, apenas o time de infraestrutura pode disponibilizar serviços para o consumidor final.

Falta de autorização é normalmente uma burocracia gerada por algum problema no passado que ocasionou uma falta de confiança entre os envolvidos. Nesse caso, procure utilizar ferramentas de automação e recuperação caso alguma coisa dê errado e procure até mesmo instâncias superiores para solicitar essas autorizações. Todavia, lembre-se: confiança é algo que você conquista e não pode ser imposto.

Esperamos que essas dicas ajudem o seu time a resolver as brigas política. Convidamos você para os treinamentos de Técnicas Ágeis de Facilitação e Kanban Management Professional para aprender um pouco mais sobre como resolver esses e outros desafios.