Translate

Mostrar mensagens com a etiqueta equipes. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta equipes. Mostrar todas as mensagens

sábado, 14 de agosto de 2021

Bike Shedding Rules: Quando um Programador COBOL Descobriu que a Matrix Fazia Todos Discutirem a Cor da Bicicleta Enquanto a Usina Estava Prestes a Explodir

 

Bellacosa Mainframe e a bike shedding rules

☕ Um Café no Bellacosa Mainframe

Bike Shedding Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Fazia Todos Discutirem a Cor da Bicicleta Enquanto a Usina Estava Prestes a Explodir

"A Matrix não precisa impedir você de resolver o problema. Basta convencer todos a discutir o problema errado."


Introdução — A Reunião Dentro da Matrix

Neo entra em uma enorme sala de reuniões.

Na parede existe um painel gigantesco.

No centro aparece um alerta crítico.

⚠️ Sistema Bancário Nacional
Fechamento Noturno em Risco

O problema é gravíssimo.

O processamento pode falhar.

Milhões de transações dependem daquela execução.

Neo pergunta:

— Quem está cuidando disso?

Morpheus responde.

— Eles.

Neo olha para a sala.

Os analistas discutem apaixonadamente.

Mas não sobre o processamento.

Não sobre o Db2.

Não sobre o COBOL.

Nem sobre o CICS.

Eles discutem:

  • a cor dos gráficos

  • o nome da nova aplicação

  • se o botão deveria ser azul ou verde

  • o tamanho da fonte

  • se o README usa Markdown ou AsciiDoc

  • qual editor é melhor

  • se comentários devem começar com "", ">", ou "*> "

Enquanto isso...

o Job continua falhando.

A Matrix sorri.

O Agente Smith também.

Você acaba de presenciar um clássico caso de Bike Shedding.


O que é Bike Shedding?

Bike Shedding é um fenômeno onde pessoas gastam enorme quantidade de tempo discutindo assuntos simples e pouco importantes, enquanto ignoram questões realmente críticas.

Em outras palavras:

Quanto mais simples o assunto, mais pessoas opinam. Quanto mais complexo, menos pessoas participam.

É um comportamento psicológico extremamente comum.

E perigosamente frequente em projetos de software.


A origem do termo

O conceito nasceu em 1957.

Foi apresentado pelo historiador e cientista britânico Cyril Northcote Parkinson.

No livro:

Parkinson's Law

Ele descreve uma situação fictícia.

Imagine uma comissão aprovando três projetos.

Primeiro

Construção de um reator nuclear.

Custo:

Bilhões.

Ninguém entende engenharia nuclear.

Resultado?

Aprovado em cinco minutos.


Segundo

Construção de um laboratório.

Pouca discussão.


Terceiro

Construção de um bicicletário.

Valor pequeno.

Todo mundo entende bicicletas.

Resultado?

Horas debatendo:

  • cor

  • localização

  • tamanho

  • telhado

  • pintura

O bicicletário consumiu mais tempo que a usina nuclear.

Assim nasceu:

Bike Shedding


Matrix explica perfeitamente

A Matrix vive desviando atenção.

Não precisa esconder a verdade.

Basta oferecer distrações.

Em projetos acontece igual.

Enquanto a arquitetura inteira desmorona...

todos discutem:

"Essa variável deveria chamar CLIENTE ou CLIENT?"


O paradoxo do conhecimento

Existe uma explicação psicológica interessante.

As pessoas evitam opinar sobre assuntos que não dominam.

Mas adoram opinar sobre aquilo que parece simples.

Por isso:

Arquitetura distribuída?

Silêncio.

Nome do programa?

Todo mundo vira especialista.


O Programador COBOL Padawan

Imagine.

Você participa da primeira reunião.

Tema oficial:

Modernização do Core Bancário.

Você imagina discussões sobre:

  • CICS

  • Db2

  • APIs

  • z/OS Connect

  • MQ

  • segurança

  • performance

Mas a reunião inteira é consumida por:

"O novo padrão de comentários terá três ou quatro traços?"


Exemplo COBOL

Existe um programa.

PROGRAM-ID. FATUR001.

A equipe precisa alterar:

Uma regra tributária nacional.

Impacto:

Milhões de clientes.

Mas a reunião debate durante uma hora:

FATUR001

ou

FATURA01

ou

FAT-001

ou

BILL001

A regra tributária?

Ainda ninguém analisou.


Como nasce o Bike Shedding?

Normalmente começa assim.

Alguém apresenta um assunto complexo.

O grupo sente dificuldade.

Então alguém muda para um detalhe simples.

Exemplo.

"Precisamos definir a arquitetura."

Silêncio.

Então alguém pergunta.

"A propósito...

qual será a cor do dashboard?"

Pronto.

Uma hora desaparece.


O efeito psicológico

Nosso cérebro gosta de participar.

Quando o assunto parece fácil...

todos querem contribuir.

Isso gera sensação de pertencimento.

Mas também desperdiça tempo.


Matrix Reloaded

Imagine Neo diante do Arquiteto.

O Arquiteto explica uma estrutura extremamente complexa.

Neo tenta entender.

Então alguém interrompe.

"Gostei desse terno branco.

Onde comprou?"

É exatamente isso que acontece nas empresas.


O Agente Smith ama Bike Shedding

Porque ele sabe:

Enquanto vocês discutem detalhes...

ninguém resolve o problema verdadeiro.


O impacto em projetos

Bike Shedding provoca:

  • reuniões intermináveis

  • atrasos

  • decisões lentas

  • perda de foco

  • desgaste da equipe

E o pior.

Dá sensação de produtividade.

Todos participaram.

Mas nada aconteceu.


Um exemplo no Mainframe

Projeto:

Migrar milhares de programas COBOL para Enterprise COBOL 6.5.

Questões realmente importantes:

  • compatibilidade

  • desempenho

  • testes

  • NUMPROC

  • TRUNC

  • ARCH

  • OPT

  • SSRANGE

  • RENT

Mas a reunião discute:

"O template do PowerPoint ficará azul IBM ou azul escuro?"


Outro exemplo

Projeto:

Criar API PIX.

Discussão:

REST.

OAuth.

TLS.

MQ.

CICS.

JSON.

Mas metade da Sprint foi consumida decidindo:

Qual será o ícone da documentação.


Como reconhecer Bike Shedding?

Faça uma pergunta simples.

"O tempo gasto discutindo isso é proporcional ao impacto?"

Se não...

provavelmente existe Bike Shedding.


Os sintomas

Reuniões longas.

Decisões pequenas.

Grandes decisões adiadas.

Muito debate.

Pouca entrega.


O custo invisível

Imagine.

15 pessoas.

Reunião de duas horas.

Discutindo:

Nome da aplicação.

São:

30 horas de trabalho.

Sem produzir uma linha de código.


O Programador Sênior

Os profissionais mais experientes normalmente fazem uma pergunta.

"Isso impede a entrega?"

Se não impede...

seguem adiante.


Matrix e a Escolha

Morpheus oferece duas pílulas.

A azul.

Discutir detalhes infinitamente.

A vermelha.

Resolver o problema.

Toda equipe escolhe diariamente.


Como evitar Bike Shedding?

Definir objetivo da reunião

Qual decisão precisa sair daqui?


Time Box

15 minutos.

Acabou.

Decide.


Priorizar impacto

Quanto maior o impacto...

mais atenção.


Nomear um facilitador

Alguém precisa trazer a conversa de volta.


Criar Parking Lot

Assuntos paralelos.

Anotados.

Resolvidos depois.


O papel do Scrum Master

Excelente Scrum Masters interrompem gentilmente.

"Esse assunto é importante.

Mas não agora."

Essa frase economiza semanas.


O COBOL ensina foco

Programadores COBOL antigos possuem uma característica interessante.

Eles perguntam:

"O que está quebrado?"

Não:

"O que poderia ficar bonito?"

Primeiro estabilidade.

Depois estética.


Atenção!

Existe diferença entre:

Detalhe importante

e

Detalhe pequeno.

Segurança pode parecer detalhe.

Não é.

Performance pode parecer detalhe.

Não é.

Mas discutir durante quarenta minutos:

ordem alfabética dos COPYBOOKs...

provavelmente é.


Os riscos

Escopo cresce


Projeto atrasa


Equipe desmotiva


Clientes esperam


Arquitetura piora

Porque ninguém teve tempo para ela.


Curiosidade

Google.

IBM.

Microsoft.

Amazon.

Todas treinam líderes para reduzir Bike Shedding.

Algumas utilizam:

  • Decision Records

  • RFCs

  • ADR (Architecture Decision Records)

Justamente para evitar discussões infinitas.


Um exemplo engraçado

Chamado:

"Erro no cálculo do IR."

Reunião.

Primeira hora.

Escolha do nome da branch.

Segunda hora.

Cor do dashboard.

Terceira hora.

Modelo do documento.

Quarta hora.

Finalmente alguém pergunta.

"O erro ainda existe?"

Sim.


O Oráculo explica

O Oráculo olha para Neo.

E pergunta.

"O que realmente importa?"

Essa pergunta encerra metade das reuniões inúteis do mundo.


Aplicabilidade

Bike Shedding aparece em:

  • Desenvolvimento

  • Infraestrutura

  • Cloud

  • Segurança

  • Banco de Dados

  • Mainframe

  • DevOps

  • IA

  • Projetos Ágeis

  • Gestão

É praticamente universal.


Boas práticas

Priorize valor

Cliente antes.

Estética depois.


Decisões reversíveis

Se puder mudar depois...

não desperdice horas.


Documente rapidamente

Decidiu.

Registre.

Siga em frente.


Use especialistas

Nem toda decisão precisa de vinte pessoas.


Faça perguntas

"Qual impacto?"

"Qual risco?"

"Qual benefício?"


Erros comuns

Querer consenso absoluto.

Confundir democracia com eficiência.

Dar o mesmo peso para toda decisão.

Ignorar prioridade.

Não encerrar discussões.


O ensinamento para o Programador COBOL Padawan

Você entrará em muitas reuniões.

Algumas serão fundamentais.

Outras parecerão infinitas.

Aprenda a distinguir.

Sempre pergunte:

"Essa conversa ajuda o cliente?"

Se não.

Talvez todos estejam apenas pintando o bicicletário.


Curiosidades adicionais

O conceito de Bike Shedding inspirou diversas práticas modernas de gestão:

  • Regra dos Dois Minutos para Decisões Simples: se a decisão é barata e reversível, decida rapidamente.

  • ADR (Architecture Decision Records): registrar decisões arquiteturais evita rediscussões constantes.

  • Disagree and Commit: popularizado pela Amazon, incentiva que, após uma decisão ser tomada, a equipe siga em frente mesmo sem consenso absoluto.

  • Impacto × Esforço: muitas organizações usam matrizes para concentrar energia nas decisões que realmente afetam o negócio.


Matrix Revela a Verdade

No final da trilogia, Neo compreende que o maior poder da Matrix nunca foi controlar máquinas.

Foi controlar a atenção das pessoas.

Na Engenharia de Software acontece exatamente o mesmo.

Projetos raramente fracassam porque ninguém sabia programar COBOL.

Eles fracassam porque energia, tempo e inteligência foram consumidos discutindo assuntos periféricos enquanto os problemas críticos permaneceram intocados.

Cada minuto debatendo a cor de um botão quando uma arquitetura precisa ser definida é como permitir que mais um Agente Smith se multiplique dentro da Matrix.


Conclusão — Não Pinte o Bicicletário Enquanto Zion Está Sob Ataque

Imagine que Zion esteja prestes a ser invadida.

As sentinelas aproximam-se.

O núcleo de energia está instável.

As comunicações falham.

Nesse cenário, ninguém pararia para discutir a cor da pintura da garagem das naves.

No entanto, em projetos de software isso acontece todos os dias.

Em ambientes IBM Z, onde aplicações COBOL movimentam bilhões de reais diariamente, o foco deve estar nas decisões que garantem disponibilidade, segurança, desempenho, confiabilidade e continuidade do negócio. Questões cosméticas têm seu lugar, mas não podem competir com decisões arquiteturais e operacionais críticas.

O Programador COBOL Padawan que deseja evoluir para um verdadeiro Arquiteto da Frota Estelar precisa desenvolver uma habilidade rara: distinguir o importante do apenas interessante. Antes de entrar em qualquer discussão, pergunte:

  • Isso reduz riscos para o negócio?

  • Isso melhora a qualidade do software?

  • Isso acelera a entrega de valor?

  • Ou estamos apenas discutindo a cor do bicicletário?

Porque, no universo Bellacosa Mainframe, existe uma regra que vale tanto para Zion quanto para um CPD bancário:

"Enquanto você debate detalhes sem importância, o verdadeiro problema continua executando em produção."

E essa talvez seja a maior ilusão criada pela Matrix.

sexta-feira, 5 de fevereiro de 2021

Death March Project Rules : Quando um Programador COBOL Descobriu que Algumas Missões da Matrix Já Estavam Condenadas Antes Mesmo de Neo Escolher a Pílula Vermelha

 

Bellacosa Mainframe e a death march project rules


☕ Um Café no Bellacosa Mainframe

Death March Project Rules sem Mistérios

Quando um Programador COBOL Descobriu que Algumas Missões da Matrix Já Estavam Condenadas Antes Mesmo de Neo Escolher a Pílula Vermelha

"Nem todo projeto fracassa por incompetência. Alguns já nascem impossíveis."


Prólogo — A Missão Impossível da Nebuchadnezzar

Era madrugada na Nebuchadnezzar.

Toda a tripulação foi convocada para uma reunião urgente.

Morpheus entrou na sala.

Projetou um enorme holograma.

PROJETO MATRIX NEXT

Neo perguntou:

— Qual é o objetivo?

Morpheus respondeu naturalmente.

— Reescrever toda a Matrix.

Neo arregalou os olhos.

— Quanto tempo temos?

— Três meses.

Trinity perguntou:

— Quantas pessoas estarão no projeto?

Morpheus respondeu.

— Vocês quatro.

Tank quase derrubou a cadeira.

Neo continuou.

— Quantas funcionalidades?

Morpheus respirou.

— Todas.

Smith.

Oráculo.

Arquiteto.

Sentinelas.

Zion.

Economia.

Segurança.

Toda a infraestrutura.

Tudo.

Neo ficou em silêncio.

Depois perguntou:

— Isso é uma missão...

...ou uma sentença?

O Oráculo entrou lentamente.

Olhou para todos.

Sorriu.

E disse:

"Há projetos que fracassam durante a execução. Outros fracassam no instante em que alguém aprova o cronograma."

Bem-vindo ao Death March Project.


O que é um Death March Project?

Um Death March Project (Projeto Marcha da Morte) é um projeto que nasce com metas praticamente impossíveis de cumprir.

Ele normalmente apresenta uma combinação de fatores como:

  • prazo extremamente curto;

  • equipe insuficiente;

  • orçamento limitado;

  • escopo enorme;

  • tecnologia nova;

  • requisitos instáveis;

  • pressão constante.

Mesmo antes do primeiro código ser escrito, profissionais experientes já percebem que a probabilidade de sucesso é muito baixa.


A origem do termo

O conceito foi popularizado pelo consultor e escritor Edward Yourdon, em seu livro clássico Death March (1997).

Yourdon utilizou a expressão inspirada nas "marchas da morte" históricas para representar projetos onde equipes são levadas ao limite físico e psicológico tentando atingir objetivos praticamente inalcançáveis.

Na Engenharia de Software, a metáfora não se refere à violência histórica, mas ao desgaste extremo causado por projetos mal planejados.


Matrix explica perfeitamente

Imagine se, no primeiro filme, Morpheus dissesse:

— Neo, você terá uma semana para aprender kung fu, pilotar helicópteros, entender a Matrix, derrotar todos os Agentes e libertar a humanidade.

Neo provavelmente responderia:

— Nem carreguei o compilador ainda.

Essa missão seria impossível desde o início.


Como nasce um Death March?

Quase nunca por maldade.

Na maioria das vezes nasce da combinação de:

  • excesso de otimismo;

  • desconhecimento técnico;

  • pressão de mercado;

  • decisões políticas;

  • promessas comerciais.

Alguém diz:

"Depois a equipe resolve."

E a equipe paga a conta.


O COBOL conhece muito bem esse cenário

Imagine um banco.

O Banco Central publica uma nova regulamentação.

Prazo legal:

90 dias.

O sistema possui:

  • 12 milhões de linhas COBOL;

  • centenas de integrações;

  • dezenas de fornecedores.

A direção pergunta:

— Conseguimos?

Alguém responde:

— Claro.

O projeto começa.

Sem análise.

Sem planejamento.

Sem folga.

O cronograma já nasce comprometido.


Um exemplo inspirado no universo bancário

Objetivo:

Migrar todo o Core Banking.

Prazo:

60 dias.

Equipe:

5 desenvolvedores.

Sistemas envolvidos:

  • COBOL;

  • CICS;

  • Db2;

  • MQ;

  • APIs REST;

  • Mobile;

  • Open Finance;

  • PIX;

  • Cartões;

  • Internet Banking.

Não importa o quanto a equipe seja talentosa.

O problema é matemático.


Matrix Reloaded

Na conversa entre Neo e o Arquiteto, descobrimos que cada versão da Matrix exigia planejamento, testes e equilíbrio.

Agora imagine o Arquiteto recebendo esta ordem:

— Faça uma nova Matrix.

Prazo:

48 horas.

Sem testes.

Sem Oráculo.

Sem Chaveiro.

Sem equipe.

Essa seria uma verdadeira Death March.


Os sintomas aparecem cedo

Logo nas primeiras semanas surgem sinais claros.

Reuniões intermináveis

Mais tempo discutindo do que construindo.


Horas extras constantes

Viram rotina.


Escopo muda diariamente

Ninguém consegue estabilizar requisitos.


Testes são reduzidos

"Depois testamos."


Documentação desaparece

Não sobra tempo.


Dívida técnica cresce

Tudo vira urgência.


O efeito psicológico

O maior problema não é apenas o cronograma.

É a sensação permanente de fracasso.

Mesmo trabalhando doze horas por dia...

a equipe continua atrasada.

Isso reduz motivação.

Aumenta ansiedade.

Eleva o risco de burnout.


O Programador COBOL Padawan

Imagine seu primeiro projeto.

Você recebe:

  • cinco sistemas;

  • três linguagens;

  • duas semanas;

  • nenhuma documentação.

Seu líder diz:

— Confio em você.

Confiança é importante.

Planejamento também.


O Agente Smith adora Death March

Porque equipes exaustas:

  • cometem mais erros;

  • revisam menos código;

  • documentam menos;

  • testam menos;

  • inovam menos.

Smith não precisa atacar a Matrix.

Basta deixar todos cansados.


Um exemplo COBOL

Projeto:

Adicionar uma nova regra tributária.

Estimativa técnica:

4 meses.

Cronograma aprovado:

30 dias.

Resultado provável:

  • atalhos;

  • duplicação de código;

  • documentação incompleta;

  • testes reduzidos;

  • retrabalho posterior.


O custo invisível

Aparentemente o projeto "economizou" tempo.

Na prática criou:

  • dívida técnica;

  • manutenção cara;

  • incidentes;

  • desgaste da equipe.

O barato saiu caro.


O impacto no Mainframe

Projetos Death March em ambientes IBM Z costumam gerar:

  • aumento de ABENDs;

  • regressões;

  • falhas em lotes batch;

  • problemas de performance;

  • incidentes em produção;

  • retrabalho constante.

Como sistemas críticos raramente podem parar, o risco torna-se ainda maior.


Atenção!

Nem todo projeto difícil é um Death March.

Projetos desafiadores podem ser extremamente saudáveis quando possuem:

  • planejamento;

  • recursos compatíveis;

  • riscos conhecidos;

  • apoio da gestão.

O problema surge quando as restrições tornam o sucesso improvável desde o início.


A diferença

Projeto Desafiador

Difícil.

Mas possível.


Death March

Praticamente impossível.


Curiosidade

Edward Yourdon observou que muitos Death March Projects terminavam sendo "entregues".

Mas isso não significava sucesso.

Frequentemente eram entregues:

  • atrasados;

  • acima do orçamento;

  • com menos funcionalidades;

  • com enorme dívida técnica.


Matrix e Zion

Imagine Zion preparando sua defesa.

Necessidade:

construir cem naves.

Prazo:

dois dias.

Recursos:

dez mecânicos.

Mesmo trabalhando sem parar...

a matemática não fecha.


Como evitar?

Negociar escopo

Entregar menos.

Mas entregar bem.


Fazer estimativas realistas

Baseadas em dados.

Não em esperança.


Dividir entregas

Incrementos menores.


Identificar riscos cedo

Não escondê-los.


Reservar tempo para testes

Qualidade faz parte do cronograma.


Comunicar problemas rapidamente

Más notícias pioram quando atrasam.


O papel do Gerente de Projetos

O bom gerente não promete milagres.

Ele protege a equipe.

Negocia prioridades.

Remove impedimentos.

Mantém expectativas realistas.

Seu trabalho não é apenas cobrar prazos.

É tornar o projeto possível.


O papel do Arquiteto

Arquitetos também evitam Death March.

Como?

Reduzindo complexidade.

Reutilizando componentes.

Priorizando soluções simples.

Evitando reinvenções.


O papel da IA

Ferramentas de IA podem acelerar:

  • geração de código;

  • documentação;

  • testes;

  • análise de impacto.

Mas não transformam um cronograma impossível em um cronograma viável.

A IA aumenta produtividade.

Não altera as leis da física.


Os riscos

Burnout

Equipe esgotada.


Rotatividade

Profissionais pedem demissão.


Incidentes

Pressa gera erros.


Qualidade baixa

Testes sacrificados.


Perda de confiança

Clientes percebem atrasos.


Cultura tóxica

Horas extras tornam-se regra.


Erros clássicos

  • Prometer antes de estimar.

  • Ignorar especialistas técnicos.

  • Aceitar qualquer prazo.

  • Não reduzir escopo.

  • Esconder riscos.

  • Trabalhar continuamente em modo de emergência.


Boas práticas

  • Planejamento incremental.

  • Priorização.

  • Gestão de riscos.

  • Comunicação transparente.

  • Métricas objetivas.

  • Revisões frequentes.

  • Proteção da qualidade.


Aplicabilidade

Death March pode ocorrer em qualquer contexto:

  • COBOL;

  • Java;

  • Python;

  • ERP;

  • Cloud;

  • IA;

  • Mobile;

  • Governo;

  • Bancos;

  • Startups.

Sempre que expectativas ultrapassam sistematicamente a capacidade de entrega.


O ensinamento do Oráculo

O Oráculo entrega a Neo um mapa.

Nele existem dois caminhos.

O primeiro.

Curto.

Cheio de precipícios.

O segundo.

Mais longo.

Seguro.

Ela pergunta:

— Qual leva a Zion?

Neo responde:

— Os dois.

Ela sorri.

— Mas apenas um permite que a tripulação chegue viva.


Lições para um Programador COBOL Padawan

No início da carreira você talvez sinta vontade de aceitar qualquer desafio para provar seu valor.

Isso é admirável.

Mas maturidade profissional também significa reconhecer quando um cronograma precisa ser renegociado.

Aprenda a:

  • estimar com base em fatos;

  • comunicar riscos sem medo;

  • dividir entregas;

  • registrar premissas;

  • defender tempo para testes;

  • preservar sua saúde e a de sua equipe.

Grandes profissionais não são aqueles que vivem apagando incêndios.

São aqueles que ajudam a impedir que eles comecem.


Curiosidades

Projetos famosos considerados próximos de Death March incluíram grandes iniciativas de modernização de sistemas governamentais, migrações bancárias e implantações globais de ERP, onde cronogramas excessivamente otimistas acabaram exigindo sucessivas revisões.

Uma característica comum nesses casos foi a subestimação da complexidade de integração e da necessidade de testes.


Conclusão — Nem Mesmo Neo Poderia Vencer um Cronograma Impossível

No universo Matrix, Neo era extraordinário.

Mesmo assim, ele precisou de treinamento, aliados, planejamento e tempo para compreender a realidade antes de enfrentar os Agentes.

Na Engenharia de Software acontece exatamente o mesmo.

O antipadrão Death March Project ensina que talento não substitui planejamento.

Uma equipe excelente, trabalhando em um projeto impossível, continuará enfrentando limites de tempo, qualidade e capacidade humana.

Para um Programador COBOL, especialmente em ambientes IBM Z onde cada alteração pode afetar milhões de clientes, coragem não significa aceitar qualquer prazo.

Coragem significa apresentar estimativas honestas, negociar prioridades e construir soluções sustentáveis.

No universo Bellacosa Mainframe existe uma máxima que Morpheus certamente repetiria antes de iniciar qualquer missão:

"O verdadeiro Escolhido não é aquele que promete fazer o impossível. É aquele que transforma o possível em realidade sem sacrificar a equipe no caminho."

Porque, no fim das contas, um projeto bem-sucedido não é aquele que apenas chega ao destino.

É aquele que chega com um sistema confiável, uma equipe saudável e clientes que continuam acreditando na Matrix que você ajudou a construir.

domingo, 27 de setembro de 2020

Brooks's Law Rules: Quando um Programador COBOL Descobriu que Colocar Mais Pessoas na Matrix Não Fazia o Tempo Andar Mais Devagar

 

Bellacosa Mainframe e a brooks law rules

☕ Um Café no Bellacosa Mainframe

Brooks's Law Rules sem Mistérios

Quando um Programador COBOL Descobriu que Colocar Mais Pessoas na Matrix Não Fazia o Tempo Andar Mais Devagar

"Nove mulheres não fazem um bebê nascer em um mês. Da mesma forma, vinte programadores não entregam um projeto de seis meses em apenas duas semanas." — Inspirado em Frederick P. Brooks Jr.


Prólogo — A Reunião de Emergência na Nebuchadnezzar

A situação era crítica.

Faltavam apenas vinte dias para entregar a nova versão da Matrix.

Neo.

Trinity.

Morpheus.

Link.

Tank.

Todos trabalhavam sem parar.

Mesmo assim.

O cronograma continuava atrasado.

A reunião começou.

O Arquiteto entrou na sala.

Projetou um gráfico.

Prazo: 20 dias

Trabalho restante: 90 dias

Silêncio.

Então um executivo da Matrix levantou a mão.

Sorriu confiante.

— Tenho a solução.

Neo perguntou.

— Qual?

O executivo respondeu:

— Vamos contratar cinquenta programadores.

Todos ficaram olhando.

Morpheus fechou os olhos.

O Oráculo deu um leve sorriso.

Neo perguntou:

— Eles conhecem COBOL?

— Não.

— Conhecem CICS?

— Não.

— Conhecem Db2?

— Também não.

— Conhecem o negócio?

— Ainda não.

— Conhecem a arquitetura?

— Nunca viram.

Neo respirou profundamente.

O Oráculo então falou.

"Vocês não contrataram cinquenta programadores. Contrataram cinquenta aprendizes que precisarão aprender com aqueles que já estão atrasados."

Naquele instante, Neo compreendeu a Lei de Brooks.


O que é a Brooks's Law?

A Brooks's Law afirma:

"Adding manpower to a late software project makes it later."

Em português:

"Adicionar pessoas a um projeto atrasado fará com que ele atrase ainda mais."

Essa é uma das leis mais famosas da Engenharia de Software.

Ela parece contraintuitiva.

Mas faz completo sentido quando entendemos como projetos realmente funcionam.


A origem da Lei de Brooks

A frase foi criada por Frederick Phillips Brooks Jr., engenheiro da IBM e gerente do desenvolvimento do OS/360, um dos maiores e mais complexos sistemas operacionais da história dos mainframes.

Em 1975, Brooks publicou o livro clássico:

The Mythical Man-Month

Até hoje considerado uma das obras mais importantes da Engenharia de Software.

O livro nasceu da experiência prática.

Brooks percebeu que aumentar equipes durante crises normalmente piorava a situação.


Quem foi Frederick Brooks?

Frederick Brooks trabalhou na IBM durante um período decisivo da computação.

Entre suas contribuições estão:

  • liderança do projeto IBM System/360;

  • coordenação do desenvolvimento do OS/360;

  • estudos sobre arquitetura de computadores;

  • pesquisa em Engenharia de Software.

Seu trabalho moldou a forma como planejamos projetos até hoje.


Matrix explica perfeitamente

Imagine que Neo precisa salvar Zion.

Faltam dois dias.

Morpheus decide recrutar:

100 pessoas completamente novas.

Nenhuma conhece:

  • a Matrix;

  • os Sentinelas;

  • Zion;

  • a Nebuchadnezzar.

O que acontece?

Antes de ajudar...

essas pessoas precisarão aprender.

E quem ensinará?

Justamente Neo e Trinity.

Os dois que já estavam sem tempo.


O paradoxo da produtividade

Muitos gestores pensam:

10 pessoas

↓

10 meses

Logo.

20 pessoas

↓

5 meses

Infelizmente software não funciona assim.

Porque existe algo invisível.

Comunicação.


A matemática escondida

Imagine uma equipe.

2 pessoas.

Existem apenas:

1 canal de comunicação.

Agora.

5 pessoas.

Existem:

10 canais.

Agora.

10 pessoas.

45 canais.

Agora.

20 pessoas.

190 canais.

Cada novo integrante aumenta exponencialmente a quantidade de comunicação necessária.


O COBOL conhece isso muito bem

Imagine um banco.

Projeto crítico.

Equipe original:

6 especialistas COBOL.

Prazo apertado.

Gestão decide contratar:

12 novos desenvolvedores Java.

Eles são excelentes profissionais.

Mas nunca viram:

  • JCL;

  • CICS;

  • Db2;

  • VSAM;

  • RACF;

  • IMS;

  • JES2.

Resultado.

Os seis especialistas passam semanas ensinando.

Quem desenvolve?

Quase ninguém.


Como nasce o problema?

Projeto atrasa.

Gestão entra em pânico.

Contrata mais pessoas.

Treinamento aumenta.

Reuniões aumentam.

Integração aumenta.

Produtividade cai.

Projeto atrasa ainda mais.


Matrix Reloaded

Neo pergunta ao Arquiteto.

— Quantos Escolhidos existiram?

O Arquiteto responde.

— Muitos.

Imagine se, em vez de treinar um Escolhido, resolvessem treinar mil simultaneamente.

O conhecimento seria distribuído.

Mas muito mais lentamente.


O efeito psicológico

Existe um fenômeno interessante.

Equipes pequenas criam ritmo.

Todos sabem quem faz o quê.

Quando a equipe cresce rapidamente.

Aparecem:

  • dúvidas;

  • alinhamentos;

  • reuniões;

  • conflitos;

  • dependências.

O trabalho deixa de ser apenas programação.

Passa a ser coordenação.


O Programador COBOL Padawan

Imagine.

Primeira semana.

Você entra em um projeto.

Recebe:

  • 8 milhões de linhas COBOL;

  • 1.200 JCLs;

  • centenas de COPYBOOKs.

Você pergunta:

— Por onde começo?

Alguém precisa responder.

Esse alguém interrompe o próprio trabalho.


O Agente Smith adora isso

Porque quanto maior a equipe desorganizada.

Maior:

  • ruído;

  • retrabalho;

  • conflitos;

  • inconsistências.

Smith não precisa criar bugs.

A comunicação cria sozinha.


Um exemplo inspirado na Matrix

Neo está lutando contra Smith.

No meio da batalha chegam cinquenta novos soldados.

Todos perguntam ao mesmo tempo:

  • Onde atiro?

  • Quem é Smith?

  • O que é Zion?

  • Onde fica a saída?

  • Como funciona a Matrix?

Neo para de lutar.

Começa a responder perguntas.

Smith agradece.


Quando Brooks NÃO se aplica?

Essa é uma pergunta importante.

A Lei de Brooks não é absoluta.

Adicionar pessoas pode funcionar quando:

  • o trabalho pode ser dividido facilmente;

  • existem módulos independentes;

  • a documentação é excelente;

  • a arquitetura é clara;

  • há tempo para treinamento;

  • o projeto ainda está no início.

Por isso compreender o contexto é essencial.


O impacto no Mainframe

Ambientes IBM Z possuem características particulares.

Conhecimento de:

  • COBOL;

  • CICS;

  • Db2;

  • MQ;

  • RACF;

  • JCL;

  • z/OS.

Não se aprende em dois dias.

Logo.

Projetos críticos dependem muito da experiência acumulada.


Curiosidade

Brooks também criou outra frase famosa.

"The bearing of a child takes nine months, no matter how many women are assigned."

Essa analogia mostra que algumas atividades possuem limites naturais.

Software também.


O custo invisível

Cada novo integrante precisa:

  • ambiente;

  • acessos;

  • documentação;

  • mentor;

  • revisão;

  • treinamento;

  • integração.

Tudo isso consome tempo da equipe experiente.


Atenção!

A Lei de Brooks não significa:

"Nunca contratar."

Ela significa:

"Contratar tarde demais não resolve problemas estruturais."


A diferença

Crescimento planejado

Equipe aumenta gradualmente.


Crescimento desesperado

Equipe dobra durante a crise.


Matrix e a Frota de Zion

Imagine construir cem naves.

Contratar cem pilotos no último dia não acelera a construção.

Talvez nem existam naves suficientes para treiná-los.


Ferramentas ajudam

Hoje temos recursos que reduzem parte desse problema.

  • Wikis técnicas.

  • IBM ADDI.

  • Diagramas automáticos.

  • Pair Programming.

  • IA.

  • Documentação viva.

  • Vídeos internos.

  • Onboarding estruturado.

Mesmo assim.

Aprendizado continua levando tempo.


O papel da IA

A IA pode acelerar bastante o onboarding.

Ela ajuda a:

  • explicar programas COBOL;

  • resumir COPYBOOKs;

  • gerar diagramas;

  • responder dúvidas;

  • localizar dependências.

Mas não substitui o conhecimento do negócio.

Nem a experiência adquirida durante anos.


Os riscos

Comunicação excessiva


Retrabalho


Treinamento insuficiente


Burnout dos especialistas


Mais reuniões


Mais conflitos


Decisões inconsistentes


Erros clássicos

  • Dobrar a equipe durante a crise.

  • Não investir em documentação.

  • Ignorar curva de aprendizado.

  • Acreditar que programação é totalmente paralelizável.

  • Subestimar o conhecimento do negócio.


Boas práticas

  • Planeje crescimento cedo.

  • Documente continuamente.

  • Faça onboarding estruturado.

  • Divida responsabilidades.

  • Automatize tarefas repetitivas.

  • Preserve tempo dos especialistas.

  • Desenvolva novos profissionais antes da emergência.


Aplicabilidade

A Brooks's Law aparece em:

  • COBOL;

  • Java;

  • C#;

  • Python;

  • Cloud;

  • DevOps;

  • IA;

  • ERP;

  • Mobile;

  • Sistemas Bancários.

Sempre que conhecimento especializado é necessário.


O ensinamento do Oráculo

O Oráculo entrega um quebra-cabeça de mil peças para Neo.

Depois coloca cinquenta pessoas ao redor da mesa.

Ela pergunta:

— Terminaremos mais rápido?

Neo pensa.

Algumas pessoas começam a procurar peças.

Outras perguntam onde ficam as bordas.

Outras discutem a estratégia.

Depois de alguns minutos.

Neo sorri.

— Primeiro precisamos aprender a trabalhar juntos.

Ela responde:

"Exatamente. O tempo investido em coordenação cresce junto com a equipe."


Lições para um Programador COBOL Padawan

Se você ingressar em um grande projeto IBM Z, não se preocupe por não produzir imediatamente como os profissionais mais experientes.

Existe uma curva natural de aprendizado.

Você precisará conhecer:

  • a arquitetura;

  • o negócio;

  • os padrões da empresa;

  • os ambientes;

  • as ferramentas;

  • a cultura da equipe.

Ao mesmo tempo, quando você se tornar experiente, lembre-se de documentar e compartilhar conhecimento.

Essa atitude reduz o impacto descrito pela Lei de Brooks e torna o crescimento da equipe muito mais saudável.


Curiosidades

O livro The Mythical Man-Month também apresentou conceitos que continuam atuais:

  • No Silver Bullet (não existe solução mágica para produtividade).

  • Conceitualização é mais difícil que codificação.

  • Comunicação é um dos maiores custos invisíveis de projetos.

  • A importância de arquiteturas consistentes.

Mesmo cinquenta anos depois, essas ideias permanecem extremamente relevantes.


Conclusão — Nem Mesmo Neo Poderia Ensinar Toda Zion em Dois Dias

Na Matrix, Neo tornou-se poderoso porque teve tempo para aprender.

Treinou.

Errou.

Praticou.

Recebeu orientação de Morpheus, Trinity e do Oráculo.

Ninguém nasce especialista em COBOL, CICS ou Db2.

A Lei de Brooks nos lembra justamente disso.

Projetos atrasados raramente precisam apenas de mais pessoas.

Frequentemente precisam de:

  • planejamento melhor;

  • documentação adequada;

  • arquitetura clara;

  • prioridades bem definidas;

  • comunicação eficiente.

Para um Programador COBOL, essa talvez seja uma das lições mais importantes da carreira.

Conhecimento leva tempo para ser construído.

E tempo não pode ser multiplicado simplesmente aumentando o número de cadeiras na sala.

No universo Bellacosa Mainframe existe uma máxima que certamente estaria gravada na porta da sala do Arquiteto:

"Programadores podem ser contratados em um dia. Experiência, confiança e entendimento do negócio não."

Porque, assim como Neo precisou aprender a enxergar o código verde da Matrix antes de transformá-la, toda equipe precisa de tempo para se tornar realmente produtiva. É exatamente essa realidade que Frederick Brooks transformou em uma das leis mais importantes da história da Engenharia de Software.

sábado, 29 de agosto de 2020

Conway's Law Rules : Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

 

Bellacosa Mainframe e a conways law rules

☕ Um Café no Bellacosa Mainframe

Conway's Law Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

"As organizações desenham sistemas que refletem sua própria forma de comunicação."Melvin Conway (1967)


Prólogo — A Matrix Tinha o Mesmo Formato de Zion

Neo caminhava pelos corredores da Cidade das Máquinas.

Esperava encontrar servidores.

Processadores.

Centrais de controle.

Mas encontrou algo muito mais curioso.

Cada setor da Matrix era administrado por um grupo diferente.

O setor dos Agentes nunca conversava diretamente com o setor do Oráculo.

O setor do Merovíngio possuía seus próprios protocolos.

O Chaveiro trabalhava isolado.

Os Sentinelas recebiam ordens por outro canal.

Neo percebeu algo estranho.

Cada módulo da Matrix parecia exatamente igual ao departamento que o desenvolvia.

Morpheus perguntou:

— O que está vendo?

Neo respondeu:

— Não estou olhando apenas para um software...

Estou olhando para o organograma da empresa.

O Oráculo sorriu.

— Finalmente você encontrou a Lei de Conway.


O que é a Lei de Conway?

A Conway's Law afirma:

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

Em português:

"As organizações que desenvolvem sistemas acabam produzindo arquiteturas que refletem sua própria estrutura de comunicação."

Ou seja...

O software não nasce apenas das decisões técnicas.

Ele nasce da forma como as pessoas trabalham juntas.


A origem da Lei de Conway

A lei foi proposta em 1967 por Melvin E. Conway, cientista da computação.

Na época, Conway observou algo curioso.

Empresas organizadas em departamentos independentes acabavam criando softwares igualmente divididos.

Não era coincidência.

Era consequência direta da comunicação humana.

Décadas depois, essa observação continua sendo uma das ideias mais influentes da arquitetura de software.


Matrix explica perfeitamente

Imagine que a Matrix fosse construída por quatro equipes.

Equipe A.

Cuida da autenticação.

Equipe B.

Cuida da economia.

Equipe C.

Cuida dos Agentes.

Equipe D.

Cuida dos Sentinelas.

Se essas equipes quase não conversam...

o software também ficará separado.

Cada módulo desenvolverá sua própria visão da realidade.


O nascimento da Lei

Conway percebeu que a arquitetura técnica segue a arquitetura social.

Se duas equipes possuem dificuldades para conversar...

os sistemas também terão dificuldades para se integrar.


O COBOL conhece isso muito bem

Imagine um grande banco.

Departamento de Cartões.

Equipe própria.

Sistema próprio.


Departamento de PIX.

Equipe diferente.

API diferente.


Departamento de Crédito.

Outro time.

Outro banco de dados.


Departamento de Investimentos.

Outro padrão.

Outro framework.

O resultado?

Integrações complexas.

Duplicação de dados.

Interfaces difíceis.

Não porque os desenvolvedores desejavam isso.

Mas porque a organização já funcionava dessa maneira.


Um exemplo simples

Empresa.

Financeiro

RH

Comercial

Software.

Sistema Financeiro

Sistema RH

Sistema Comercial

Parece natural.

Agora imagine.

Cada departamento possui regras próprias de cadastro.

Logo surgem:

  • três cadastros de clientes;

  • quatro cadastros de funcionários;

  • cinco cadastros de endereços.

O software apenas refletiu a organização.


Matrix Reloaded

Observe os personagens.

O Oráculo não faz o trabalho do Arquiteto.

O Merovíngio não administra Zion.

O Chaveiro não controla os Agentes.

Cada grupo possui funções próprias.

Agora imagine.

Nenhum deles conversa.

A Matrix rapidamente se fragmentaria.


O efeito psicológico

As pessoas tendem a conversar mais com quem está próximo.

Mesmo dentro da mesma empresa.

Logo.

Os sistemas acompanham essa divisão.


O Programador COBOL Padawan

Imagine que você trabalhe no time de CICS.

Nunca conversa com o pessoal de APIs.

Nem conhece a equipe de Open Finance.

Depois de dois anos...

as integrações começam a falhar.

Não por culpa do COBOL.

Mas porque a comunicação humana falhou antes da comunicação entre sistemas.


O Agente Smith adora isso

Smith sabe que basta dividir as pessoas.

O restante acontece sozinho.

Cada equipe cria:

  • padrões próprios;

  • nomenclaturas próprias;

  • APIs próprias;

  • documentação própria.

Pouco tempo depois.

Os sistemas deixam de conversar.


Um exemplo inspirado na Matrix

Neo pergunta.

— Quem controla o cadastro dos humanos?

Resposta.

— Depende.

A equipe dos Agentes possui um.

O Merovíngio outro.

O Oráculo outro.

Zion outro.

Neo pergunta.

— Por que existem quatro?

O Arquiteto responde.

— Porque existiam quatro departamentos.


Como reconhecer?

Existem sinais muito claros.

APIs incompatíveis

Cada área cria seu padrão.


Bancos duplicados

Mesma informação.

Vários lugares.


Nomenclaturas diferentes

CPF.

CPF_NUM.

DOCUMENTO.

CLIENT_ID.

Tudo significa a mesma coisa.


Integrações difíceis

Equipes precisam negociar constantemente.


Regras repetidas

Cada departamento implementa novamente.


O impacto no Mainframe

Grandes ambientes IBM Z frequentemente atendem diversas áreas de negócio.

Se cada área evolui isoladamente.

Logo aparecem:

  • duplicação de COPYBOOKs;

  • layouts diferentes;

  • APIs redundantes;

  • programas semelhantes;

  • tabelas quase idênticas.

Tudo consequência da estrutura organizacional.


Curiosidade

Existe um conceito moderno chamado:

Reverse Conway Maneuver

A ideia é justamente o contrário.

Em vez de deixar a arquitetura seguir a organização...

a empresa reorganiza as equipes para produzir a arquitetura desejada.

Se deseja microsserviços independentes.

Cria equipes independentes.

Se deseja plataforma integrada.

Organiza equipes integradas.


Atenção!

Conway's Law não é uma crítica.

Ela é uma observação.

Toda organização sofre sua influência.

O importante é reconhecê-la.


O custo invisível

Quando departamentos não conversam.

Surgem:

  • retrabalho;

  • integrações caras;

  • conflitos de requisitos;

  • inconsistências.

Tudo isso custa tempo.

Dinheiro.

CPU.

Produtividade.


O papel do Arquiteto

Arquitetos não desenham apenas software.

Eles aproximam equipes.

Porque sabem.

Sem comunicação.

Não existe boa arquitetura.


Matrix e Zion

Imagine Zion dividida.

Cada setor constrói um pedaço da cidade.

Sem conversar.

Resultado.

Canos que não se conectam.

Cabos incompatíveis.

Portas que não levam a lugar nenhum.

Software funciona exatamente assim.


Ferramentas ajudam

Hoje usamos:

  • Enterprise Architecture.

  • Event Storming.

  • Domain Driven Design.

  • IBM ADDI.

  • OpenAPI.

  • AsyncAPI.

  • Catálogos corporativos.

Mas nenhuma ferramenta substitui comunicação humana.


O papel da IA

A IA pode:

  • documentar APIs;

  • comparar contratos;

  • identificar duplicações;

  • sugerir padronizações.

Mas não resolve conflitos organizacionais.


Os riscos

Sistemas duplicados


APIs redundantes


Custos maiores


Integrações frágeis


Visão fragmentada do negócio


Arquitetura inconsistente


Erros clássicos

  • Criar sistemas sem envolver outras áreas.

  • Duplicar cadastros.

  • Não compartilhar padrões.

  • Cada equipe inventar sua arquitetura.

  • Ignorar governança.


Boas práticas

  • Comunicação frequente.

  • Arquitetura corporativa.

  • Catálogo de APIs.

  • Padrões comuns.

  • Revisões interequipes.

  • Compartilhamento de conhecimento.

  • Domínios bem definidos.


Aplicabilidade

A Lei de Conway aparece em:

  • COBOL.

  • Java.

  • Cloud.

  • Microsserviços.

  • ERP.

  • APIs.

  • DevOps.

  • Bancos.

  • Governo.

  • Telecom.

Ela independe da tecnologia.


Um exemplo COBOL

Imagine.

Equipe A.

Cria COPYBOOK:

CLIENTE.

Equipe B.

Cria outro.

CLIENTE-NEW.

Equipe C.

Outro.

CLIENTE-V2.

Nenhum é compatível.

O problema começou muito antes do compilador.


O ensinamento do Oráculo

O Oráculo leva Neo até um enorme espelho.

Cada equipe da Matrix aparece refletida.

Depois o espelho se transforma.

Agora revela o software.

Neo percebe algo impressionante.

As divisões eram exatamente iguais.

Ela pergunta:

— O que mudou?

Neo responde.

— Nada.

O software apenas copiou as pessoas.

Ela sorri.

"É exatamente isso que Conway descobriu."


Lições para um Programador COBOL Padawan

Ao iniciar sua carreira em um ambiente corporativo, você perceberá que muitos desafios técnicos têm origem muito antes do código ser escrito.

Às vezes o problema não está no COBOL, no CICS ou no Db2.

Está no fato de que:

  • as equipes não compartilham conhecimento;

  • cada área cria suas próprias definições;

  • os requisitos chegam incompletos;

  • não existe uma linguagem comum entre negócio e tecnologia.

Por isso, desenvolva não apenas habilidades técnicas.

Aprenda também a:

  • comunicar-se claramente;

  • participar de revisões arquiteturais;

  • documentar decisões;

  • compreender o domínio de negócio;

  • construir pontes entre equipes.

Grandes arquitetos de software são, antes de tudo, excelentes comunicadores.


Curiosidades

A influência da Lei de Conway é tão grande que ela aparece indiretamente em diversos movimentos modernos:

  • Domain-Driven Design (DDD) incentiva equipes alinhadas aos domínios de negócio.

  • Team Topologies propõe estruturas organizacionais que favorecem fluxos de software saudáveis.

  • Microservices funcionam melhor quando as equipes possuem autonomia compatível com os serviços que mantêm.

  • DevOps surgiu justamente para reduzir barreiras entre desenvolvimento e operações.

Todos esses movimentos reconhecem, de alguma forma, a observação feita por Melvin Conway em 1967.


Conclusão — A Matrix Refletia Quem a Construía

No universo Matrix, Neo descobriu que a simulação não era apenas um conjunto de programas.

Ela refletia as decisões, os conflitos e a forma como seus criadores trabalhavam.

Na Engenharia de Software acontece exatamente o mesmo.

A Lei de Conway nos lembra que sistemas não são produzidos apenas por compiladores ou linguagens de programação.

Eles são produzidos por pessoas.

Se as equipes colaboram, o software tende a ser integrado.

Se as equipes vivem isoladas, o software também se fragmenta.

Para um Programador COBOL que atua em ambientes IBM Z, essa é uma lição valiosa. O sucesso de um sistema bancário depende tanto da qualidade do código quanto da qualidade da comunicação entre analistas de negócio, arquitetos, desenvolvedores, DBAs, administradores CICS, especialistas em segurança e operações.

No universo Bellacosa Mainframe existe uma máxima que certamente poderia estar gravada na entrada de Zion:

"Antes de desenhar a arquitetura do software, observe a arquitetura da empresa. Muito provavelmente uma será o reflexo da outra."

Porque, no fim, a Matrix nunca foi apenas feita de linhas de código.

Ela sempre foi feita das pessoas que aprenderam — ou deixaram de aprender — a trabalhar juntas.