Como tomamos decisões?

Gustavo Amigo
Alice Tech
Published in
3 min readAug 3, 2020

“Where should I go?” -Alice.
“That depends on where you want to end up.” — The Cheshire Cat.

Lewis Carroll, Alice’s Adventures in Wonderland

As tomadas de decisão na engenharia tem impacto significativo no trabalho de todo time e no resultado que o time entrega. Ao mesmo tempo, como tomamos essas decisões tem relação direta com a cultura da engenharia da Alice e com as virtudes da empresa.

Por isso, é importante definir um processo para essas tomadas de decisão de modo a criar um ambiente de decisão saudável e que eleve ao máximo o nível técnico das nossas decisões.

Este processo na Alice é apelidado de Decision Log (na maioria das vezes abreviado para DL).

O foco não é evitar erros a qualquer custo, mas criar compromisso da equipe com as decisões que foram tomadas, permitir um processo de revisão dessas decisões para correções de rumo o mais rápido possível e desafiar o time todo a pensar para onde queremos ir, sempre com foco em “ser o melhor sistema de saúde do mundo”.

Quando criamos um decision log?

Como regra geral, criamos um decision log quando há uma decisão técnica que tem impacto significativa em toda engenharia. Alguns casos de uso onde faz sentido criar um decision log:

  • Mudança na estrutura de serviços, pois essa mudança tem impacto em todo desenvolvimento
  • Padrão de comunicação entre serviços, pois o modelo de comunicação tem impacto em todo o desenvolvimento
  • Qual framework usar para o desenvolvimento front-end, que apesar de afetar apenas parte da engenharia, tem um impacto significativo
  • Toolings comuns para engenharia (Manipulação de Timezone, etc)

Contudo, há casos onde a criação de um decision log é completamente opcional, como:

  • Estrutura de classes de sistema de end-user
  • Solução técnica para capturar eventos do ERP
  • Qual module do terraform usar para criar serviços na AWS

Percebam que nos exemplos acima poderíamos criar um decision log, mas talvez o processo não valia a pena pois o impacto da decisão é bastante local e já há uma equipe responsável pelo tema.

Timebox

O processo todo segue um timebox de duas semanas, onde na primeira fazemos um draft do documento e nos reunimos para discuti-lo. Na segunda semana lançamos um Release Candidate com Request for Comments. Ao final dessa segunda semana fazemos uma conversa de fechamento e publicamos a decisão no canal interno da empresa.

Mas afinal, quem pode criar um Decision Log?

Qualquer pessoa da engenharia pode criar um decision log, e é super incentivado que se crie muitos decisions logs na Alice. A ideia é que seja um processo bastante transparente e participativo.

Sem "voto vencido"

Evitamos o “voto vencido” ou “disagree and commit”. Queremos todos confortáveis com as decisões tomadas. Se tiver alguém com dúvidas ou outras sugestões, continuamos o processo e nos aprofundamos mais nas alternativas propostas.

Dividir para conquistar

Algumas vezes o debate fica extenso, as vezes com 90% consensual e 10% com pontos polêmicos. Nesses casos é comum quebrar em duas decisões, um com pontos pacíficos e outro com a controversa.

Estamos rodando esse processo desde Outubro de 2019 e até a data presente já tivemos mais de 25 decisões tomadas neste formato, com amplo envolvimento da engenharia. Decisões clássicas foram tomadas neste modelo como usar Flutter ou manter nosso repositório de código em um Monorepo.

Que tal fazer parte desse time?

Estamos buscando pessoas que topem o desafio de transformar a saúde no Brasil através da tecnologia. Clica aqui para saber mais das vagas que temos em aberto!

--

--