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.
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.
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.
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.
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.