A lei de Conway e sua inversa
Organizações entregam a sua estrutura de comunicação. A observação tem quase sessenta anos e é incomodamente confiável, e a parte interessante é o que você faz com ela depois de acreditar nela.
A observação
A estrutura de um sistema tende a espelhar a estrutura da organização que o construiu.
Quatro times construindo um compilador produzem um compilador de quatro passadas. Ninguém decidiu isso. As interfaces entre os times viram as interfaces do software, porque são essas as interfaces que exigem negociação.
O mecanismo é que chegar a um acordo através da fronteira de um time é caro, então as pessoas projetam para precisar fazer isso menos. A arquitetura é o formato da menor conversa.
A inversa
Se a estrutura segue a organização, então escolher a organização escolhe a estrutura.
Essa é a "manobra inversa de Conway": decida a arquitetura que você quer e depois organize os times para que ela seja a coisa natural a construir.
Funciona, e é mais lento e mais político do que escrever a arquitetura, e é por isso que ela é mais discutida do que feita.
flowchart TB
O["como a organização se comunica"] --> A["a arquitetura que é construída"]
A --> N["porque concordar através de uma fronteira é caro"]
I["inversa: escolha os times"] --> B["para ter a arquitetura que quer"]
I --> S["mais lenta e mais política que decidir direto"]
O que isso significa com uma pessoa
Esta aplicação tem uma única pessoa contribuindo.
A lei de Conway não desaparece; ela degenera. Com uma pessoa não há fronteira de comunicação nenhuma, então a lei não prevê nada. Qualquer arquitetura é igualmente alcançável, porque nenhum arranjo exige negociação.
É uma liberdade incomum e temporária, e ela levanta a pergunta de que trata este curso: o código tem dez contextos delimitados e a organização tem uma pessoa, então o que as fronteiras estão fazendo?
Três respostas possíveis
Elas são uma aposta numa organização futura: estrutura construída agora para que adicionar pessoas depois seja barato.
Elas são uma ferramenta de pensamento: fronteiras que tornam o sistema navegável, seja quem for que estiver navegando.
Elas são culto à carga: um formato copiado porque bons sistemas o têm, sem o problema que o torna necessário.
As três são plausíveis vistas de fora, e a lição 2 mede o código para descobrir qual delas é.
Pontos-chave
- A estrutura de um sistema espelha a estrutura de comunicação da organização que o construiu.
- O mecanismo é que chegar a um acordo através da fronteira de um time é caro, então os projetos evitam isso.
- A manobra inversa escolhe os times para chegar a uma arquitetura, e é mais lenta do que decidir diretamente.
- Com uma única pessoa contribuindo a lei degenera: sem fronteiras, qualquer arquitetura é alcançável.
- Dez contextos delimitados e uma pessoa levantam a pergunta de para que servem as fronteiras.
Continue com a aula 2
O formato que este código tem
Conta arquivos e referências entre contextos, revelando um núcleo compartilhado e um Admin com acoplamento de entrada zero.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.