Faça Mais Rápido com Tomada de Decisão Lenta
Esse post foi traduzido automaticamente do inglês. Se você encontrar algum erro, por favor entre em contato.
Devemos atravessar essa ponte quando chegarmos lá
Devemos atravessar essa ponte quando chegarmos lá.
Para qualquer projeto, um time vai tomar decisões em diferentes níveis. O que construir, como construir, em que ordem fazer?
Alta energia e restrições de tempo dentro dos projetos tornam fácil cair na armadilha de decidir só para colocar as coisas em movimento. Tomada de decisão rápida leva a resultados mais rápidos, pelo menos em teoria.
Paralisia por análise é um problema. Mas espero destacar que:
- tomar decisões rápido demais ou no nível errado provavelmente causa mais mal do que bem.
- adiar decisões não é de graça, mas o investimento vale o esforço.
Quando rápido se torna lento
Já vi os seguintes problemas se concretizarem em muitos projetos em que trabalhei.
Projetar sem feedback. Existe um conjunto de funcionalidades e várias opiniões sobre a experiência do usuário. Não há tempo para testar, então uma decisão precisa ser tomada. Essa decisão leva a trabalho de design e engenharia com muitas suposições. E resulta em uma funcionalidade que o time precisa construir de novo.
Tomar decisões de engenharia longe da execução. O trabalho de produto está definido, e não há certeza sobre como implementá-lo. Mesmo assim, o tech lead planeja os detalhes, especificando o caminho técnico a seguir sem contexto suficiente dos detalhes do código. Essa decisão leva a uma solução excessivamente complicada que requer mais tempo para construir.
Isso vem em muitas formas. Tomar uma decisão quando você poderia esperar para obter mais informação é uma estratégia subótima. Em muitas situações, empresas estão correndo o mais rápido que podem porque têm muito a fazer, quando apenas uma pequena parte do trabalho vai provar ser valiosa.
Quando lento se torna rápido
Desenvolvimento iterativo de produto pede uma perspectiva diferente. Requer aprendizado rápido e adiamento da tomada de decisão. A pergunta deveria ser:
Qual é o passo mais simples que podemos dar até a próxima oportunidade de aprendizado?
Adiar decisões permite que um time espere pelo último momento responsável. Isso não só resultará em mais informação. Também delegará a responsabilidade da tomada de decisão para a pessoa mais próxima do problema.
Último momento responsável. Quando o custo de adiar se torna maior que o custo de esperar.
Mas isso não é de graça. Adiar só é possível se você tem os processos e pessoas preparados para isso. Por exemplo:
Iteração próxima entre produto/engenharia/design: quando você permite que todos os aspectos de uma solução sejam adaptados diariamente, você cria oportunidades para decisões tardias que podem gerar melhores resultados. De um design que ficou difícil demais de implementar e pode ser facilitado com algumas mudanças, até uma funcionalidade que não é tão importante e pode ficar de fora de uma release. Essas são otimizações que só podem ser feitas se houver espaço para isso.
Entrega contínua e testes automatizados: da perspectiva de engenharia, a infraestrutura de testes e ciclos de release rápidos permitem que um time adote uma estratégia de construir simples e refatorar. E pode reduzir a necessidade de uma série de decisões arquiteturais que podem ser tomadas depois.
Ter princípios compartilhados: se você consegue alinhar princípios fundamentais para o time, isso cria espaço para a confiança de que diferentes pessoas tomarão decisões similares. Alinhar sobre quanto de teste precisa ser feito, por exemplo, ajuda as pessoas a tomar decisões quando estão executando o trabalho.
Testes com usuários e feedback: manter contato próximo com usuários permite que o time assuma micro riscos e veja os resultados. Pode ser implementado no início do ciclo, com sessões frequentes de teste de UI, por exemplo. Ou no final, com sistemas de feature flags e experimentação com o usuário final.
Não há nada de novo nas práticas acima. O que às vezes é difícil perceber é que elas não estão apenas melhorando sua solução. Elas reduzem trabalho ao adiar decisões o máximo possível.
Quando você está investindo em processos e ferramentas iterativas, você não está apenas investindo em qualidade. Você está ganhando decisões mais efetivas.