Escalar Agilidade? O Custo Oculto de Conway que Ninguém te Conta

Compartilhe:

Muitas empresas que passam por transformações ágeis já querem começar utilizando Métodos Ágeis em escala. Para tal, adotam frameworks como SAFe e outros. Entretanto, trabalhar em escala pode ser difícil e complexo, pois todos os problemas que ainda não foram resolvidos para um time, agora são multiplicados para todos os times e elevados ao quadrado para cada dependência entre eles.

A Lei de Conway

Melvin E. Conway percebeu logo cedo que a complexidade daquilo que a empresa desenvolve está relacionada à estrutura da empresa. Seu corolário, baseado no artigo How do Committees Invent?”, publicado em 1968.

Qualquer organização que projeta um sistema (amplamente definido) produzirá um design que espelha a estrutura de comunicação da organização.

Lei de Conway em termos práticos

Imagine a seguinte hierarquia: 

Diagrama ilustrando a hierarquia organizacional: Presidência → Diretoria de Informática → Unidade de Desenvolvimento, Unidade de Banco de Dados e Unidade de Experiência de Usuário; Presidência → Diretoria de Operações → Unidade de Logística Terrestre. A imagem demonstra a Lei de Conway, mostrando como a arquitetura de sistemas tende a refletir essa estrutura organizacional.
Exemplo de uma hierarquia organizacional que influenciará a criação de sistemas de acordo com a Lei de Conway.

A Presidência quer criar um sistema para que os diversos interessados (internos e externos) acompanhem em tempo real o envio de cargas contratadas pelos clientes. A Unidade de Desenvolvimento fará a aplicação web e API. Já a Unidade de Banco de Dados define como os dados são armazenados. Ainda na TI, a Unidade de Experiência de Usuário (UX) projeta as telas e jornada dos interessados. Por fim, a Unidade de Logística Terrestre fornece os insumos necessários para construir os sistemas.

A Lei de Conway diz que a construção desse desenvolvimento refletirá essa estrutura. Logo, como consequência, o sistema provavelmente será modularizado e segmentado conforme essa estrutura. Isso significa que a arquitetura técnica refletirá a divisão organizacional. Obviamente, os atrasos ou dependências entre unidades (por exemplo, se a unidade de Banco de Dados mudar algo, os desenvolvedores precisam esperar) podem se refletir diretamente em gargalos no sistema. Outra possibilidade é que a experiência do usuário pode ser afetada se houver desalinhamento entre as equipes de UX, desenvolvimento e logística. Todos tendem a trabalhar de forma independente resolvendo a sua parte. 

O problema piora se você subdividir os times. Por exemplo, os desenvolvedores são divididos em times de Back-end e front-end. Ou time de barramento, baixa plataforma e alta plataforma e por aí vai. 

Times multidisciplinares

Não é à toa que o Scrum bate tanto na tecla de times multidisciplinares. Se dentro de uma equipe você tiver todos que precisam para realizar a entrega, melhor será o resultado, pois a Lei de Conway continua a atuar, porém, agora, todos os que precisam estar no time para realizar a sua entrega estão juntos e refletem essa realidade na construção de sistemas. Então, sempre que possível, reorganize equipes em torno de produtos, não de funções. Isso reduz transferências e mal-entendidos, além de promover ownership completo.

Dica do LeSS

Um framework interessante que fala sobre essa questão é o Large Scale Scrum (LeSS). Ele informa que devemos priorizar sempre Feature Teams (Times de Funcionalidades) em detrimento de Component Teams (Times de Componentes). 

Feature teams são equipes multifuncionais que conseguem entregar uma funcionalidade completa do sistema por conta própria. Elas não dependem de outras equipes para concluir uma entrega, pois reúnem todas as competências necessárias — como backend, frontend, banco de dados e UX. Isso permite que tenham autonomia, entreguem valor direto ao usuário final e reduzam a necessidade de repasses entre times. O trabalho flui melhor, o feedback chega mais rápido e o foco permanece no que realmente importa: resolver o problema do cliente.

Já os component teams são especializados em partes técnicas específicas, como a camada de banco de dados, o frontend ou as APIs. Embora ofereçam uma profundidade técnica maior em cada área, não conseguem entregar nada completo sozinhos. Sempre dependem de outras equipes para que algo chegue ao usuário. Isso gera uma cadeia de dependências, muitos repasses, atraso na entrega e um esforço maior de coordenação. O foco deixa de ser o valor final e passa a ser a eficiência interna de cada pedaço.

Por isso, o LeSS recomenda com clareza: prefira feature teams. Eles favorecem a entrega contínua de valor, reduzem a complexidade organizacional e mantêm o cliente no centro da solução. É uma escolha que melhora tanto o produto quanto a forma de trabalhar.

Quando o Time Multidisciplinar não é possível

Nem sempre conseguimos ter todos os que precisamos no nosso time, logo precisamos de outras alternativas para resolver esse problema. 

Quadro de Coordenação 

Uma das coisas mais importantes é identificarmos essas dependências entre times diferentes e começarmos a controlá-las. Como já escrevi aqui algumas vezes, precisamos mapear o Fluxo de Trabalho ponta a ponta. Desde o início até a entrega na mão do cliente. 

Infelizmente, muitos times têm resistência a isso, pois acreditam que depois que acabaram a sua parte, agora é problema do outro. Lembre-se daquela famosa frase do filme Tropa de Elite em que o comandante falava que certa parte do corpo pertencia ao ‘aspira’ (sic).

Um quadro de coordenação pode te ajudar nesse momento. Ele funciona de uma forma similar ao do time, porém mapeia o fluxo de trabalho ponta a ponta com todas as dependências. 

O ideal é que os itens nesse quadro de coordenação não tenham a mesma granularidade dos itens no quadro do time. Por exemplo, enquanto um time mapeia os detalhes de implementação, “criar tabela XPTO”, “Solicitar alteração de XYZ”, “Avaliar viabilidade de 123”, o quadro de coordenação tenha itens em alto nível: “Sprint 001 do Produto X”, “Funcionalidade ABC do Produto Y” etc. 

Quadro Kanban com colunas backlog, priorização, construção, homologação e disponibilização. Cada coluna contém cartões de História de Usuário (laranja) e Dívida Técnica (azul), representando itens em diferentes estágios do fluxo de trabalho.
Exemplo de um Quadro Kanban local de um Time de Desenvolvimento de Software
Quadro de fluxo de trabalho no modelo Kanban com colunas: backlog, priorização, ajuste de dados, desenvolvimento, entrega e entregue. Os cartões em laranja representam funcionalidades e os em azul representam épicos. O quadro mostra o andamento das entregas e como as dependências entre etapas são coordenadas.
Quadro de Coordenação de Fluxo de Trabalho: exemplo de quadro Kanban em nível de coordenação, com épicos e funcionalidades distribuídos ao longo do fluxo de ponta a ponta.

Perceba que o quadro de coordenação tem itens um tanto mais “genéricos” do que o quadro do time e as etapas refletem exatamente as dependências entre os times. Todavia, tenha cuidado, pois um quadro de coordenação não chega a ser um quadro estratégico que acompanha o portfólio da empresa.

Infelizmente o mapeamento em nível de coordenação é interessante, mas por si só não resolve o problema. 

Cadência de Comunicação

Se as dependências são mantidas, o ideal é que existam pontos de contato para que os times possam alinhar o que estão fazendo e evitar desconexões e incompatibilidades. O Kanban sugere as cadências (reuniões):

O quadro de coordenação é muito útil nesses momentos, pois ele servirá de guia e mapa de discussão de todas essas reuniões. As ferramentas atuais como Jira, Taiga, Business Map, permitem essa visualização em diferentes níveis.

Políticas Explícitas

Outra coisa que ajuda muito times com forte dependência, são políticas explícitas claras de convivência entre eles. Essas políticas podem descrever:

  • Prioridade e ordem de atendimento
  • Prazos
  • Contratos de interface (API, Bancos, Formatos de Dados, Padrão de Nomenclatura etc.)
  • Tipos de Serviços Prestados por cada time
  • Política de “fura-fila” (expedite).

Não deixe nada subentendido, tudo deve ficar claro para todos.

Reduza silos e incentive a empatia

Uma tática que costuma a funcionar bem é o  job shadowing (acompanhamento de trabalho). Por exemplo, um desenvolvedor de software acompanha um analista da logística por um dia. 

Outra técnica que ajuda a trazer empatia pelo trabalho dos outros são as demissões abertas de atividades-chave. Com isso, os times vêem o impacto do trabalho do outro. O grande benefício é fortalecer a visão de produto e criar senso de propósito compartilhado.

Não escale

O LeSS, Scrum at Scale (S@S), até mesmo o Pacote de Expansão do Guia do Scrum (Scrum Guide Expansion Pack) fazem uma recomendação importantíssima: 

SE POSSÍVEL, NÃO ESCALE. 

Não é que eles sejam contrários a trabalhar em escala, inclusive eles foram criados com esse intuito. Todavia, reconhecem o desafio que é trabalhar em escala. Você sempre precisará de mais coordenação, mais reuniões, mais alinhamento e fatalmente suas entregas serão mais lentas. Se possível, deixe os times o mais ponta a ponta e o mais independentes possíveis.

Algumas dicas:

1. Escalar é caro — em tudo

Como já escrevi, quanto mais times você adiciona, mais reuniões são necessárias, mais gente precisa se coordenar, mais chances surgem de retrabalho, conflitos e atrasos. Escalar não multiplica produtividade, multiplica complexidade. Por isso, pense duas vezes antes de crescer horizontalmente.

2. Busque “times que aprendem” antes de criar novos times

Apressar a criação de novos times pode ser uma fuga para não lidar com limitações de aprendizado, priorização ou foco. Antes de escalar, verifique:

  • O time atual está com foco claro?
  • Estão priorizando o que realmente importa?
  • O aprendizado está sendo usado para entregar mais com menos?

Se a resposta for não, o problema não é falta de time, mas falta de melhoria contínua.

3. Melhore a performance antes de adicionar capacidade

Muitas vezes, times não entregam mais não por falta de pessoas, mas por bloqueios, gargalos ou ruídos de comunicação.

Use práticas de Kanban, métricas como Customer Lead Time, WIP e Taxa de Chegada e Taxa de Entrega para identificar se há capacidade ociosa escondida que pode ser melhor aproveitada.

4. Reduza a complexidade do produto antes de expandir o time

No nosso livro Empresas Tradicionais: um castelo de mentiras, eu e o Rodrigo de Toledo falamos sobre uma mentira comum em projetos personificada pela Princesa Jáque. “Já que vamos pedir X, vamos pedir X’, Y, Z também. Logo, o produto fica cheio de penduricalhos que ninguém utiliza.

Ilustração da Princesa Jaque, personagem metafórica que representa o hábito de adicionar funcionalidades desnecessárias com o pensamento “já que vamos fazer X, vamos aproveitar e incluir Y e Z também”, gerando complexidade e desperdício em projetos.
A Princesa Jaque: personagem que simboliza a prática de adicionar funcionalidades extras desnecessárias, inflando o escopo e dificultando a entrega de valor.

Às vezes, o problema não está na estrutura organizacional, mas no próprio produto: funcionalidades desnecessárias ou mal definidas, escopo inflado, arquitetura acoplada, excesso de dívidas técnicas etc. Antes de chamar mais gente, simplifique: Pode remover algo? Pode dividir o produto em micro-serviços ou módulos independentes menores? Pode investir em automações?

5. Teste escalar com times temporários, não permanentes

Se a expansão for inevitável, experimente criar ambientes escalados temporários com objetivos claros e prazos curtos. Por exemplo, entrega e estabilização da versão 3 até o final do próximo mês”. Isso evita criar estruturas pesadas demais e permite avaliar se realmente há ganho em escalar.

6. Evite o modismo do ágil em escala

Não escale apenas porque todo mundo está fazendo. Avalie se há real necessidade. Em muitos casos, times pequenos e bem alinhados entregam mais do que estruturas grandes e burocráticas.

7. Use princípios lean: maximize valor, minimize estrutura

Pergunte sempre: O que aconteceria se entregássemos isso com o time atual? O que precisamos parar de fazer para não precisar escalar?

Menos estrutura = menos ineficiência = mais foco no valor.

8. Prefira escalar por divisão de produto, não por função

Se precisar escalar, que seja dividindo produtos ou domínios, e não criando times especializados por tecnologia. Lembre-se sempre da Lei de Conway. Exemplo: Time A cuida do acompanhamento de carga. Já o Time B cuida da emissão de faturas. Evite separar por “back-end”, “banco de dados”, “UX”… isso cria componentes, não produtos.

9. Cuidado com o que você usa para escalar

Há frameworks e frameworks. Alguns são mais realistas e tentam manter a estrutura o mais enxuta possível. Por exemplo, o Kanban te ajuda a partir do ponto em que você está e conforme a necessidade surgir você implementa algumas de suas práticas. Já o LeSS e o Scrum at Scale tentam manter o foco total no produto e na manutenção de times multidisciplinares e enxutos. 

Particularmente tenho algumas restrições quanto ao SAFe (Scaled Agile Framework). Não é que a sua teoria seja ruim, mas na prática ele tem sido utilizado como o meio de mudança para não mudar.  Como ele já prevê uma estrutura e hierarquia de papéis completa, ele tende a burocracia, reforço de silos, preservação da estrutura, e como disse um colega recentemente: “aqui na empresa todo mundo virou mineiro. Toda hora tem um trem” (ele fala sobre o Agile Release Train e o Solution Train que são técnicas de entregas do produto no SAFe).

Conclusão

Escalar a agilidade não é o objetivo, é uma consequência. O verdadeiro foco deve estar em entregar valor com consistência, autonomia e aprendizado contínuo. Antes de pensar em frameworks, trens ou estruturas complexas, é essencial olhar para o básico: times pequenos, multidisciplinares, com foco no cliente e no fluxo de trabalho de ponta a ponta.

A Lei de Conway não é uma maldição, mas um alerta: a forma como nos organizamos define a forma como construímos nossos sistemas. Se queremos soluções simples, eficazes e centradas em valor, precisamos de estruturas organizacionais que favoreçam isso .

Portanto, antes de escalar, simplifique. Antes de criar novos times, melhore os que você já tem. E se for escalar, faça isso com consciência, propósito e o mínimo de desperdício possível. No fim das contas, a melhor estrutura ágil é aquela que atrapalha o mínimo e ajuda o máximo.

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Sobre o autor(a)

Trainer na K21

Avelino Ferreira é formado e mestre em Ciência da Computação. Teve uma longa trajetória na TI, começando como programador e chegando a gestor de diversos times de criação de produtos digitais. Conheceu e começou a adotar as melhores prática de de Métodos Ágeis em 2008. Desde então, se dedica a auxiliar outras empresas na construção da cultura ágil. Atualmente, é Consultor e Trainer na K21

Artigos relacionados

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Todos nós recebemos demandas que têm um prazo exato para ser entregue. Quando isso acontece, uma das ações acaba sendo tomadas. A primeira é parar tudo e começar a fazer a demanda com prazo. Outra, caso o prazo esteja distante,…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

A Lei de Little vem do professor do MIT John D. C. Little (1928 – 2024). Ele publicou o conceito inicial em 1954 sobre a Teoria das Filas e o comprovou em 1960 no artigo que pode ser lido na…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Tratando Riscos em Projetos Ágeis : Riscos de Negócio Há alguns dias estava lendo um artigo do Kanban Plus e esbarrei no tratamento de riscos que o Kanban traz. Senti vontade de dar um passo além e escrever como tratamos…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Muitas vezes a expressão Wishful thinking é erroneamente traduzida para Pensamento Positivo. A tradução mais correta seria Pensamento Ilusório ou Pensamento Enganoso. Infelizmente esse pensamento está presente em diversas transformações e vive em muitos gestores. Gostaria neste artigo de apresentar…