Translate

Mostrar mensagens com a etiqueta gestão de projetos. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta gestão de projetos. Mostrar todas as mensagens

sábado, 18 de julho de 2026

⚽A Copa do Mundo Explica Melhor a Engenharia de Software do que Muitos Livros

 

Bellacosa Mainframe e os ensinamentos da Copa para a gestão de projetos

☕ Um Café no Bellacosa Mainframe: 

⚽A Copa do Mundo Explica Melhor a Engenharia de Software do que Muitos Livros



O Mainframe e a Copa do Mundo

Imagine por um instante.

Uma empresa possui um ambiente IBM Z responsável por bilhões de reais em transações.

Durante quatro anos toda a equipe trabalha.

Desenvolvem sistemas.
Corrigem defeitos.
Treinam.
Criam processos.
Modernizam aplicações.

Então chega um único dia.

O Black Friday.
O fechamento anual.
A migração crítica.
O IPL planejado.
A auditoria internacional.

O dia de pagamento dos velhinhos aposentados.

É exatamente isso que a Copa representa.

Quatro anos de preparação para poucas partidas onde o mundo inteiro está assistindo.

No futebol existe a Copa.

No mainframe existem os grandes projetos.


1. A convocação

Nem todo jogador vai para a Copa.

Nem todo programador participa dos projetos estratégicos.

Ser escolhido significa que alguém acredita que você suporta pressão.

Isso muda completamente a carreira.

No futebol:

"Convocado para a Seleção Brasileira."

No mainframe:

"Ele vai liderar a migração para o COBOL 6.5."

Ou

"Ele ficará responsável pelo projeto PIX."

Ou

"Ele participará do Disaster Recovery."

Esses projetos ficam para sempre no currículo.


2. A camisa pesa

Existe uma frase famosa:

"A camisa pesa."

Vestir a camisa da Seleção Brasileira significa carregar décadas de história.

Vestir a camisa de um grande banco também.

Quando alguém trabalha em um grande banco, seguradora ou governo, ele representa muito mais do que seu próprio trabalho.

Ele representa:

  • confiança

  • estabilidade

  • disponibilidade

  • bilhões de transações

Existe responsabilidade.


3. A vitrine mundial

Na Copa todos estão olhando.

Na produção acontece exatamente igual.

Enquanto o sistema funciona...

ninguém percebe.

Quando ele para...

jornais noticiam.

Clientes reclamam.

Executivos aparecem.

Auditores chegam.

Assim como um atacante pode decidir uma Copa em um único chute, um desenvolvedor pode decidir um projeto inteiro com uma única alteração.


4. O desempenho muda uma carreira

Após uma boa Copa.

Um jogador pode:

  • triplicar salário

  • mudar para um grande clube

  • tornar-se ídolo

  • receber patrocínios

  • crianças sendo batizadas com o nome do craque

Depois de um grande projeto ocorre o mesmo.

Quem resolve incidentes críticos normalmente passa a ser lembrado.

Não apenas pelo gerente.

Mas por outras áreas.

Outras empresas.

Consultorias.

Clientes.

Grandes carreiras costumam nascer em grandes desafios.


5. O fracasso também fica registrado

Infelizmente também acontece o contrário.

Um erro em uma final permanece por décadas.

O mesmo acontece na TI.

Existe uma enorme diferença entre:

"Cometeu um erro."

e

"Escondeu o erro."

Profissionais maduros assumem responsabilidade.

Aprendem.

Melhoram.


6. O ego destrói equipes

Talvez seja uma das maiores lições.

Alguns atletas tornam-se milionários muito cedo.

Passam a acreditar que são maiores que:

  • treinador

  • comissão técnica

  • grupo

  • disciplina

Na tecnologia isso também existe.

O desenvolvedor que acredita saber tudo.

Que não aceita revisão.

Que ignora padrões.

Que despreza documentação.

Que não participa das cerimônias.

Que não ajuda iniciantes.

Esse profissional pode ser tecnicamente excelente.

Mas prejudica a equipe.


7. Talento não vence sozinho

A história da Copa mostra isso diversas vezes.

Times repletos de estrelas já foram eliminados cedo.

Enquanto equipes organizadas chegaram muito longe.

No desenvolvimento acontece igual.

Uma equipe composta por profissionais "nota 8" que colaboram normalmente supera uma equipe formada por "gênios" que trabalham isoladamente.


8. O técnico existe por um motivo

O treinador enxerga o campo inteiro.

O jogador vê apenas sua posição.

O arquiteto de software faz exatamente isso.

O gerente técnico também.

O Tech Lead também.

Às vezes uma decisão parece ruim para um desenvolvedor.

Mas excelente para o projeto inteiro.

Quem vê somente uma classe Java ou um programa COBOL não enxerga toda a arquitetura.


9. O empresário não deveria escalar o time

Você citou um ponto delicado.

Quando interesses externos influenciam decisões técnicas...

o projeto sofre.

No futebol:

patrocínio

marketing

pressão política

Na TI:

  • tecnologia da moda

  • fornecedor pressionando

  • gerente querendo atalhos

  • decisões baseadas em ego

Boas arquiteturas são escolhidas porque resolvem problemas.

Não porque estão na moda.


10. A estrela depende do time

Messi.

Maradona.

Pelé.

Zidane.

Nenhum ganhou sozinho.

Mesmo os maiores precisavam de:

  • goleiro

  • zagueiros

  • laterais

  • meio-campo

No mainframe:

o melhor programador depende de:

  • operadores

  • DBA

  • Sysprog

  • segurança

  • redes

  • storage

  • analistas

  • testes

  • negócio

Sem eles nada funciona.


11. O elo mais fraco determina a corrente

Talvez seja sua melhor analogia.

Em engenharia existe um conceito parecido.

A disponibilidade de um sistema costuma ser limitada pelo componente menos confiável.

Em equipes ocorre o mesmo.

Imagine cinco profissionais.

Um domina COBOL.

Outro Db2.

Outro CICS.

Outro MQ.

Outro começou há três meses.

O erro seria dizer:

"Ele que se vire."

O correto é:

"Vamos treiná-lo."

Porque no dia da implantação...

se ele falhar...

todos falham.


12. Mentoria é investimento

Grandes seleções possuem veteranos.

Eles ensinam.

Orientam.

Protegem os jovens.

No mainframe isso é ouro.

O profissional sênior não perde tempo ensinando.

Ele reduz futuros incidentes.

Cada hora investida em treinamento economiza dezenas de horas em produção.


13. O banco de reservas importa

Na Copa existem reservas.

No mainframe também deveria existir.

Se apenas uma pessoa conhece determinado sistema...

o risco é enorme.

Chamamos isso de fator ônibus (Bus Factor):

Quantas pessoas poderiam deixar a equipe antes que o projeto ficasse comprometido?

Quanto menor esse número, maior o risco operacional.


14. O treino invisível vence o jogo

O torcedor vê apenas noventa minutos.

Não vê:

  • preparação física

  • alimentação

  • fisioterapia

  • análise de vídeos

  • treinos táticos

No desenvolvimento acontece igual.

O cliente vê apenas:

"O sistema funcionou."

Mas por trás existiram:

  • testes

  • code review

  • documentação

  • planejamento

  • homologação

  • automação

  • monitoramento

  • rollback

  • backups

O sucesso quase sempre nasce do trabalho invisível.


15. O verdadeiro campeão faz o companheiro jogar melhor

Existe uma diferença enorme entre:

um craque

e

um líder.

O craque resolve jogadas.

O líder melhora o time inteiro.

No desenvolvimento isso é ainda mais importante.

O melhor profissional não é necessariamente aquele que escreve o código mais complexo.

É aquele que faz todos ao redor crescerem.

Que compartilha conhecimento.

Que revisa código com respeito.

Que documenta.

Que orienta.

Que inspira confiança.


A maior lição para um Programador COBOL Padawan

No universo do mainframe, não existem Copas do Mundo anuais. Existem projetos que, pela sua criticidade e visibilidade, equivalem a uma final diante de bilhões de "torcedores": uma migração de versão do COBOL, a implantação de um novo sistema de pagamentos, um Disaster Recovery ou a abertura de um grande banco em um dia de pico.

Quando esse momento chega, ninguém se lembra apenas de quem escreveu o algoritmo mais sofisticado. Lembram-se da equipe que entregou estabilidade, confiabilidade e colaboração.

Assim como no futebol, o talento individual chama atenção, mas são a disciplina, o treinamento constante, a humildade para aprender, o respeito às decisões coletivas e a disposição para fortalecer o colega com mais dificuldade que transformam um grupo de bons profissionais em um time campeão.

No fim das contas, um mainframe em produção e uma seleção em campo compartilham o mesmo princípio: o objetivo não é que um integrante brilhe sozinho, mas que o sistema inteiro — ou o time inteiro — funcione de forma harmoniosa até alcançar a vitória. É essa mentalidade que diferencia um bom programador de um verdadeiro profissional preparado para os maiores desafios da carreira.


sexta-feira, 17 de dezembro de 2021

As 20 Leis Secretas da Matrix da Engenharia de Software (Bizarres Rules)

 

Bellacosa Mainframe e as 20 leis secretas da Engenharia do Software

☕ Um Café no Bellacosa Mainframe

As 20 Leis Secretas da Matrix da Engenharia de Software - Bizarres Rules

O Guia do Programador COBOL Padawan para Sobreviver ao Universo dos Sistemas Legados Sem Ser Absorvido pelo Agente Smith

"Existem duas maneiras de aprender Engenharia de Software. A primeira é passando vinte anos corrigindo bugs em produção. A segunda é ouvindo aqueles que já passaram por isso. Este artigo tenta economizar duas décadas da sua vida."


Bem-vindo à Matrix, Padawan

Imagine a seguinte cena.

Você acabou de conseguir seu primeiro emprego como Programador COBOL.

Recebe acesso ao ambiente.

TSO.

ISPF.

CICS.

Db2.

JCL.

Tudo parece misterioso.

Então seu líder aponta para um programa com 180 mil linhas de código.

Ele sorri.

— Pequena manutenção.

Você abre o código.

O ventilador do computador começa a girar mais rápido.

Sua expressão muda.

Você pergunta:

— Quem escreveu isso?

A resposta vem imediatamente.

— Ninguém sabe.

Naquele instante o telefone toca.

É Morpheus.

— Neo... digo... Padawan...

Bem-vindo à Matrix da Engenharia de Software.


Existe um lado oculto da programação

Quando começamos a estudar programação, aprendemos:

  • IF

  • PERFORM

  • LOOP

  • SQL

  • APIs

  • Arquivos

  • Variáveis

Mas ninguém ensina algo muito mais importante.

Os padrões invisíveis.

Os comportamentos humanos.

Os erros que se repetem geração após geração.

As armadilhas psicológicas.

As decisões arquiteturais.

Essas "leis" não pertencem ao COBOL.

Nem ao Java.

Nem ao Python.

Elas pertencem à natureza humana.

E é justamente por isso que continuam válidas há décadas.


A Matrix é feita de padrões

No filme Matrix, Neo acredita que tudo acontece por acaso.

Depois descobre que existem regras invisíveis governando aquele universo.

Na Engenharia de Software acontece exatamente a mesma coisa.

Você acha que aquele sistema virou um caos "do nada".

Não virou.

Ele seguiu um padrão.

Sempre segue.


O Oráculo chama isso de experiência

Imagine o Oráculo olhando para um jovem desenvolvedor.

Ela não pergunta:

— Você sabe COBOL?

Ela pergunta:

— Quantas vezes você já viu um sistema quebrar exatamente da mesma forma?

Porque experiência não é decorar comandos.

É reconhecer padrões.


Conheça as 20 Leis Secretas da Matrix da Engenharia de Software

Cada uma delas parece engraçada.

Algumas possuem nomes estranhos.

Outras parecem piadas.

Mas todas escondem décadas de aprendizado acumulado.

Vamos atravessar esse espelho.


1 — Bus Factor

"E se o único que entende o sistema for atropelado por um ônibus?"

Essa lei nos lembra que conhecimento concentrado é um enorme risco.

Se apenas uma pessoa entende o sistema...

...o sistema pertence a ela.

Não à empresa.

O verdadeiro Jedi documenta.

Compartilha.

Ensina.

https://eljefemidnightlunch.blogspot.com/2020/05/o-fator-onibus-o-dia-em-que-um.html


2 — Technical Debt

Toda gambiarra possui juros.

Às vezes ela resolve o problema hoje.

Mas cobra muito mais amanhã.

Como diria o Oráculo:

"A dívida técnica nunca esquece seu endereço."

https://eljefemidnightlunch.blogspot.com/2021/10/technical-debt-rules-quando-um.html 


3 — Yak Shaving

Você abriu um chamado simples.

Cinco horas depois.

Está configurando Docker.

Atualizando certificado.

Mudando firewall.

Lendo RFC.

Esqueceu completamente o problema inicial.

Parabéns.

Você encontrou um Yak.

https://eljefemidnightlunch.blogspot.com/2021/09/yak-shaving-rules-quando-um-programador.html


4 — Bike Shedding

Reunião de duas horas.

Noventa minutos discutindo a cor do botão.

Cinco minutos falando da arquitetura.

O Agente Smith adora reuniões assim.

https://eljefemidnightlunch.blogspot.com/2021/08/bike-shedding-rules-quando-um.html


5 — Golden Hammer

Quando tudo parece prego...

...qualquer ferramenta vira martelo.

O Padawan aprende Java.

Quer resolver tudo com Java.

Aprende IA.

Agora tudo precisa de IA.

Aprende Kubernetes.

Até o bloco de notas vira microsserviço.

Calma.

Nem toda batalha precisa da Nebuchadnezzar.

https://eljefemidnightlunch.blogspot.com/2021/07/golden-hammer-rules-quando-um.html


6 — Cargo Cult Programming

CTRL+C.

CTRL+V.

Funcionou.

Mas...

Você sabe por quê?

Se não sabe.

Talvez esteja apenas repetindo um ritual.

Não programação.

https://eljefemidnightlunch.blogspot.com/2021/05/spaghetti-code-rules-quando-um.html


7 — Spaghetti Code

IF dentro de IF.

GO TO.

PERFORM.

Mais GO TO.

Mais IF.

O código parece um prato de macarrão.

Delicioso no almoço.

Horrível na manutenção.

https://eljefemidnightlunch.blogspot.com/2021/05/spaghetti-code-rules-quando-um.html


8 — Lasagna Code

Agora temos o problema contrário.

Camadas.

Mais camadas.

Mais camadas.

Mais uma camada.

No final.

Um IF precisa atravessar sete microsserviços para mudar um campo.

https://eljefemidnightlunch.blogspot.com/2021/03/lasagna-code-rules-quando-um.html


9 — Big Ball of Mud

É aquele sistema onde ninguém sabe explicar a arquitetura.

Funciona?

Funciona.

Como?

Boa pergunta.

https://eljefemidnightlunch.blogspot.com/2021/01/big-ball-of-mud-rules-quando-um.html


10 — God Object

Existe um programa chamado:

CLIENTE01.

Ele faz:

  • cadastro;

  • cobrança;

  • PIX;

  • cartão;

  • empréstimo;

  • café;

  • provavelmente também controla o clima.

Esse programa acredita ser o Escolhido.

Não é.

https://eljefemidnightlunch.blogspot.com/2020/11/god-object-rules-quando-um-programador.html


11 — Lava Flow

Código escrito em 1994.

Ninguém sabe para que serve.

Mas ninguém remove.

Vai que explode.

Então permanece.

Como lava endurecida.

https://eljefemidnightlunch.blogspot.com/2020/12/lava-flow-rules-quando-um-programador.html


12 — Boiling Frog

O sistema não piora de um dia para outro.

Vai ficando lentamente mais lento.

Mais complicado.

Mais difícil.

Quando percebemos.

Já estamos mergulhados na água fervendo.

https://eljefemidnightlunch.blogspot.com/2021/11/boiling-frog-rules-quando-um.html


13 — Death March

Prazo impossível.

Equipe pequena.

Escopo gigante.

Cliente ansioso.

Café infinito.

Dormir virou luxo.

Esse projeto nunca deveria ter começado assim.

https://eljefemidnightlunch.blogspot.com/2021/02/death-march-project-rules-quando-um.html


14 — Brooks's Law

O projeto está atrasado.

A solução?

Contratar vinte pessoas.

Resultado?

Agora existem vinte pessoas tentando entender o sistema.

E o atraso aumenta.

https://eljefemidnightlunch.blogspot.com/2020/09/brookss-law-rules-quando-um-programador.html


15 — Conway's Law

As equipes desenham software exatamente como se comunicam.

Se departamentos não conversam.

Os sistemas também não conversarão.

https://eljefemidnightlunch.blogspot.com/2020/08/conways-law-rules-quando-um-programador.html


16 — Murphy's Law

Tudo que pode falhar...

Vai falhar.

Especialmente sexta-feira.

Às 18h.

Cinco minutos antes da implantação.

Por isso existem testes.

https://eljefemidnightlunch.blogspot.com/2020/01/murphys-law-quando-um-programador-cobol.html


17 — KISS

Se ficou complicado demais...

Provavelmente existe uma solução mais simples.

Os melhores sistemas normalmente parecem óbvios.

Depois de prontos.

https://eljefemidnightlunch.blogspot.com/2020/02/kiss-rules-quando-um-programador-cobol.html


18 — YAGNI

"Vai que um dia precisamos..."

Essa frase já criou milhões de linhas de código inútil.

Implemente quando realmente precisar.

https://eljefemidnightlunch.blogspot.com/2020/07/yagni-rules-quando-um-programador-cobol.html


19 — DRY

Copiou.

Colou.

Copiou novamente.

Agora o bug existe em dezoito lugares diferentes.

Parabéns.

Você criou um exército de Agentes Smith.

https://eljefemidnightlunch.blogspot.com/2020/06/dry-rules-quando-um-programador-cobol.html


20 — SOLID

Os cinco pilares.

O alicerce.

A estrutura.

A arquitetura.

Sem eles.

O software continua funcionando.

Por algum tempo.

Depois...

A Matrix desaba.

https://eljefemidnightlunch.blogspot.com/2020/04/solid-roules-quando-um-programador.html


21 — Boy Scout Rule

Sim.

Ela veio depois.

Porque nenhum sistema melhora sozinho.

Toda vez que tocar em um programa.

Deixe-o um pouco melhor.

Nem que seja apenas renomeando uma variável.

https://eljefemidnightlunch.blogspot.com/2020/03/boy-scout-rule-quando-um-programador.html


O verdadeiro inimigo nunca foi a tecnologia

Perceba algo curioso.

Nenhuma dessas leis fala de:

COBOL.

Java.

Python.

Rust.

Go.

Todas falam sobre pessoas.

Porque software é uma atividade humana.


O Agente Smith mora dentro da nossa cabeça

Smith aparece quando pensamos:

  • "Depois eu arrumo."

  • "Só desta vez."

  • "Ninguém vai perceber."

  • "Pode copiar."

  • "Não precisa documentar."

  • "Vai funcionar."

É exatamente assim que grandes sistemas envelhecem.


Neo nunca venceu sozinho

Observe Matrix novamente.

Neo nunca salvou o mundo sozinho.

Precisou de:

  • Morpheus;

  • Trinity;

  • Oráculo;

  • Link;

  • Tank;

  • Niobe;

  • Sati;

  • Chaveiro.

Grandes sistemas também são construídos por equipes.


E onde entra o COBOL?

Em todos os lugares.

Os sistemas COBOL que movimentam bancos, seguradoras, bolsas de valores e governos não sobreviveram cinquenta anos porque alguém escreveu um código perfeito.

Eles sobreviveram porque milhares de engenheiros aplicaram — muitas vezes sem conhecer os nomes — esses princípios ao longo das décadas:

  • simplificaram;

  • documentaram;

  • removeram duplicações;

  • dividiram responsabilidades;

  • testaram;

  • compartilharam conhecimento;

  • fizeram pequenas melhorias contínuas.

É por isso que um programa COBOL de 1988 ainda pode estar processando milhões de transações diariamente.


O Convite do Oráculo

No final da jornada, o Oráculo entrega a Neo um pequeno caderno.

Na capa está escrito:

"As Leis Secretas da Engenharia de Software."

Neo pergunta:

— Depois que eu decorar todas elas, finalmente serei um grande programador?

Ela sorri.

— Não.

— Então para que servem?

Ela responde:

"Porque agora, quando encontrar um problema, você saberá dar um nome ao monstro. E quando um monstro tem nome, ele deixa de parecer invencível."


Continue Explorando a Matrix

Se este artigo despertou sua curiosidade, esta é apenas a porta de entrada.

Cada uma dessas vinte (e uma) regras esconde uma história fascinante, repleta de exemplos reais, armadilhas clássicas, curiosidades históricas e lições que moldaram a engenharia de software moderna.

Nos próximos artigos da série ☕ Um Café no Bellacosa Mainframe, vamos mergulhar em cada uma delas com profundidade, sempre sob a ótica de um Programador COBOL Padawan explorando os corredores da Matrix.

Você descobrirá por que projetos fracassam, como sistemas sobrevivem por décadas, o que diferencia arquiteturas elegantes de verdadeiros labirintos de código e, principalmente, como transformar conhecimento técnico em sabedoria prática.

A cada regra desvendada, você enxergará um pouco mais do código verde da Matrix.


Conclusão — A Matrix Sempre Esteve na Engenharia de Software

No primeiro filme, Morpheus diz a Neo que a Matrix está em toda parte.

Na Engenharia de Software acontece exatamente o mesmo.

Essas leis aparecem:

  • em pequenos scripts;

  • em APIs modernas;

  • em aplicações mobile;

  • em microsserviços;

  • em sistemas bancários;

  • em programas COBOL escritos há quarenta anos;

  • e até nas respostas geradas por Inteligências Artificiais.

Elas não são modismos.

São observações acumuladas por milhares de engenheiros que erraram, aprenderam, compartilharam e deixaram um mapa para quem veio depois.

Talvez você ainda não tenha encontrado todas essas situações.

Mas, acredite, se continuar programando, elas encontrarão você.

A boa notícia é que, agora, você já conhece seus nomes.

E isso faz toda a diferença.

No universo Bellacosa Mainframe, existe uma última frase escrita na parede da sala do Arquiteto:

"Todo Padawan começa aprendendo comandos. Todo Mestre termina reconhecendo padrões. Porque linguagens mudam, tecnologias envelhecem e frameworks desaparecem, mas as leis da Engenharia de Software continuam governando a Matrix muito depois que o último deploy termina."

Então pegue seu café.

Abra seu editor COBOL.

E venha explorar essas estranhas, divertidas e surpreendentemente verdadeiras regras da Engenharia de Software.

A Matrix está esperando por você.


terça-feira, 23 de novembro de 2021

Boiling Frog Rules : Quando um Programador COBOL Descobriu que a Matrix Não Caiu de Uma Vez… Ela Foi Esquentando Até Ninguém Perceber o Colapso

 

Bellacosa Mainframe e a boiling frog rules

☕ Um Café no Bellacosa Mainframe

Boiling Frog Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Não Caiu de Uma Vez… Ela Foi Esquentando Até Ninguém Perceber o Colapso

"Nenhum grande sistema entra em colapso de um dia para o outro. Primeiro surgem pequenos avisos. Depois pequenas exceções. Depois pequenos atrasos. Quando todos percebem, o caos já virou rotina."


Prólogo — A Temperatura Invisível da Matrix

Neo caminhava pela sala principal da Nebuchadnezzar quando percebeu algo estranho.

Os monitores mostravam pequenos alertas.

Nada grave.

Um deles dizia:

Tempo médio de resposta: +3 ms

Outro:

CPU: +1%

Outro:

Fila MQ: +5 mensagens

Outro:

Job Batch: +12 segundos

Neo perguntou a Morpheus:

— Devemos nos preocupar?

Morpheus respondeu:

— Ainda não.

No dia seguinte.

Mais alguns milissegundos.

Mais alguns avisos.

Mais algumas exceções.

Depois de alguns meses...

CPU em 98%.

Filas gigantes.

ABENDs.

Clientes reclamando.

Jobs invadindo a manhã.

PIX atrasando.

Neo ficou espantado.

— Como chegamos até aqui?

O Oráculo apareceu segurando uma panela com água.

Ela sorriu.

— A Matrix não explodiu.

Ela apenas foi ficando quente.

Bem-vindo ao Boiling Frog.


O que é Boiling Frog?

Boiling Frog (A Rã Fervida) é um antipadrão de gestão e engenharia de software que descreve situações em que pequenos problemas vão se acumulando lentamente até que o sistema inteiro entre em crise.

Nenhuma mudança isoladamente parece perigosa.

Mas a soma delas transforma um sistema saudável em um ambiente caótico.

É um dos fenômenos mais comuns em projetos de longa duração.


A origem da metáfora

A metáfora da "rã fervida" ficou famosa por afirmar que, se uma rã fosse colocada em água fria aquecida lentamente, ela não perceberia o perigo e acabaria morrendo.

Do ponto de vista biológico, essa história não é considerada correta como descrição do comportamento real de uma rã.

Mesmo assim, a metáfora tornou-se extremamente popular em administração, psicologia e engenharia para ilustrar como mudanças graduais podem passar despercebidas até que seja tarde demais.

Na Engenharia de Software, ela representa a normalização da degradação.


Matrix explica perfeitamente

Quando assistimos ao primeiro Matrix, acreditamos que a simulação é perfeita.

Depois percebemos pequenas falhas.

Um déjà vu.

Um gato repetido.

Um bug.

Depois descobrimos:

  • programas fugitivos;

  • agentes descontrolados;

  • Smith multiplicando-se;

  • máquinas fora do previsto.

Nada aconteceu de uma vez.

A Matrix deteriorou-se lentamente.


Como nasce o Boiling Frog?

Quase nunca existe um grande erro.

Existem centenas de pequenos.

Hoje:

"Vamos aceitar esse IF."

Amanhã:

"Depois refatoramos."

Semana seguinte:

"Esse warning pode esperar."

Mês seguinte:

"Essa documentação fazemos depois."

Ano seguinte:

"Esse batch já está demorando, mas funciona."

Cinco anos depois.

O sistema virou um campo minado.


O COBOL conhece muito bem esse cenário

Imagine um sistema bancário.

Tempo do fechamento diário:

20 minutos.

25 minutos.

40 minutos.

1 hora.

2 horas.

O batch termina às 10h da manhã.

Ninguém lembra quando começou o problema.

Porque ele nunca chegou de repente.


Um exemplo COBOL

Primeira alteração.

IF WS-TIPO = "A"

Depois.

IF WS-TIPO = "A"
   OR WS-TIPO = "B"

Depois.

OR WS-TIPO = "C"

Depois.

OR WS-TIPO = "D"

Depois.

Mais quinze exceções.

O código continua compilando.

Mas sua legibilidade desaparece.


Matrix Reloaded

Neo conversa com o Arquiteto.

O Arquiteto revela que houve diversas versões anteriores da Matrix.

Cada versão acumulou pequenas adaptações.

Nenhuma parecia crítica.

Mas, juntas, tornaram inevitável a criação de uma nova versão.

Essa é exatamente a lógica do Boiling Frog.


O efeito psicológico

Existe um fenômeno conhecido como normalização do desvio.

Quando um pequeno problema ocorre repetidamente e não provoca um desastre imediato, ele passa a ser tratado como normal.

Frases típicas:

  • "Sempre foi assim."

  • "Nunca deu problema."

  • "Depois a gente resolve."

  • "É só reiniciar."

Essas frases são sinais de alerta.


O Programador COBOL Padawan

Imagine seu primeiro dia.

Você pergunta:

— Por que esse job sempre termina com warning?

Resposta.

— Ah...

ele sempre termina assim.

Outra pergunta.

— E por que o CICS reinicia toda terça?

Resposta.

— Sempre foi assim.

Esse "sempre" merece investigação.


O Agente Smith adora isso

Smith não precisa destruir a Matrix.

Basta convencer todos de que pequenos problemas são aceitáveis.

Cada pequena degradação reduz a capacidade de reação da equipe.

Quando finalmente ocorre o incidente crítico...

já não existe margem para recuperação simples.


Um exemplo inspirado na Matrix

Neo percebe uma rachadura na parede.

Pequena.

No dia seguinte.

Outra.

Depois outra.

Os moradores de Zion dizem:

— Não é nada.

Meses depois.

A muralha desaba.

Nenhuma rachadura individual causou o desastre.

Foi o conjunto.


Como reconhecer?

Alguns sintomas são muito comuns.

Warnings ignorados

Todos convivem com eles.


Performance caindo lentamente

Cada mês um pouco pior.


Débito técnico crescente

Sem plano de redução.


Incidentes recorrentes

Mesma causa.


Logs enormes

Ninguém mais analisa.


Monitoramento cheio de alertas

Mas todos já se acostumaram.


O custo invisível

O sistema continua funcionando.

Mas exige:

  • mais CPU;

  • mais memória;

  • mais operadores;

  • mais horas extras;

  • mais especialistas.

A produtividade cai sem que ninguém perceba exatamente quando começou.


O impacto no Mainframe

No IBM Z, pequenos desvios podem aparecer como:

  • aumento gradual do consumo de MIPS;

  • crescimento das filas CICS;

  • aumento do tempo de resposta do Db2;

  • expansão de datasets;

  • jobs batch ultrapassando a janela noturna;

  • crescimento do volume de SMF.

Nenhum deles isoladamente significa desastre.

Juntos, indicam que a temperatura está aumentando.


Atenção!

Boiling Frog não significa que toda pequena mudança seja ruim.

Mudanças graduais são naturais.

O problema é quando elas deixam de ser medidas.


A diferença

Evolução controlada

Mudanças acompanhadas por métricas.


Boiling Frog

Mudanças acumuladas sem acompanhamento.


Curiosidade

Grandes acidentes industriais e tecnológicos frequentemente foram precedidos por pequenos sinais ignorados durante anos.

Na Engenharia de Software acontece o mesmo.

Os grandes incidentes raramente surgem sem avisos.


Ferramentas ajudam

Hoje temos recursos que reduzem esse risco.

No ecossistema IBM:

  • RMF;

  • SMF;

  • OMEGAMON;

  • IBM Instana;

  • IBM Z IntelliMagic;

  • Grafana;

  • Prometheus.

Essas ferramentas mostram tendências.

O importante não é apenas observar o valor atual.

É perceber sua evolução ao longo do tempo.


Como evitar?

Monitore tendências

Não apenas incidentes.


Faça revisões técnicas periódicas

Arquitetura também envelhece.


Reserve tempo para refatoração

Ela faz parte do projeto.


Elimine pequenos problemas rapidamente

Não espere acumularem.


Defina indicadores

CPU.

Tempo de resposta.

Complexidade.

Cobertura de testes.

Débito técnico.


Questione o "sempre foi assim"

Essa frase merece investigação.


Matrix e o Código Verde

Quando Neo finalmente enxerga a Matrix como código, ele percebe padrões invisíveis.

Engenharia moderna também.

As métricas revelam problemas antes que eles se transformem em crises.

Quem observa apenas o resultado final já chegou tarde.


O papel da IA

A Inteligência Artificial pode identificar tendências difíceis de perceber manualmente.

Ela pode:

  • detectar crescimento anormal de consumo;

  • prever degradação de performance;

  • sugerir áreas com maior dívida técnica;

  • identificar módulos que recebem alterações excessivas.

Mas a decisão de agir continua sendo humana.


Os riscos

Incidentes inesperados

Na verdade, eram esperados.


Custos crescentes

Infraestrutura aumenta.


Burnout

A equipe vive apagando incêndios.


Baixa inovação

Todo tempo é gasto com manutenção.


Perda de confiança

Clientes percebem lentidão.


Modernização mais cara

Quanto mais se espera, maior o esforço.


Erros clássicos

  • Ignorar pequenos warnings.

  • Adiar refatorações indefinidamente.

  • Não acompanhar indicadores.

  • Aceitar degradação como normal.

  • Tratar sintomas, nunca as causas.


Boas práticas

  • Cultura de melhoria contínua.

  • Observabilidade.

  • Métricas objetivas.

  • Revisões arquiteturais.

  • Testes automatizados.

  • Planejamento de redução da dívida técnica.

  • Compartilhamento de conhecimento.


O ensinamento do Oráculo

O Oráculo coloca uma panela sobre o fogo.

A água aquece lentamente.

Ela pergunta a Neo:

— Quando começou o problema?

Neo observa.

Não consegue responder.

Ela então diz:

"Os maiores desastres raramente começam com explosões. Eles começam com pequenos sinais que ninguém considera importantes."


Aplicabilidade

O Boiling Frog aparece em qualquer ambiente:

  • COBOL;

  • Java;

  • C#;

  • Python;

  • microsserviços;

  • APIs;

  • Kubernetes;

  • sistemas embarcados;

  • plataformas em nuvem;

  • DevOps.

Sempre que pequenas degradações deixam de ser tratadas, o risco cresce.


Lições para um Programador COBOL Padawan

Durante sua carreira, você ouvirá muitas frases como:

  • "Depois a gente otimiza."

  • "Esse warning é normal."

  • "Só mais um IF."

  • "É só mais uma exceção."

Nenhuma dessas decisões isoladamente destruirá um sistema.

Mas centenas delas, ao longo dos anos, podem transformar uma aplicação sólida em um ambiente extremamente caro, lento e difícil de evoluir.

Aprenda a valorizar pequenas correções.

Elas são muito mais baratas do que grandes reconstruções.


Conclusão — A Matrix Não Quebrou de Uma Vez

No universo Matrix, o colapso nunca aconteceu em um único instante. Pequenas anomalias foram se acumulando até que a própria simulação precisou ser reiniciada.

Na Engenharia de Software acontece exatamente o mesmo.

O antipadrão Boiling Frog ensina que o verdadeiro inimigo não é apenas o grande erro.

São os pequenos problemas aceitos diariamente.

Um warning ignorado.

Uma exceção temporária.

Uma rotina nunca otimizada.

Uma documentação adiada.

Um teste que "fica para depois".

Separadamente parecem inofensivos.

Juntos, transformam sistemas robustos em ambientes frágeis.

Para um Programador COBOL, especialmente no universo IBM Z, a maior habilidade não é apagar incêndios heroicamente.

É perceber quando a temperatura começou a subir.

No universo Bellacosa Mainframe existe uma máxima que Morpheus certamente repetiria aos novos Padawans:

"O caos raramente chega correndo. Ele costuma entrar silenciosamente, um pequeno problema de cada vez."

E aqueles que aprendem a enxergar esses pequenos sinais, assim como Neo passou a enxergar o código verde da Matrix, conseguem preservar sistemas por décadas sem permitir que a água chegue ao ponto de ebulição.


sábado, 25 de setembro de 2021

Yak Shaving Rules: Quando um Programador COBOL Entrou na Matrix para Corrigir um Bug... e Quase Reinventou Todo o Sistema

 

Bellacosa Mainframe e a yak shaving rules

☕ Um Café no Bellacosa Mainframe

Yak Shaving Rules sem Mistérios

Quando um Programador COBOL Entrou na Matrix para Corrigir um Bug... e Quase Reinventou Todo o Sistema

"Você entrou na Matrix para resolver um problema. Mas antes decidiu atualizar o compilador, reorganizar os COPYBOOKs, trocar o editor, renomear variáveis, revisar o JCL... e esqueceu qual era o problema."


Introdução — Bem-vindo ao Labirinto da Matrix

A chuva verde de caracteres desce lentamente pelas telas.

Neo observa uma pequena mensagem piscando em vermelho.

ABEND S0C7

— Morpheus, encontramos o problema?

Morpheus responde calmamente:

— Ainda não.

Neo estranha.

— Mas acabamos de passar oito horas trabalhando.

Morpheus sorri.

— Sim.

Você atualizou o ambiente.

Padronizou os comentários.

Organizou as bibliotecas.

Criou um novo padrão de nomenclatura.

Instalou uma versão mais nova do editor.

Revisou o JCL.

Atualizou o Git.

Refatorou um programa que nem estava relacionado.

Criou documentação.

Mudou o tema do ISPF.

...

Mas o ABEND continua acontecendo.

Neo olha assustado.

— Então o que aconteceu?

O Oráculo responde:

"Você começou a aparar um iaque."

Assim nasce um dos conceitos mais curiosos da Engenharia de Software.

O famoso Yak Shaving.

Ele parece engraçado.

Mas custa milhões de dólares por ano em produtividade desperdiçada.


O que é Yak Shaving?

Yak Shaving significa:

Executar uma longa sequência de tarefas secundárias antes de finalmente resolver o problema original.

Você começa tentando resolver um problema simples.

No caminho encontra outro.

Depois outro.

Depois outro.

Quando percebe...

esqueceu completamente o motivo inicial.


Uma definição divertida

Imagine que alguém diga:

"Preciso cortar o cabelo."

Mas para cortar o cabelo precisa:

  • pegar o carro

  • abastecer

  • trocar o óleo

  • lavar o carro

  • calibrar pneus

  • renovar o seguro

  • comprar um GPS novo

  • instalar aplicativo

  • atualizar o celular

No final do dia...

o cabelo continua igual.

Isso é Yak Shaving.


A origem do termo

O nome surgiu na década de 1990.

Foi popularizado por Carlin Vieri e posteriormente difundido por MIT AI Lab e por programadores da comunidade Unix.

A inspiração veio de uma piada do humorista Ren & Stimpy.

A ideia era mostrar uma sequência absurda de tarefas onde uma ação aparentemente simples leva a dezenas de outras completamente inesperadas.

Desde então, Yak Shaving virou um termo clássico na Engenharia de Software.


Por que "Yak"?

Porque um iaque é um enorme bovino peludo do Himalaia.

A piada consiste justamente em imaginar alguém que precisa raspar um iaque antes de conseguir fazer outra tarefa completamente diferente.

É uma imagem absurda.

E exatamente por isso funciona tão bem.


Matrix explica perfeitamente

Imagine que Neo recebe uma missão.

Corrigir um programa COBOL responsável pelo cálculo do imposto.

Parece simples.

Mas então...


Missão 1

"Vou abrir o programa."

Antes...

precisa atualizar o editor.


Missão 2

Editor atualizado.

Agora percebe que o compilador está antigo.


Missão 3

Atualiza o compilador.

Agora alguns COPYBOOKs ficaram incompatíveis.


Missão 4

Atualiza COPYBOOKs.

Agora resolve reorganizar toda a biblioteca.


Missão 5

Aproveita para mudar o padrão dos nomes.


Missão 6

Já que mudou nomes...

resolve atualizar a documentação.


Missão 7

Agora cria diagramas.


Missão 8

Descobre que seria interessante migrar para GitFlow.


Missão 9

Aproveita para atualizar Jenkins.


Missão 10

O dia termina.

O bug original?

Continua lá.

O Agente Smith agradece.


Como nasce o Yak Shaving?

Geralmente começa assim.

"Já que estou aqui..."

Essa talvez seja a frase mais perigosa da Engenharia de Software.


"Já que estou neste programa..."

"Já que estou nesta rotina..."

"Já que estou compilando..."

"Já que estou mexendo..."

...

Horas depois...

o objetivo inicial desapareceu.


Exemplo COBOL

O usuário informou:

Cliente não consegue emitir boleto.

Problema simples.

Mas o desenvolvedor pensa:

"Vou aproveitar."

Então decide:

  • reorganizar WORKING-STORAGE

  • padronizar comentários

  • alinhar colunas

  • renomear variáveis

  • trocar GO TO por PERFORM

  • atualizar COPYBOOK

  • reorganizar PROCEDURE DIVISION

  • alterar indentação

Resultado?

O boleto continua sem funcionar.


O cérebro gosta disso

Curiosamente...

Yak Shaving é confortável.

Resolver tarefas pequenas produz sensação de progresso.

É muito mais agradável organizar nomes de variáveis do que investigar um erro complexo.

Nosso cérebro adora pequenas vitórias.

Por isso caímos nessa armadilha.


O problema real continua esperando

Enquanto você reorganiza detalhes...

o cliente continua parado.

O banco continua sem processar pagamentos.

O lote continua falhando.

O incidente continua aberto.


A diferença entre Yak Shaving e Refatoração

Muita gente confunde.

Não são iguais.

Refatoração

Melhora código relacionado ao problema.

Tem objetivo claro.

Entrega valor.


Yak Shaving

Executa dezenas de tarefas paralelas sem necessidade imediata.

Aumenta tempo.

Não resolve o problema principal.


Existe Yak Shaving bom?

Sim.

Às vezes.

Imagine.

Você precisa alterar um programa.

Antes percebe:

  • biblioteca corrompida

  • ambiente quebrado

  • compilador incompatível

Corrigir isso não é Yak Shaving.

É pré-requisito.

O segredo está na pergunta:

Essa atividade aproxima ou afasta da solução?


Matrix Reloaded

Na Matrix existe um personagem fascinante.

O Arquiteto.

Ele entende toda a estrutura.

Um bom arquiteto de software também evita Yak Shaving.

Porque consegue separar:

necessário

de

interessante.

Nem tudo que é interessante precisa ser feito agora.


Como identificar Yak Shaving?

Faça uma pergunta simples.

"Estou fazendo isso porque resolve o problema ou porque surgiu oportunidade?"

Se a resposta for:

"Já que estou aqui..."

acenda um alerta.


O Programador Padawan

Todo iniciante passa por isso.

Recebe um pequeno chamado.

Vai investigar.

Três horas depois está lendo documentação sobre VSAM RLS.

Cinco horas depois aprende DFSORT.

Sete horas depois instala uma nova fonte no VS Code.

No dia seguinte...

descobre que o problema era:

IF CPF = SPACES

O efeito dominó

Yak Shaving possui um comportamento interessante.

Cada nova tarefa gera outra.

Por exemplo.

Corrigir documentação.

Descobre padrão antigo.

Atualiza modelo.

Percebe que Wiki está desorganizada.

Resolve reorganizar Wiki.

Atualiza links.

Cria templates.

Muda identidade visual.

...

O problema inicial desapareceu.


Os Agentes Smith adoram Yak Shaving

Na Matrix, Smith cresce distraindo Neo.

No desenvolvimento acontece igual.

Quanto mais tarefas paralelas surgem...

menos energia sobra para o problema verdadeiro.

Smith não precisa impedir você.

Basta manter você ocupado.


Gestão de Projetos

Em projetos grandes isso custa caro.

Imagine uma Sprint de duas semanas.

Uma tarefa estimada em:

8 horas.

Após Yak Shaving.

Consome:

32 horas.

Ninguém entende por quê.

Na verdade...

o desenvolvedor trabalhou bastante.

Só trabalhou nas coisas erradas.


Como gestores combatem isso?

Scrum Masters fazem perguntas importantes.

Qual é o objetivo?

Essa atividade agrega valor?

Está no escopo?

Quem pediu?

É prioridade?

Pode esperar?

Essas perguntas quebram o ciclo.


Técnicas para evitar Yak Shaving

Defina objetivo claro

Antes de abrir o editor escreva:

"Hoje vou corrigir o cálculo do IOF."

Nada além disso.


Use lista de estacionamento

Encontrou outra melhoria?

Anote.

Não faça agora.


Time Boxing

Reserve tempo.

Exemplo:

90 minutos.

Depois reavalie.


Trabalhe por prioridade

Cliente primeiro.

Curiosidade depois.


Faça pequenas entregas

Entregas frequentes diminuem distrações.


Atenção!

Existe uma diferença enorme entre:

Melhorar

e

Perfeccionismo.

Perfeccionismo muitas vezes é Yak Shaving disfarçado.


Os perigos

Atrasos

Cronograma explode.


Retrabalho

Mudanças desnecessárias geram novos bugs.


Escopo infinito

Projeto nunca termina.


Burnout

Equipe trabalha muito.

Entrega pouco.


Perda de foco

Objetivo desaparece.


Um exemplo clássico no Mainframe

Chamado:

Alterar mensagem do CICS.

Durante a alteração:

Atualiza BMS.

Atualiza mapa.

Padroniza cores.

Renomeia campos.

Refatora tratamento.

Atualiza transações.

Altera HELP.

Reorganiza COPYBOOK.

Atualiza manual.

Muda nomenclatura.

Novo teste.

Novo Build.

Nova homologação.

Duas semanas depois...

A mensagem ainda não mudou.


Como o Oráculo resolveria?

Ela perguntaria apenas:

"O que realmente precisa acontecer?"

Essa pergunta elimina metade do Yak Shaving.


Aplicabilidade

Conhecer Yak Shaving ajuda em:

  • COBOL

  • CICS

  • Db2

  • DevOps

  • Cloud

  • IA

  • Engenharia de Dados

  • Projetos Ágeis

  • Infraestrutura

  • Segurança

Na verdade...

qualquer área técnica sofre com isso.


Curiosidades

Grandes empresas treinam desenvolvedores para reconhecer Yak Shaving.

Google possui diversas palestras internas sobre foco.

Microsoft fala sobre "Task Switching".

IBM enfatiza planejamento incremental.

Todas estão combatendo exatamente o mesmo problema.


O Checklist Anti-Yak

Antes de começar pergunte:

✅ Isso resolve o problema principal?

✅ O cliente percebe valor?

✅ Está dentro da Sprint?

✅ É realmente necessário agora?

✅ Posso anotar para depois?

Se respondeu "não" para a maioria...

provavelmente um iaque está esperando por você.


O Ensinamento de Morpheus

Morpheus entrega a Neo uma última mensagem.

"A Matrix não vence apenas pela força.
Ela vence pela distração."

Na Engenharia de Software acontece exatamente igual.

Poucos projetos fracassam porque seus desenvolvedores são incompetentes.

Muitos fracassam porque perderam o foco.


Lições para um Programador COBOL Padawan

Ao trabalhar em um sistema legado, é comum encontrar dezenas de oportunidades de melhoria. Um COPYBOOK poderia ser reorganizado, uma variável poderia ter um nome melhor, um programa poderia ser dividido em módulos menores, um JCL poderia ser simplificado. Tudo isso tem valor — mas nem tudo tem prioridade.

O verdadeiro profissional aprende a distinguir entre o trabalho importante e o trabalho interessante. Resolver o incidente que impede milhares de clientes de realizar uma transação é mais importante do que reorganizar comentários em um programa que funciona perfeitamente. As melhorias devem ser registradas, planejadas e executadas no momento adequado, não durante uma correção crítica.


Conclusão — Saindo da Matrix

No final de sua jornada, Neo compreende que a Matrix não era apenas um sistema de controle, mas também um sistema de distrações. Na Engenharia de Software, o Yak Shaving desempenha exatamente esse papel: cria uma sequência aparentemente lógica de tarefas secundárias que afastam a equipe do objetivo principal.

Para um Programador COBOL, especialmente em ambientes IBM Z onde cada alteração pode impactar processos críticos de bancos, seguradoras ou governos, manter o foco é uma habilidade tão importante quanto dominar a linguagem. Antes de iniciar qualquer atividade, pergunte a si mesmo:

  • Isso resolve o problema do cliente?

  • Isso agrega valor agora?

  • Estou caminhando em direção à solução ou apenas aparando um iaque?

Se a resposta indicar que você está entrando em um labirinto de tarefas paralelas, faça como Neo ao enxergar o código da Matrix: pare, respire, volte ao objetivo original e siga pelo caminho mais direto. Afinal, os melhores engenheiros não são aqueles que fazem mais coisas, mas aqueles que resolvem as coisas certas, no momento certo, com a menor complexidade possível. Esse é o verdadeiro caminho para escapar da Matrix do Yak Shaving e construir software que realmente faz diferença.

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.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...