O termo “Lei de Conway” é usado para descrever a forma como as organizações estão estruturadas em torno dos padrões de comunicação dos seus membros. A lei tem o nome do cientista da computação Melvin Conway, que a formulou em 1968.
A idéia básica da lei de Conway é que a estrutura de uma organização irá refletir os padrões de comunicação dentro dessa organização. Em outras palavras, se os membros de uma organização se comunicam principalmente através de e-mail, então a organização será organizada em torno da comunicação por e-mail. Se os membros de uma organização se comunicam principalmente através de interação presencial, então a organização será organizada em torno da interação presencial.
A implicação da lei de Conway é que as organizações tenderão a produzir produtos que reflitam a estrutura interna da organização. Por exemplo, se uma organização está organizada em torno da comunicação por e-mail, então a organização tenderá a produzir produtos que são bem adequados para a comunicação por e-mail. Se uma organização está organizada em torno da interação presencial, então a organização tenderá a produzir produtos que são bem adequados para a interação presencial.
A lei da Conway tem sido usada para explicar uma variedade de fenômenos no mundo do desenvolvimento de software. Por exemplo, ela tem sido usada para explicar porque muitos produtos de software são mal projetados para interações de interface com o usuário. Também tem sido usada para explicar porque muitos produtos de software são projetados para uso por um pequeno número de usuários, mesmo que o mercado para o produto possa ser muito maior.
Há algumas evidências de que a lei da Conway está começando a quebrar no mundo do desenvolvimento de software, já que a ascensão das equipes de desenvolvimento distribuído e o uso de métodos ágeis de desenvolvimento tornaram mais fácil para as organizações a produção de produtos que são bem adequados para uma variedade de tipos de usuários e estilos de interação. No entanto, a lei ainda se aplica em muitos casos, e é provável que continue a aplicá-la num futuro próximo. Quais são os 4 tipos de estruturas organizacionais? Existem quatro tipos comuns de estruturas organizacionais que são usados no mundo dos negócios: funcional, divisional, matricial e plana. Cada tipo tem suas próprias vantagens e desvantagens, por isso é importante escolher o tipo certo para a sua empresa com base nas suas necessidades e objetivos.
Estrutura funcional:
Uma estrutura de organização funcional é a forma mais tradicional e simples de organização. Neste tipo de estrutura, a empresa está dividida em departamentos baseados na especialidade, tais como marketing, vendas, contabilidade, etc. Cada departamento é chefiado por um gerente de departamento, e existe uma cadeia de comando clara. Este tipo de estrutura é bom para empresas pequenas ou que têm um modelo de negócio simples.
Estrutura divisional:
Uma estrutura divisional é semelhante a uma estrutura funcional, mas em vez de ser dividida em departamentos baseados na especialidade, a empresa é dividida em divisões baseadas no produto, na geografia ou no cliente. Cada divisão é chefiada por um gerente de divisão e ainda existe uma clara cadeia de comando. Este tipo de estrutura é bom para empresas que têm um modelo de negócio mais complexo ou que operam em múltiplos mercados.
Estrutura Matricial:
Uma estrutura matricial é uma estrutura mais complexa do que as outras duas. Em uma organização matricial, não há uma clara cadeia de comando. Ao invés disso, existe uma matriz de relações entre pessoas e departamentos. Este tipo de estrutura é bom para empresas que precisam ser capazes de responder rapidamente às mudanças no mercado ou que têm muita funcionalidade cruzada
O que significa a manobra inversa de Conway?
O Jogo da Vida da Conway é um conhecido autômato celular inventado pelo matemático John Horton Conway em 1970. O jogo é jogado numa grelha de células quadradas, cada uma das quais pode estar num de dois estados, “viva” ou “morta”. O estado de uma célula na geração seguinte é determinado por um conjunto de regras que dependem dos estados das células da geração atual.
Uma das coisas interessantes sobre o Jogo da Vida é que ele pode ser usado para simular qualquer tipo de autômato celular. Ou seja, se tivermos uma grade do Game of Life com alguma configuração inicial de células vivas e mortas, podemos rodar o jogo por um certo número de gerações, e o estado final da grade será o mesmo como se tivéssemos rodado um autômato celular diferente com a mesma configuração inicial.
Esta propriedade do Jogo da Vida torna possível fazer uma “manobra de Conway inversa”. Ou seja, dada uma grelha do Game of Life com alguma configuração final de células vivas e mortas, podemos correr o jogo para trás durante um certo número de gerações, e o estado inicial da grelha será o mesmo como se tivéssemos corrido um autómato celular diferente com a mesma configuração final.
A manobra inversa do Conway é útil para o estudo dos autômatos celulares, pois nos permite começar com uma configuração final conhecida e trabalhar para trás para encontrar a configuração inicial. Isto pode ser muito mais fácil do que tentar encontrar a configuração inicial de um autômato celular
O que é uma equipe capacitadora?
Uma equipe de capacitadores é uma equipe de desenvolvedores que trabalham juntos para criar software que permita que outros desenvolvedores sejam mais produtivos. A equipe pode trabalhar em ferramentas, bibliotecas ou frameworks que facilitem aos desenvolvedores a construção de aplicativos. A equipe também pode trabalhar em documentação ou tutoriais que ajudam os desenvolvedores a aprender como usar essas ferramentas.
Por que, segundo a Conway, a organização social de uma equipe de desenvolvimento é tão importante?
De acordo com a Conway, a organização social de uma equipe de desenvolvimento org importa tanto porque afeta diretamente a capacidade da equipe de se comunicar e colaborar efetivamente. Se a equipa não estiver organizada de forma a permitir uma comunicação clara e eficaz, será muito mais difícil para a equipa trabalhar em conjunto de forma eficaz e produzir software de alta qualidade.