Conway's Law


E se você tivesse a oportunidade de redesenhar a estrutura do seu time e/ou da sua empresa do zero? Como você criaria os sistemas e os fluxos de trabalho que resultariam em uma boa experiência para o seu usuário? Fim a fim? Em com base em tudo isso, já idealizando, como estes sistemas responderiam a mudanças? De maneira imediata? Na velocidade da internet?

A lei de Conway é sobre isso…

O que é a Lei de Conway?

A Lei de Conway é uma teoria criada pelo cientista da computação/programador Melvin Conway em 1967.

A Lei afirma que “As organizações que projetam sistemas são obrigadas a produzir designs que são cópias das estruturas de comunicação dessas organizações”. A teoria ganhou popularidade quando foi citada por Fred Brooks no icônico livro “The Mythical Man Month”.

O que faz esta teoria tão interessante?

Resposta curta: Comunicação

A comunicação entre os engenheiros, desenvolvedores, técnicos, etc, e a empresa/organização deve ser clara, concisa, “cheia de significado”, e com uma compreensão sólida do assunto.

As pessoas geralmente são ruins em ler mentes 😬 e, portanto, sem uma comunicação boa, os desenvolvedores de software ficam com uma interpretação baseada no “achismo” do que o produto deve fazer e para que…

Quando a comunicação entre os membros do time é ruim (Engenharia, SRE, DevOps e etc), mesmo um simples mal-entendido pode resultar em uma experiência de usuário completamente desarticulada, o que se traduz em quebra na retenção de clientes e outros pontos de falha de longo prazo… e isto vale para os dois lados, os gestores também precisam estar alinhados e cientes dos limites da sua equipe, bem como engajados em facilitar as rotinas de trabalho.


O que pode dar errado ?

Como em qualquer relacionamento, a comunicação pobre leva a diversos problemas como:

-> Demora na disseminação de informações estratégicas e/ou táticas

É quando a informação demora demais para chegar nas pessoas que de fato entregam o trabalho, e quando finalmente chega ela não é mais relevante, gerando a perca de interesse, desperdício de tempo no planejamento, e desgaste de mão de obra qualificada.

-> Cada um por si

Não compartilhar informações é um sintoma da falha de comunicação entre as áreas, levando a um problema generalizado onde cada um cuida do seu trabalho, e criando aquele comportamento de “Challenger”, o que obviamente torna ruim o ambiente de trabalho, a moral do time fica baixa e, por fim, afeta a qualidade do produto.

-> Confusão

Obviamente a comunicação ruim leva à confusão, que por sua vez leva a síndrome de scapegoating, onde alguém no grupo é culpado por todos pecados, permitindo assim a troca incessante de responsabilidades, e abrindo espaço para gestores fracos se esconderem, ou esconderem seus resultados, atrás de membros do time… ou acabar culpando o céu, a terra e o mar.

-> Mudança constante de trajetória

A mudança de objetivo é um problema comum nas trincheiras de TI, e é uma das piores experiêncais que você pode ter em sua carreira… nada pode te preparar para a descepção que vai sentir depois de passar horas, dias, meses, trabalhando em um projeto “disruptivo”, para depois saber que lhe foi passada a direção errada e, que você vai ter que começar “tudo de novo”.

-> Liderança fraca

A arrogância geralmente leva a aquela situação onde o gestor é lento para escutar e rápido para retrucar… eles acabam perdendo a oportunidade de receber feedbacks importantes dos membros do time, clientes e outras fontes importantes, isso claramente gera um impacto negativo no time e na qualidade de entrega do produto.

Como trabalhar de maneira preventiva?

Colaboração é a “chave”, o “exercício” e o “modo operacional” para se prevenir de basicamente tudo o que foi escrito até agora. Bons times trabalham na união de suas forças, assim como no suporte mútuo em momentos de fraqueza e fragilidade. Ninguém sabe de tudo, e mesmo que você seja um ACE da programação, engenharia, automação e tenha mais experiência que todos os membros do time juntos, isso não te dá o direito de ignorar todos e se recusar a ouvir suas opiniões… o único resultado deste tipo de comportamento será perder, sem dúvida alguma, a oportunidade de aprender algo novo e se tornar uma pessoa melhor.

E mesmo com a colaboração ativa, alguns cuidados ainda são necessários:

-> Evitar reuniões (meetings) desnecessárias

Atualmente existem formas ilimitadas de passar a informação adiante, muitas delas Assíncronas e que demandam pouquíssimo esforço, e existem muitas… muitas… ferramentas para isso, como por exemplo o Slack, o velho e bom Email e qualquer outra que você conheça. Pode perguntar para qualquer Pro Cowboy Coder, Vulcan SRE ou DevOps SS Ultra Instinct, pergunte o que na opinião deles é o maior ofensor em sua rotina de trabalho, e eles vão te responder com uma Macro: Meetings 🤣

-> Documentação

É… eu sei que pode parecer uma opinião meio contaminada e direcionada, mas eu acredito que uma documentação apropriada é uma das responsabilidades obrigatórias de um bom profissional de TI ou de qualquer outro tipo de segmento, e que é chave para o sucesso da empresa. Vamos lá! O que é pior do que meetings incessantes, do que ter que ficar cambaleando por aí atrás de pedaços de informação até conseguir reunir o suficiente para poder trabalhar? Empresas como Amazon, Microsoft e Google não são o que são hoje por acidente… eles são “Mestres” em documentar e compartilhar!

-> Feedback

Líderes e liderados precisam exercitar: ouvir uns aos outros. Os líderes precisam encorajar a humildade, a sede por conhecimento entre seus liderados assim como também a alta liderança… Ninguém sabe tudo, e se alguém se levantar para falar de um problema, precisa ser ouvido e levado à sério.

-> Treinamento

Assim como muito bem ilustrado no livro The Phoenix Project: “Um grande time performa melhor quando pratica. A prática cria habitos, e os habitos levam a masterização de qualquer processo ou habilidade”

O pensamento crítico e não aceitar qualquer buzzword ou magic bullet, é o requisito básico para se manter atualizado e, especialmente para os Tech Leaders que precisam determinar o ritmo dentro do time, servir de exemplo, e se manter up-to-date com as melhores práticas e, as melhores ferramentas.

Conclusão

A Lei de Conway é um conceito poderoso, uma lição para ponderarmos sobre: como a forma que a empresa se comunica reflete diretamente na entrega de seu produto e/ou serviço.

cya! 🎶🎶🎶

Última modificação: 7 July 2022