O blog da AWS
Tenets: potencializar a tomada de decisões
“Depois de tomar uma decisão, o universo conspira para que ela aconteça.”
– Ralph Waldo Emerson,
ensaísta e filósofo
Pensar é difícil; até consome muita energia. Talvez seja por isso que somos obcecados por comida. Uma estimativa indica que tomamos mais de 200 decisões relacionadas à alimentação por dia. Outra estatística popular da Internet afirma com ousadia que o ser humano médio toma 35.000 decisões por dia. Sou cético, mas isso ilustra um ponto: a tomada de decisões consome uma parte significativa do nosso dia.
Parte da complexidade é que cada um de nós interpreta os dados relacionados às decisões de forma diferente, consciente e inconscientemente, com base em nossos próprios preconceitos e experiências. No local de trabalho, as pressões adicionais de múltiplas prioridades, aspirações de carreira e política complicam ainda mais o problema. Portanto, não é surpreendente que a tomada de decisões nas organizações contribua enormemente para atrasos, mal-entendidos, falhas de projetos e conflitos. Um diretor da minha empresa anterior descobriu que, em alguns casos, “projetos de tecnologia” considerados lentos eram frequentemente precedidos por decisões de negócios que se arrastavam por uma década ou mais.
Vejo o mesmo com muitas migrações e iniciativas de nuvem atuais. A nuvem inerentemente permite que as equipes tomem decisões, façam experimentos e corrijam o curso com mais rapidez. No entanto, isso falha se as decisões não estiverem sendo tomadas na mesma velocidade. A indecisão e os conflitos prejudiciais à saúde podem ser minimizados dedicando um tempo para criar uma estrutura e uma linguagem comuns para a tomada de decisões. É aqui que os tenets se destacam.
O que é um tenet?
Um tenet é uma crença organizacional que acelera a tomada de decisões. Tenets esclarecem e alinham as pessoas sobre o que é importante e o que, por extensão, não é. Princípios podem ser aplicados a equipes, produtos, serviços ou até mesmo organizações inteiras. Os arquitetos estarão familiarizados com os princípios, pois eles são a essência da boa arquitetura: decidir quais compensações precisam ser feitas, conforme discutido anteriormente.
Um bom tenet articula de forma concisa e clara uma única ideia, atuando como um fator decisivo nas decisões. Adote o seguinte tenet:
“Nós otimizamos a velocidade. A velocidade nos permite aprender rapidamente, girar se necessário e escalar rapidamente.”
O que isso significa para um tomador de decisão? Ela defende que colocar novas ideias nas mãos dos clientes para medir a eficácia é mais importante do que uma solução hipotética perfeita presa em uma lista de pendências de implantação. Ele reconhece que as ideias podem não funcionar e que mudar de direção com base no aprendizado é saudável. No McDonald’s, adotamos uma abordagem semelhante para acelerar as implantações digitais, usando o tenet “progresso acima da perfeição”. Era poderoso porque tornava a imperfeição permitida, evitando os ciclos intermináveis de planejamento em uma esperança fútil de evitar possíveis problemas.
Tenets são úteis
Para ser eficaz, um princípio precisa ter um oposto que possa ser aceitável para uma organização. Isso ajuda a evitar que declarações cegamente óbvias sejam transformadas em tenets. Um tenet como “otimizamos o valor” não ajuda na tomada de decisões. Afinal, você realmente otimizaria para oferecer recursos inúteis rapidamente? Da mesma forma, “Não devemos criar software inseguro” é ao mesmo tempo senso comum e não tem uma alternativa defensável.
Mantras corporativos (“Pensaremos fora da caixa”) e decisões reais (“A equipe usará apenas Java”) também são tenets ruins. Eles não cumprem o papel fundamental de um princípio: ajudar a tomar decisões sobre onde o tempo e o esforço devem ser gastos. Deixe-me ilustrar isso com um tenet da nossa comunidade de engenharia principal:
“Profissional exemplar — Os engenheiros principais são práticos e lideram pelo exemplo. Fornecemos artefatos que definem o padrão de excelência em engenharia, de projetos a algoritmos e implementações. Somente estando próximos dos detalhes podemos conquistar o respeito necessário para sermos líderes técnicos eficazes.”
É um tenet que ajuda a garantir que os engenheiros principais mantenham suas disciplinas de engenharia e sejam capazes de se aprofundar nos problemas para ajudar e treinar suas equipes. Da mesma forma, os tenets da arquitetura híbrida que usamos reconhecem e promovem a necessidade de planos de controle, ferramentas, SLAs e APIs consistentes, independentemente do seu modelo de implantação. Eles promovem a facilidade de implantação, gerenciamento e suporte em vez de funcionalidades interessantes, mas inconsistentes.
Os tenets são duráveis
Enquanto escrevo isso, surge uma discussão nas mídias sociais sobre se os micros serviços são bons ou ruins. Além de um apelo para que os CTOs envolvidos parem de tratar a tecnologia como um debate religioso e binário, ele ilustra como a aplicação dos tenets pode mudar com o tempo, mas os tenets reais permanecem relativamente estáveis. Para uma equipe de produto ou serviço, os tenets devem ser aplicáveis desde a concepção até o escalonamento e, além, até as versões subsequentes. Uma característica específica pode falhar, mas os tenets subjacentes devem permanecer verdadeiros. Com o debate atual, o uso da tecnologia serverless para acelerar o tempo de comercialização de um determinado serviço alcançou a rapidez de aprendizado que uma equipe precisava, mas uma arquitetura diferente era mais apropriada, pois o serviço crescia massivamente.
Tenets criam tensão
O ponto anterior também ilustra a necessidade de bom senso ao aplicar tenets, pois normalmente haverá tensões entre os tenets. Veja um exemplo de um tenet complementar ao que promove a otimização da velocidade:
“Continuamos reduzindo o custo das transações à medida que escalamos. A otimização dos custos nos permite criar novos recursos diferenciadores.”
Talvez eu gaste mais para agregar valor com mais rapidez ou me concentre na redução de custos? Bem, isso depende. Existem as desvantagens naturais, conforme discuti em minha postagem anterior no blog. Inicialmente, o foco pode estar em avançar e aprender rapidamente. À medida que um aplicativo se expande, esse segundo princípio alinha tudo o que queremos que continuemos aprendendo rapidamente, mas, para isso, precisamos atrair mais clientes e/ou reduzir o custo médio da transação para liberar investimentos. Isso pode significar a re-arquitetura de ou para, digamos, um banco de dados serverless ou um banco de dados específico. Esses não são debates sagrados; são considerações objetivas para alcançar uma missão, considerando o momento atual, com base em seus tenets.
Os tenets são concisos
A regra geral é ter no máximo 7 tenets, em ordem decrescente de prioridade. Isso ajuda a evitar a tentação natural de tentar cobrir todas as eventualidades. Manter o tenet em si e a descrição subsequente resumidos obriga a um nível de precisão e disciplina que ajuda a torná-los úteis e significativos até mesmo para iniciantes em uma equipe. Isso ajuda a eliminar palavras e proteções que diluem o impacto e a intenção de cada um dos princípios.
Tenets promovem confiança
Os tenets ajudam equipes talentosas a tomar decisões mais rapidamente e com menos conflitos, especialmente em situações de alto julgamento. Eles podem reforçar uma crença existente ou estabelecer uma nova convenção, como automatizar o trabalho repetitivo ou criar software somente quando for um diferencial competitivo.
Tenets bem escritos e usados promovem confiança. Se eu sei como uma das minhas equipes pretende tomar decisões por meio de tenets claramente articulados, estou menos propenso a sentir a necessidade de me envolver em todas as decisões. Como líder, posso passar mais tempo garantindo que a estrutura de tomada de decisão esteja correta, e não todas as decisões, gerando mais confiança, mais velocidade e menos conflitos.
A menos que você conheça outros melhores
Qualquer conjunto de tenets na AWS é seguido pela frase “a menos que você conheça outros melhores”. Isso convida ao debate e a uma mente aberta sobre se um ou mais tenets permanecem apropriados à medida que uma organização ou produto evolui. Em si, é uma tensão dentro dos princípios: criar princípios que sejam duráveis e mutáveis.
Se você, como eu, acredita que liderança significa criar uma estrutura na qual suas equipes possam operar com autonomia e clareza, os tenets são uma ferramenta natural para ajudar nessa jornada. Consistentemente, acho que investir tempo no desenvolvimento de tenets surge e resolve as diferenças de opinião, levando a um ambiente mais propício à entrega de valor mais rapidamente. Menos tempo e energia desperdiçados e mais tempo para você realmente pensar sobre o que quer para o jantar, por prazer, não por combustível.
Phil
Este artigo foi traduzido do Blog da AWS em Inglês.