A Lei de Conway, que afirma que os sistemas de software tendem a espelhar as estruturas de comunicação das organizações que os constroem, desempenha um papel crucial na forma como o desenvolvimento web moderno é estruturado. A evolução das práticas iniciais para os sistemas mais complexos de hoje, como micro-frontends e arquiteturas baseadas em componentes, foi em grande parte moldada por este princípio. Ao observar como as preocupações foram historicamente separadas no desenvolvimento web, podemos entender melhor como as práticas atuais surgiram e por que elas têm a aparência que têm hoje.
Nos primeiros dias do desenvolvimento web, diferentes equipes eram frequentemente responsáveis por tecnologias específicas. Uma equipe cuidou do HTML, outra ficou responsável pelo CSS e ainda outra equipe cuidou do JavaScript e da lógica do lado do servidor, como PHP. Esta separação clara de responsabilidades, ou “separação de preocupações”, foi impulsionada pelas competências distintas que cada equipa possuía. Os designers entregariam arquivos do Photoshop com pixels perfeitos para uma equipe, que então os transformaria em modelos HTML e CSS. Depois que os modelos estivessem prontos, a próxima equipe os integraria ao aplicativo, muitas vezes enfrentando atritos quando as coisas não se encaixavam perfeitamente.
Um designer pode entregar um arquivo .psd com todos os nove cantos de uma tabela meticulosamente projetados, e a equipe de HTML/CSS o dividiria em um layout funcional. Mas eles estavam amplamente desconectados da lógica real do aplicativo ou das interações do usuário. O trabalho deles era apenas garantir que o visual funcionasse. A equipe de back-end, que lida com PHP e JavaScript, integraria então esses modelos estáticos ao aplicativo funcional, muitas vezes descobrindo que as soluções apresentadas pelas equipes anteriores não eram ideais para as necessidades do aplicativo. Isso foi um reflexo de como as organizações foram estruturadas, com cada equipe possuindo uma parte diferente do processo sem muita comunicação cruzada.
Hoje, a forma como separamos as preocupações mudou drasticamente. Em vez de dividir as responsabilidades por tecnologia – como uma equipe para HTML e CSS e outra para JavaScript e PHP – as equipes modernas têm maior probabilidade de serem responsáveis por toda a pilha de partes específicas do aplicativo. Cada equipe normalmente possui uma fatia vertical do aplicativo, incluindo tudo, desde componentes de front-end até lógica de back-end. Essa mudança é impulsionada pelo surgimento de arquiteturas baseadas em componentes, onde componentes reutilizáveis e independentes são os blocos de construção do sistema.
Por exemplo, em vez de uma equipe se concentrar em todo o HTML e CSS de todo o site e outra equipe cuidar do JavaScript e da integração do lado do servidor, agora você tem equipes responsáveis por recursos ou componentes distintos, como ,
Essa nova separação de preocupações, por recurso ou componente, e não por tecnologia, permite que as equipes iterem mais rapidamente. Uma equipe responsável por um widget de chat, por exemplo, pode implementar alterações na UI e na API de back-end sem esperar que outra equipe lide com uma parte do sistema. A principal diferença agora é que, em vez de ter equipes especializadas focadas apenas em HTML ou JavaScript, você tem equipes multifuncionais que se apropriam de seus componentes ou recursos em sua totalidade.
Um dos resultados mais significativos dessa mudança é o surgimento de micro-frontends, onde diferentes equipes possuem diferentes partes do frontend, assim como possuem partes do backend. Isso permite um nível de independência que não era possível nos primeiros dias. Uma arquitetura micro-frontend reflete a independência que as equipes têm agora no gerenciamento de seus componentes.
Por exemplo, uma equipe responsável por
Em contraste, no antigo modelo de separação HTML CSS vs. JS PHP, alterações em qualquer parte do sistema exigiam coordenação entre várias equipes. Se o frontend precisasse de um novo recurso, a equipe de HTML/CSS teria que trabalhar com a equipe de JavaScript para garantir que o novo layout ou funcionalidade funcionasse conforme o esperado. Hoje, com equipes que possuem componentes ou recursos específicos de cima a baixo, essa necessidade de coordenação entre equipes é bastante reduzida, permitindo ciclos de desenvolvimento e implantação mais rápidos.
A Lei de Conway continua tão relevante como sempre. A forma como construímos software hoje ainda reflete a forma como nossas equipes são organizadas, mas a diferença é que as estruturas de equipe modernas são mais focadas em recursos e menos isoladas em tecnologia. O antigo método de divisão de responsabilidades por tecnologia (HTML CSS vs. JS PHP) deu lugar a um modelo onde cada equipe é responsável por um recurso ou componente completo.
Essa separação moderna de preocupações permite uma melhor comunicação dentro das equipes e uma propriedade mais focada. Micro-frontends, arquiteturas baseadas em componentes e equipes focadas em recursos são todos reflexos da visão de Conway: que seu software refletirá inevitavelmente a estrutura de sua equipe. À medida que as estruturas de nossa equipe evoluem, também evoluem os sistemas que construímos, tornando-se mais flexíveis, modulares e independentes.
A mudança da separação de preocupações baseada em tecnologia para a separação baseada em recursos revolucionou a forma como construímos aplicativos da web. A Lei de Conway explica por que essa evolução aconteceu: à medida que as equipes se tornaram mais autônomas e focadas em recursos, a arquitetura dos nossos sistemas seguiu o exemplo. Micro-frontends, bibliotecas de componentes internos e desenvolvimento baseado em componentes refletem a necessidade moderna de equipes independentes e multifuncionais que possuem tanto o front-end quanto o back-end de seus recursos ou componentes específicos.
Embora as ferramentas e estruturas tenham evoluído, o princípio fundamental permanece o mesmo: a forma como as equipes são estruturadas influencia diretamente o software que elas constroem. Ao compreender a Lei de Conway e a história da separação de interesses, podemos apreciar melhor os sistemas com os quais trabalhamos hoje e antecipar como eles podem continuar a evoluir.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3