O desenvolvimento de software é um campo complexo, onde a comunicação e a colaboração desempenham papéis cruciais, pois isso afeta a forma como os softwares são desenvolvidos.
Nesse artigo falaremos sobre a Lei de Conway, que diz que “o software é uma cópia da empresa que o desenvolve, sendo assim empresas mal estruturadas consequentemente desenvolvem softwares mal estruturados”.
Criado por Melvin Conway, ele descreve a Lei de Conway mais ou menos assim: “Qualquer organização que projete um sistema irá desenvolver uma estrutura para esse sistema que será uma cópia de estrutura de comunicação da própria organização”.
Deixando um pouco mais claro, ela oferece uma visão sobre como as organizações projetam sistemas de software e como a forma como as organizações eram estruturadas teria um forte impacto em qualquer sistema nelas criados.
As estruturas dos softwares são “espelhos” das estruturas das organizações que os desenvolvem. E aqui vai um ponto muito importante: a interação entre as equipes molda a forma como os softwares são construídos.
Se em uma empresa cada equipe trabalhar de uma forma, em seus próprios pedaços do projeto e não se comunicar e/ou colaborar eficientemente com outras equipes, não compreender totalmente o que os outros estão fazendo, o resultado pode se tornar um software fragmentado e de difícil manutenção.
Indo para o outro lado, equipes bem comunicadas tem mais chances de criar um sistema eficiente e bem integrado. Por isso, a qualidade de comunicação entre os times é bastante frisada, pois se essa comunicação for complicada, a comunicação entre as camadas do software também será.
Um exemplo na prática…
Imagine uma empresa que está desenvolvendo um site de vendas. Se a equipe que é responsável pelo carrinho de compras não se comunica bem com a equipe de estoque, por exemplo, podem surgir problemas de integração.
Por essa razão que a Lei de Conway diz que a falta de comunicação entre as equipes pode resultar em um design de software menos coeso, o que acaba trazendo muitos problemas e inclusive dificultando a experiência do usuário.
Por isso, a comunicação clara é essencial e isso significa que todos devem entender o que os outros estão fazendo, seja por reuniões, atualizações e documentação clara, que são fundamentais para garantir que todos estejam na mesma página.
Além claro, da colaboração que é uma das chaves principais: um software é feito por diferentes partes que precisam se encaixar. A Lei de Conway é um lembrete fundamental de que o sucesso no desenvolvimento de software vai além do código.
Indo além da comunicação…
As organizações devem estar dispostas a ajustar suas estruturas de comunicação e organização interna à medida que os projetos evoluem. Embora a comunicação seja um aspecto muito importante da Lei de Conway, esse conceito vai além das equipes terem uma boa comunicação: ela destaca a conexão entre a estrutura organizacional, a comunicação entre as equipes e a arquitetura do software.