DEV Community

Cover image for Microserviços e Fordismo
Victor Osório
Victor Osório

Posted on

Microserviços e Fordismo

A Lei de Conway Reversa também significa que os desenvolvedores serão, em muitos aspectos como microserviços: eles serão capazes de fazer uma tarefa e (espera-se) fazer essa tarefa muito bem, mas eles estarão isolados (em termos de responsabilidade, conhecimento do domínio e experiência) do resto do ecossistema. Quando considerados juntos, todos os desenvolvedores trabalhando coletivamente dentro de um ecossistema de microserviços saberão tudo que há pra saber sobre ele, mas individualmente eles serão extremamente especializados, conhecendo apenas as partes do ecossistema pelas quais são responsáveis.

A citação acima foi extraída do livro Microserviços prontos para a produção da página 48. Fica muito evidente a similaridade de uma arquitetura de microserviços com o modelo de produção Fordista! 🏭🏭🏭🏭

Há muitos pontos positivos nisso:

  • Velocidade na produção
  • Consistência entre as soluções abaixo da camada de microserviços (visto que os desenvolvedores não tem nem dominio e nem escolha sobre essas camadas)
  • Não dá para reconstruir a estrutura do zero facilmente (sim, isso é positivo, evita espionagem industrial)

Mas também há alguns pontos negativos:

  • O conhecimento do sistema como um todo está disperso
  • Possível falta de compartilhamento entre os nós do ecossistemas.

Quando estava na faculdade, muitos professores diziam que eramos Pedreiros do Egito pela maneira rudimentar que o processo era controla. Agora acredito que somos trabalhadores de uma fábrica do inicio do século XX.

Top comments (3)

Collapse
 
shadowlik profile image
Henrique Marques Fernandes

Interessante a comparação! Escuto muita gente falando que isso é ruim, que especialização profunda cria ecossistemas cegos, o que em certos contextos pode ser verdade, mas com certeza não em um sistema de alta complexidade. Hoje em dia temos desenvolvedores frontend que não sabem CSS, jamais imaginaria há uns anos que existiria esse cenário de especialização, vemos cada vez mais DDD não só em arquitetura de sistemas mas também em recursos humanos.

Collapse
 
vepo profile image
Victor Osório

Não diria que é ruim, diria que são pontos negativos. Isso se aplica muito bem em grandes empresas, alias o livro prega que Microserviços devem ser aplicados somente a grandes empresas... o que eu discordo!

Em grandes empresas, você pode dar owners para microserviços, criando ambientes altamente especializados, isso vai trazer ganhos ao desenvolvimento desses serviços, e irá remover responsabilidades desse desenvolvedor. Mas limitará o conhecimento do todo do mesmo, acredito que diminuindo a gama de conhecimento dele.

Isso só se aplica a grandes empresas. Pequenas empresas, precisam de pessoas que entendem do todo, porque não dá pra isolar um dev de camadas da infra.

Sobre seu exemplo de um dev frontend que não sabe CSS, eu diria que é preguiça. Seria similar a um dev backend que não sabe fazer um script bash. Não dá... O cara teria que ser muito bom em outras coisas pra compensar.

Collapse
 
vepo profile image
Victor Osório

No fundo... Tudo é tradeoff...