☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

segunda-feira, 7 de fevereiro de 2011

Survivorship Bias: Doctor Who, COBOL e o Dia em que Estudamos Apenas Quem Sobreviveu

Bellacosa Mainframe e o survivorship bias

☕ Um Café no Bellacosa Mainframe

Survivorship Bias: Doctor Who, COBOL e o Dia em que Estudamos Apenas Quem Sobreviveu

Uma viagem pela TARDIS dos incidentes para entender por que olhar apenas para casos de sucesso pode esconder exatamente as falhas que mais precisamos conhecer

08:12.

Sala de reunião.

Projetor ligado.

Café na mesa.

Uma apresentação começa.

No primeiro slide:

“Como nossas equipes de maior sucesso trabalham.”

No segundo:

“Padrões encontrados nos projetos que entregaram no prazo.”

No terceiro:

“Boas práticas das aplicações que sobreviveram 20 anos em produção.”

Nosso programador COBOL iniciante observa.

Parece excelente.

Lições práticas.

Experiência real.

História.

Até que ele faz uma pergunta:

— E os projetos que fracassaram?

Silêncio.

O gerente responde:

— Esses não estão na amostra.

O jovem olha novamente para os slides.

— Então estamos aprendendo só com quem deu certo?

— Sim.

— Mas como sabemos que as características que eles possuem foram a causa do sucesso?

Outro silêncio.

VWORP.

VWORP.

VWORP.

A TARDIS aparece ao lado do projetor.

A porta abre.

O Doctor sai.

Olha para a apresentação.

Depois para o programador.

Depois para o gerente.

— Quantos projetos começaram?

— Cinquenta.

— Quantos aparecem no relatório?

— Doze.

O Doctor faz aquela expressão preocupada.

— E os outros trinta e oito?

— Falharam, foram cancelados ou desapareceram.

— Ah.

Pausa.

— Então talvez estejam justamente com a informação mais interessante.

Bem-vindo ao:



Survivorship Bias

Ou:

Viés de Sobrevivência

A tendência de concentrar nossa atenção nos casos que sobreviveram a algum processo de seleção e esquecer os casos que desapareceram, falharam, foram descartados ou nunca chegaram ao final.


🌀 A TARDIS já encontrou muitos monstros

Até aqui estudamos:

Swiss Cheese Model — várias barreiras imperfeitas podem falhar juntas.

Normalization of Deviance — desvios repetidos viram rotina.

Hindsight Bias — depois do incidente tudo parece óbvio.

Confirmation Bias — buscamos evidências que apoiem nossas crenças.

Anchoring Bias — a primeira explicação pesa demais.

Groupthink — grupos convergem rápido demais.

Authority Gradient — hierarquia pode silenciar informação importante.

Plan Continuation Bias — continuamos um plano porque já investimos nele.

Alarm Fatigue — alertas demais viram ruído.

Automation Bias — confiamos demais em sistemas automáticos.

Drift Into Failure — pequenas adaptações empurram sistemas lentamente para a borda.

Diffusion of Responsibility — todo mundo vê e ninguém assume.

Normalcy Bias — sinais anormais aparecem, mas esperamos que tudo volte ao normal.

Agora nossa TARDIS precisa fazer uma coisa diferente:

procurar quem não está mais na fotografia.


✈️ A história clássica dos aviões

Survivorship Bias ficou famoso por um exemplo associado à Segunda Guerra Mundial.

Analistas estudavam aviões que retornavam de missões e observavam onde havia mais marcas de tiros.

A ideia intuitiva seria:

reforçar as áreas mais atingidas.

Mas Abraham Wald percebeu algo importante.

Esses eram os aviões que conseguiram voltar.

As áreas perfuradas nos aviões sobreviventes eram justamente lugares onde o avião podia ser atingido e ainda retornar.

As regiões que deveriam receber maior atenção eram aquelas onde havia poucos impactos nos aviões sobreviventes.

Por quê?

Porque aviões atingidos nessas áreas provavelmente não voltavam para ser observados.

Essa história é uma das melhores ilustrações do Survivorship Bias.

A informação crucial estava nos ausentes.


💥 Bellacosa Mainframe: os jobs que “sempre funcionaram”

Imagine uma equipe analisando programas COBOL antigos.

Eles selecionam dez aplicações com 25 anos de produção.

Descobrem:

  • muita lógica procedural;

  • poucos testes automatizados;

  • documentação incompleta;

  • manutenção manual;

  • arquitetura monolítica.

Conclusão:

“Aplicações COBOL sobrevivem bem mesmo sem testes modernos.”

Cuidado.

Talvez essas dez aplicações tenham sobrevivido apesar dessas características.

E onde estão as outras cinquenta aplicações semelhantes que foram:

reescritas;

descontinuadas;

substituídas;

abandonadas;

ou quebraram de forma irrecuperável?

Se você não olha para elas, pode transformar acaso em receita.


🧠 Sobrevivente não é sinônimo de modelo

Esse é um ponto essencial.

Se alguém sobreviveu a uma prática arriscada, isso não significa que a prática seja segura.

Exemplo:

“Faço deploy direto há dez anos e nunca deu problema.”

Ótimo.

Isso prova:

você sobreviveu por dez anos.

Não prova:

deploy direto é seguro.

Talvez outros tenham feito a mesma coisa e falhado.

Você não os vê porque saíram da amostra.


☕ “Sempre fiz assim”

Essa frase já apareceu em Normalization of Deviance.

Agora ela ganha outro significado.

“Sempre fizemos assim e estamos aqui.”

Isso parece forte.

Mas é um argumento baseado apenas nos sobreviventes.

Talvez os que fizeram diferente também estejam aqui.

Talvez os que fizeram igual e quebraram não estejam.

O simples fato de você existir hoje distorce a amostra.


👻 Easter Egg nº 1 — O companion que não voltou

Imagine o Doctor dizendo:

— Todos os companions que voltaram disseram que o planeta era seguro.

O novo companion pergunta:

— E os que não voltaram?

Silêncio.

O Doctor olha para a TARDIS.

— Excelente pergunta.

Em segurança, sempre pergunte pelos ausentes.


📊 Dados sobreviventes são dados filtrados

Esse ponto é muito importante.

Imagine uma tabela:

PROJETOS CONCLUÍDOS COM SUCESSO
A
B
C
D
E

Você estuda.

Descobre que todos usavam metodologia X.

Conclui:

metodologia X causa sucesso.

Mas talvez houvesse:

PROJETOS QUE USARAM X

A → sucesso
B → sucesso
C → sucesso
D → sucesso
E → sucesso
F → falhou
G → falhou
H → cancelado
I → cancelado
J → fracasso

Agora a história muda.

A metodologia X não possui mais 100% de sucesso.

Você só estava olhando para uma amostra censurada.


🧠 Selection Bias

Survivorship Bias é um tipo de viés de seleção.

A amostra observada não representa toda a população porque algum processo eliminou casos.

Isso acontece muito em tecnologia.

Você observa:

empresas que cresceram;

sistemas que continuam rodando;

profissionais que ficaram na carreira;

projetos que chegaram à produção.

Mas não vê:

os que falharam cedo.


💻 “COBOL está há 60 anos funcionando”

É verdade que COBOL possui uma extraordinária história de longevidade.

Mas tome cuidado com a interpretação.

Você pode observar aplicações COBOL robustas que sobreviveram décadas.

Isso pode refletir:

qualidade;

estabilidade;

investimento;

criticidade;

manutenção;

processos maduros.

Mas também existe seleção.

Aplicações COBOL ruins podem ter sido substituídas há décadas.

Logo, o conjunto atual é formado parcialmente pelos sobreviventes mais úteis e resilientes.

Isso não diminui o valor do COBOL.

Apenas melhora nossa análise.


🏛️ Sistemas legados são sobreviventes selecionados

Quando alguém olha para um mainframe antigo e diz:

“Se ainda está rodando, deve ser bom.”

Talvez.

Ou talvez seja:

caro de substituir;

crítico;

bem mantido;

fortemente acoplado;

ou simplesmente sobrevivente de um processo histórico.

Precisamos investigar.


🧠 Lindy Effect e Survivorship Bias não são iguais

Existe uma ideia chamada Lindy Effect: para certas coisas não perecíveis, sobreviver por muito tempo pode sugerir maior probabilidade de continuar existindo.

Isso é diferente de dizer:

“Se sobreviveu, tudo em sua arquitetura é correto.”

Um sistema antigo pode ter valor comprovado.

Mas ainda possuir fragilidades.

Não use longevidade como imunidade.


🧀 Swiss Cheese + Survivorship Bias

Aqui surge uma conexão interessante.

Se estudamos apenas incidentes evitados ou sistemas sobreviventes, talvez observemos apenas barreiras que funcionaram.

Mas e os casos onde:

  • barreiras falharam;

  • incidentes destruíram sistemas;

  • empresas desapareceram?

Eles podem não estar disponíveis para estudo interno.

A amostra fica otimista.


🚨 Near Misses e sobrevivência

Near miss é, por definição, um evento em que o sistema sobreviveu.

Isso é valioso.

Mas não conclua:

“a defesa final sempre funciona.”

Talvez tenha funcionado daquela vez.

Investigue quantas vezes falhou.


📚 Post-mortems publicados também sofrem seleção

Empresas maduras publicam incident reports.

Excelente.

Mas quais empresas você consegue estudar?

As que:

existem;

documentam;

publicam.

E as organizações que falharam profundamente e desapareceram?

Talvez tenham informações preciosas que nunca foram publicadas.

Então até nossa literatura de incidentes pode sofrer Survivorship Bias.


🧠 “Best Practices” precisam de cuidado

Muitos textos dizem:

“Estudamos 100 empresas de sucesso e descobrimos que todas fazem X.”

Survivorship Bias pergunta:

Quantas empresas fracassadas também faziam X?

Sem grupo comparativo, talvez X seja irrelevante.

Exemplo:

todas empresas bem-sucedidas possuem reuniões.

As fracassadas também.

Reuniões não explicam sucesso.


💰 Empreendedorismo é cheio desse viés

Empresário bilionário:

“Abandonei a faculdade e deu certo.”

Talvez.

Mas quantos abandonaram e não ficaram bilionários?

Os que fracassaram não recebem palestras TED.

Esse é Survivorship Bias.


👨‍💻 Carreira técnica também

Veterano:

“Nunca precisei aprender Git e cheguei até aqui.”

Interessante.

Mas quantos profissionais com mesma estratégia perderam oportunidades?

Você não sabe.

A trajetória de quem permaneceu visível não representa todos os caminhos.


🌀 Drift Into Failure + Survivorship Bias

Essa combinação é perigosa.

Sistema opera perto do limite durante anos.

Nada acontece.

Conclusão:

margem baixa é suficiente.

Mas você está usando o sobrevivente como prova.

Talvez outro sistema semelhante tenha falhado.

A ausência de desastre local não é evidência universal.


🧠 Normalization of Deviance reforça

Desvio.

Nada acontece.

Repete.

Sistema sobrevive.

Survivorship Bias:

“Viu? É seguro.”

Normalization of Deviance:

“Então vira normal.”

Essa dupla pode aumentar risco rapidamente.


🔔 Alarm Fatigue

Um operador diz:

“Ignoramos esse alerta há cinco anos e nunca aconteceu nada.”

Você está ouvindo:

  • normalização do desvio;

  • survivorship bias.

Talvez o sistema simplesmente tenha sobrevivido cinco anos.


🤖 Automation Bias

Ferramenta automatizada tomou mil decisões.

999 aparentemente corretas.

Uma errada ainda não causou desastre.

Equipe conclui:

automação é confiável.

Mas talvez você só esteja observando resultados que sobreviveram.

Além disso, falhas não detectadas podem não estar nos dados.


🧠 Silent Failures

Esse ponto é fantástico.

Nem toda falha gera incidente visível.

Talvez uma automação esteja errando 0,5% das transações, mas o problema seja corrigido manualmente pelos usuários.

O dashboard registra:

sucesso.

Você está olhando apenas para o que permaneceu visível.

Falhas silenciosas também saem da amostra.


👥 Diffusion of Responsibility

Incident reports normalmente registram incidentes reconhecidos.

E os problemas que ninguém assumiu e desapareceram silenciosamente?

Talvez voltaram depois.

Se não foram registrados, não entram no aprendizado.

Survivorship Bias também pode acontecer dentro do histórico operacional.


🧠 Historical Logging Bias

Se logs guardam apenas:

erros severos,

você não consegue estudar:

warnings;

near misses;

correções manuais.

Seu passado parece mais limpo do que realmente foi.

Preservação de dados influencia aprendizado.


☕ Bellacosa Mainframe: o batch perfeito

Imagine:

JOB ABC123

RUNS: 10.000
ABENDS: 0

Fantástico.

Mas alguém pergunta:

Quantas vezes houve intervenção manual?

Resposta:

1.800.

A história muda.

O job não era autonomamente perfeito.

Pessoas salvaram 1.800 execuções.

Se você olha só para ABENDs, sofre Survivorship Bias operacional.


🦸 Heroísmo oculta falhas

No Drift Into Failure vimos isso.

Carlos corrige manualmente.

Nada cai.

Então sistema parece resiliente.

Mas o sobrevivente é:

sistema + Carlos.

Não sistema sozinho.

Se você esquecer Carlos na análise, aprenderá a lição errada.


🧠 Counterfactual Thinking

Uma técnica poderosa:

pergunte:

“O que teria acontecido sem essa intervenção?”

Se resposta:

incidente,

então registre como near miss.

Não como execução normal.


📊 Denominador importa

Esse talvez seja o coração matemático do Survivorship Bias.

Não pergunte apenas:

quantos sucessos?

Pergunte:

sucessos de quantas tentativas?

Exemplo:

10 sucessos

Parece bom.

Agora:

10 sucessos / 10 tentativas

Excelente.

Ou:

10 sucessos / 1000 tentativas

Péssimo.

Sem denominador, não sabemos quase nada.


🎯 Pergunta Bellacosa nº 1

Quando alguém disser:

“Todos os casos que conheço deram certo.”

Pergunte:

“Quantos casos deram errado e deixaram de ser visíveis?”


🎯 Pergunta Bellacosa nº 2

Quando alguém mostrar:

“Top 10 projetos de sucesso”

Pergunte:

“Qual era a população original?”


🎯 Pergunta Bellacosa nº 3

Quando alguém disser:

“Esse sistema nunca caiu.”

Pergunte:

“Quantas intervenções impediram que caísse?”


🎯 Pergunta Bellacosa nº 4

E:

“O que estamos incapazes de observar porque não sobreviveu até entrar no relatório?”

Essa é a pergunta central.


🧪 Como combater Survivorship Bias

Passo 1 — Procure os casos ausentes

Projetos cancelados.

Incidentes silenciosos.

Clientes perdidos.

Aplicações desativadas.

Mudanças rollbackadas.


Passo 2 — Defina o denominador

Não apenas sucessos.

Total de tentativas.


Passo 3 — Compare sobreviventes e não sobreviventes

O que existia em ambos?

O que realmente diferencia?


Passo 4 — Preserve near misses

Eles mostram caminhos que quase falharam.


Passo 5 — Registre intervenções manuais

Não deixe heroísmo virar execução “normal”.


Passo 6 — Estude rollbacks

Rollback bem-sucedido não é simplesmente “nada aconteceu”.

Talvez tenha evitado incidente.


Passo 7 — Analise projetos mortos

Post-mortem não deveria existir só para incidentes.

Projetos cancelados também ensinam.


Passo 8 — Estude sistemas aposentados

Por que saíram?

Custo?

Fragilidade?

Escalabilidade?

Manutenção?

Esses dados ajudam.


Passo 9 — Cuidado com histórias inspiradoras

História individual não é distribuição estatística.


Passo 10 — Procure dados negativos

Não apenas:

o que funcionou?

Mas:

o que não funcionou?

E onde não há dados?


🏦 Bancos e Survivorship Bias

Imagine revisar controles antifraude.

Você estuda:

fraudes detectadas.

Mas e as fraudes não detectadas?

Você não conhece.

Isso é um problema clássico.

Os dados disponíveis são parcialmente selecionados pelo próprio sistema de detecção.

O invisível continua invisível.


🔐 Segurança cibernética

SOC analisa ataques bloqueados.

Ótimo.

Mas e ataques que passaram sem detecção?

A ausência deles no SIEM não significa ausência real.

Mais uma vez:

o dataset possui sobreviventes.


🧠 Detection Bias

Seu sistema de detecção define o que consegue estudar.

Se ferramenta detecta melhor malware A que malware B, histórico mostrará mais A.

Você pode concluir:

A é mais comum.

Talvez apenas seja mais visível.


🧬 Observabilidade afeta epistemologia

Frase sofisticada.

Tradução Bellacosa:

Você aprende sobre aquilo que consegue enxergar.

Se sensores são enviesados, conhecimento também será.

Isso conecta Survivorship Bias com Automation Bias.


💾 COBOL e testes

Imagine testes unitários cobrindo cenários conhecidos.

Todos passam.

Ótimo.

Mas testes fracassados anteriores podem ter sido corrigidos e removidos.

Histórico atual mostra apenas suíte saudável.

Não esqueça bugs passados.

Eles revelam fronteiras do sistema.


🐞 Bug database é memória dos não sobreviventes

Um bug corrigido é um comportamento que não sobreviveu à seleção.

Isso é valioso.

Mantenha histórico.

Não apague tudo porque:

“já corrigimos.”

A correção ensina.


📚 Documente por que algo foi removido

Comentário:

* VALIDATION ADDED AFTER INC-2024-017

Excelente.

Isso preserva memória do caminho que falhou.

Caso contrário, futura equipe vê código “redundante” e remove.

Normalization of Deviance e Survivorship Bias se cumprimentam.


🕰️ Hindsight Bias + Survivorship Bias

Depois de um sucesso:

“Era óbvio que daria certo.”

Depois de fracasso:

“Era óbvio que daria errado.”

Mas se você estuda apenas sucessos, pode reconstruir uma narrativa falsa de inevitabilidade.

Isso é:

Hindsight + Survivorship.

Dupla perigosa.


👥 Groupthink em histórias de sucesso

Uma empresa bem-sucedida cria cultura:

“Nosso método funciona.”

Todos repetem.

Casos ruins são atribuídos a execução.

Casos bons ao método.

Confirmation Bias entra.

Survivorship Bias escolhe amostra.

Groupthink protege narrativa.

Perfeito.


🧠 Cargo cult

Talvez você já tenha visto:

empresa A teve sucesso usando prática X.

Empresa B copia X.

Sem entender contexto.

Isso é quase um cargo cult tecnológico.

Exemplo:

Spotify usou modelo organizacional X.

Então todas empresas copiam.

Mas você vê o Spotify que sobreviveu.

Não todas as empresas que tentaram modelos similares e falharam.

Práticas precisam ser avaliadas no contexto.


🤖 IA e benchmark survivorship

Imagine avaliar agentes de IA apenas nas tarefas que completaram.

Você conclui:

95% accuracy.

Mas e tarefas abandonadas?

Timeout?

Escaladas para humano?

Filtradas antes?

Se não entram no denominador, métrica engana.


📊 Success Rate precisa incluir falhas silenciosas

Métrica:

COMPLETED TASKS: 950
SUCCESS: 900

Você precisa saber:

Total recebido?

1000?

1200?

Quantos foram descartados?

Sem denominador completo:

não sabemos.


🧠 Censoring

Em estatística existe o conceito de censura de dados.

Algumas observações não são vistas completamente.

Isso aparece muito em sobrevivência.

Em sistemas:

tarefas que desaparecem antes de completar podem ser justamente as mais importantes.


🛰️ Space Missions

Imagine estudar apenas missões espaciais que chegaram ao destino.

Você aprende características dos sobreviventes.

Mas os lançamentos que falharam contêm informações fundamentais sobre risco.

Engenharia aprende muito com destroços.

Talvez mais do que com sucesso.


💥 Acidentes são dados caros

Incidentes custam.

Quando acontecem, desperdiçar aprendizado é quase ofensivo.

Não basta corrigir.

Preserve:

timeline;

condições;

sinais;

decisões;

barreiras;

falhas.

Os não sobreviventes pagaram a mensalidade da aula.

Estude.


🧠 Safety-I + Safety-II

Perspectivas modernas de segurança valorizam estudar:

o que dá errado;

e o que dá certo.

Survivorship Bias lembra:

não podemos estudar apenas um lado.

Precisamos observar:

sucessos;

falhas;

near misses;

adaptações.

A distribuição completa.


☕ Exemplo completo Bellacosa

Você quer descobrir melhor forma de deploy.

Analisa 20 deploys bem-sucedidos.

Todos tiveram:

aprovação manual.

Conclui:

aprovação manual causa sucesso.

Mas histórico completo:

TOTAL: 100 deploys

80 sucesso
20 falha

Dos 80:

60 tinham aprovação manual.

Dos 20 falhos:

18 também tinham aprovação manual.

Agora aprovação manual não parece tão protetora.

Talvez outro fator seja mais importante.


📐 Compare taxas

Pergunta correta:

P(success | control)

versus

P(success | no control)

Não apenas:

quantos sucessos tinham controle?

Essa mudança de pergunta é gigantesca.


🧠 Base Rate Neglect aparece no horizonte

Outro viés relacionado:

Base Rate Neglect.

Ignorar taxas-base.

Talvez seja outro ótimo capítulo futuro.

Porque a probabilidade de um evento depende também da frequência original.

Survivorship Bias e base rates andam perto.


👨‍💻 Dica para o programador COBOL iniciante

Quando veterano disser:

“Esse padrão é ótimo. Todos os programas antigos usam.”

Pergunte:

“Os programas antigos que não usam desapareceram ou nunca existiram?”

E também:

“Existiam programas ruins com esse mesmo padrão?”

Você não está desrespeitando experiência.

Está tentando entender seleção.


🧠 Experience Bias

Experiência é valiosa.

Mas a experiência de uma pessoa é uma amostra.

Ela lembra:

projetos onde trabalhou;

empresas onde ficou;

tecnologias que sobreviveram.

Pode não ver aquilo que desapareceu.

Por isso história, dados e casos negativos complementam experiência.


🏛️ Arqueologia do fracasso

Uma prática maravilhosa:

não estude apenas sistemas vivos.

Estude:

cemitérios de aplicações.

Projetos aposentados.

Arquiteturas removidas.

Ferramentas abandonadas.

Pergunte:

“Por que isso morreu?”

Isso é arqueologia tecnológica.

E talvez seja uma das melhores escolas de engenharia.


👻 Easter Egg nº 2 — O cemitério de TARDIS

Imagine um planeta cheio de TARDIS quebradas.

O companion diz:

— Mas a nossa sempre funcionou.

Doctor olha ao redor.

— Exatamente.

— Não entendi.

— Nós estamos dentro da que sobreviveu.

Silêncio.

Perfeito.


🧪 Failure Database

Crie um repositório de:

falhas;

near misses;

rollbacks;

bugs críticos;

mudanças canceladas;

projetos descontinuados.

Não como vergonha.

Como ativo de conhecimento.


🔍 Perguntas para projetos mortos

Por que cancelou?

Qual hipótese estava errada?

Qual sinal apareceu primeiro?

Quando poderíamos ter parado?

Qual dependência foi subestimada?

Qual custo cresceu?

Isso conecta Plan Continuation Bias.


🧠 Survivorship Bias e Plan Continuation

Projetos que continuaram até dar certo são celebrados.

Histórias:

“Quase desistimos, mas persistimos!”

Inspirador.

Mas onde estão os projetos que persistiram e queimaram milhões?

Não recebem filme.

Logo podemos supervalorizar persistência.

Isso é perigosíssimo.

Às vezes persistir é coragem.

Às vezes é Plan Continuation Bias.

Você precisa da população completa.


💸 “Nunca desista” é péssima política de risco

Melhor:

“Não desista apenas por desconforto; não continue apenas por orgulho.”

Dados.

Critérios.

Contexto.


🧠 Authority Gradient + Survivorship Bias

Líder veterano:

“Eu sempre fiz assim e deu certo.”

Essa frase possui força hierárquica.

Júnior pode não perguntar:

“Quantas vezes outros fizeram e falharam?”

Authority Gradient protege uma narrativa enviesada.


📈 Métricas de sucesso precisam incluir churn

Produto:

1 milhão de usuários ativos.

Impressionante.

Mas quantos saíram?

Se só olha quem ficou:

Survivorship Bias.

Em sistemas internos:

quantas transações concluídas?

Mas quantas abandonadas?

Sempre procure o desaparecido.


🧠 Missingness is Data

A ausência pode ser informação.

Exemplo:

clientes que não reclamaram.

Talvez estejam satisfeitos.

Ou desistiram.

Você não sabe.

Silêncio não é necessariamente sucesso.

Essa ideia conecta com Diffusion of Responsibility e Groupthink.


🚪 Pessoas que saíram da empresa

Pesquisa de cultura apenas com funcionários atuais pode mostrar:

todo mundo gosta.

E quem odiava saiu.

Survivorship Bias.

Exit interviews também importam.


👥 Incidentes e turnover

Equipe veterana diz:

processo funciona.

Mas cinco pessoas saíram porque burnout era insustentável.

Processo sobreviveu.

Pessoas não.

Métrica técnica verde.

Sistema sociotécnico vermelho.


🧠 Safety inclui pessoas

Drift Into Failure nos ensinou isso.

Não avalie apenas uptime.

Avalie:

carga;

burnout;

heroísmo;

turnover.

Caso contrário, pessoas que permanecem tornam-se amostra enviesada.


🧬 Regeneração organizacional

Como uma organização se regenera contra Survivorship Bias?

Ela pergunta:

  • quem está faltando na amostra?

  • quais falhas não registramos?

  • quais projetos morreram?

  • quais pessoas saíram?

  • quais rollbacks evitamos contar?

  • quais transações abandonaram?

  • quais clientes desistiram?

  • quais sistemas foram substituídos?

Depois amplia o dataset.

Compara.

Aprende.

O segredo é:

não estudar apenas aquilo que chegou vivo até o relatório.


📋 Checklist anti-Survivorship Bias

Antes de concluir:

[ ] Qual é a população completa?

[ ] Estamos olhando apenas sucessos?

[ ] Onde estão os casos que falharam?

[ ] Existe denominador?

[ ] Near misses estão incluídos?

[ ] Rollbacks estão incluídos?

[ ] Intervenções manuais estão registradas?

[ ] Casos silenciosos podem estar faltando?

[ ] Nosso sistema de detecção filtra a amostra?

[ ] Pessoas ou projetos desapareceram antes da medição?

[ ] A característica observada aparece também nos fracassos?

[ ] Estamos transformando história inspiradora em regra geral?

Se você não sabe quem está ausente...

a conclusão deveria ficar mais humilde.


📓 Diário do Doctor

Se guardar apenas algumas ideias desta viagem, guarde estas:

Survivorship Bias acontece quando estudamos os casos que sobreviveram e esquecemos os que desapareceram.

Sobrevivência não prova que uma prática seja segura.

Histórias de sucesso sem denominador enganam.

Pergunte sempre quantas tentativas existiram.

Sistemas legados são uma amostra selecionada pelo tempo.

Near misses e rollbacks precisam entrar na análise.

Intervenção manual pode esconder fragilidade.

Falhas silenciosas podem não entrar nos dados.

Best practices baseadas apenas em vencedores merecem desconfiança.

Ausência de caso não significa ausência de evento.

E principalmente:

Às vezes a informação mais importante não está nas máquinas que voltaram para casa — está nos lugares onde as máquinas que não voltaram foram atingidas.


🕰️ De volta à apresentação das 08:12

O Doctor pega o controle remoto.

Slide:

“12 projetos de sucesso.”

Ele pergunta:

— Quantos começaram?

— Cinquenta.

Novo slide.

Criam uma tabela:

50 PROJETOS

12 sucesso
14 cancelados
9 atrasados
8 abandonados
7 substituídos

Agora estudam todos.

Descobrem algo curioso.

A característica que aparecia nos 12 projetos vencedores...

também aparecia em quase todos os projetos fracassados.

Logo:

não explicava sucesso.

Mas outra característica aparecia com muito mais frequência nos casos bem-sucedidos:

feedback precoce.

Ainda não prova causalidade.

Mas agora temos uma hipótese melhor.

Nosso programador sorri.

— Então estávamos estudando a coisa errada?

O Doctor responde:

— Não exatamente.

— Como não?

— Vocês estavam estudando dados reais.

Pausa.

— Só esqueceram que realidade também inclui aquilo que desapareceu.


🥚 Easter Egg final

Depois da reunião, nosso programador encontra:

BELLACOSA.BIAS(SURVIVE)

Dentro:

       IF SAMPLE = SURVIVORS-ONLY
           PERFORM FIND-MISSING
       END-IF.

       IF SUCCESS-COUNT > 0
           PERFORM CHECK-DENOMINATOR
       END-IF.

       IF SOMEONE-SAYS
          'IT-WORKED-FOR-ME'
           PERFORM ASK-WHO-FAILED
       END-IF.

Comentário:

* THE ABSENT CASES STILL COUNT.

Outro:

* A SUCCESS STORY IS NOT A DISTRIBUTION.

E, naturalmente:

* BAD WOLF DID NOT MAKE IT INTO THE SAMPLE.

Nosso programador fecha o membro.

Mais tarde, alguém diz:

— Nunca vi esse erro acontecer.

Ele quase responde:

“Então não acontece.”

Mas para.

Pergunta:

— Ou será que quando acontece ele não chega até nós?

Silêncio.

O operador olha.

O DBA pensa.

Talvez exista uma fila de registros rejeitados que ninguém acompanha.

Eles abrem.

Existem centenas.

Nenhum incidente.

Nenhum chamado.

Nenhum cliente reclamou.

Os registros simplesmente não chegaram ao fluxo normal.

Os dados ausentes acabaram de aparecer.

O Doctor, em algum ponto do espaço-tempo, provavelmente sorri.

Porque nosso programador aprendeu uma habilidade nova:

olhar para a fotografia e perguntar quem deveria estar nela, mas não está.

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

No quadro fica escrito:

Não pergunte apenas por que os vencedores venceram. Pergunte também por que os outros não chegaram ao final.

☕🌀

Next stop: Base Rate Neglect — quando um caso parece tão convincente que esquecemos completamente de perguntar o quão provável ele era antes de começarmos a investigação.


domingo, 6 de fevereiro de 2011

🔥 Five Major Components of CICS

 

os 5 principais componentes do CICS

🔥 Five Major Components of CICS

 


☕ Midnight Lunch, região CICS no ar e tudo funcionando

13h26.
A região subiu limpa.
Nenhum erro no log.
Usuários entrando.

Alguém pergunta, meio desconfiado:

“Mas… o que realmente faz o CICS funcionar?”

A resposta curta: cinco grandes componentes.
A resposta Bellacosa? Bora destrinchar um por um — com história, prática e verdade de data center.


Five Major Components of CICS

🏛️ História: CICS não é monolito, é orquestra

Desde os anos 60, o CICS foi pensado como:

  • Um monitor transacional

  • Um sistema operacional dentro do z/OS

  • Um orquestrador de recursos

Para isso, ele se organizou em componentes bem definidos, cada um com responsabilidade clara.

📌 CICS funciona porque cada parte sabe o seu lugar.


🧠 Conceito essencial

CICS é dividido em componentes especializados,
não em “funcionalidades soltas”.

Entender isso muda sua forma de debugar, otimizar e projetar.


🧱 Os Cinco Grandes Componentes do CICS


1️⃣ Program Control (PC) – o maestro

O que faz?

  • Carrega programas

  • Controla LINK, XCTL e RETURN

  • Gerencia reentrância

  • Mantém o fluxo da transação

Exemplos de comandos

  • LINK

  • XCTL

  • RETURN

📌 Se o fluxo está errado, comece aqui.


2️⃣ File Control (FC) – o guardião dos dados

O que faz?

  • Acesso a VSAM e outros arquivos

  • Controle de concorrência

  • Lock e recovery

Comandos típicos

  • READ

  • WRITE

  • REWRITE

  • DELETE

📌 Arquivo em CICS não é leitura. É compromisso.


3️⃣ Terminal Control (TC) – a interface humana

O que faz?

  • Comunicação com terminais

  • Envio e recebimento de telas (BMS)

  • Gerenciamento de sessões

Comandos comuns

  • SEND

  • RECEIVE

📌 Se o usuário vê algo estranho, o problema mora aqui.


4️⃣ Storage Control (SC) – o gerente invisível

O que faz?

  • Gerencia memória (MAIN e AUX)

  • Aloca e libera storage

  • Evita vazamentos

Tipos

  • GETMAIN

  • FREEMAIN

📌 Storage mal cuidado derruba região.


5️⃣ Task Control (Dispatcher) – o coração pulsante

O que faz?

  • Cria e encerra tasks

  • Escalona CPU

  • Garante multitasking

📌 É por isso que mil usuários trabalham ao mesmo tempo.


🥊 Componentes vs Problemas comuns

ProblemaComponente suspeito
Fluxo erradoProgram Control
Arquivo travadoFile Control
Tela não apareceTerminal Control
Storage crescendoStorage Control
Lentidão geralTask Control

📌 Diagnóstico começa pelo componente certo.


🛠️ Passo a passo Bellacosa (como pensar CICS)

1️⃣ Usuário entra → Task Control
2️⃣ Tela aparece → Terminal Control
3️⃣ Programa executa → Program Control
4️⃣ Dados acessados → File Control
5️⃣ Storage usado → Storage Control

📌 O CICS é um fluxo vivo.


⚠️ Erros clássicos (easter eggs)

🐣 Misturar responsabilidades
🐣 Culpar “o CICS” sem analisar componente
🐣 Ignorar SC até faltar storage
🐣 READ UPDATE desnecessário
🐣 LINK infinito

📌 Todo incidente grave passa por um desses.


📚 Guia de estudo para mainframers

Para dominar o CICS de verdade:

  • CICS Architecture

  • Program Control & Task Control

  • Storage Management

  • File Control internals

  • Performance tuning

📖 Manual essencial: CICS Transaction Server Administration Guide


🤓 Curiosidades de boteco mainframe

🍺 CICS gerencia memória melhor que muito runtime moderno
🍺 Task Control antecede schedulers atuais
🍺 Program Control inspirou frameworks
🍺 CICS roda há décadas com o mesmo conceito-base


💬 Comentário El Jefe Midnight Lunch

“Quando você entende os componentes,
o CICS deixa de ser mistério e vira ferramenta.”


🚀 Aplicações reais hoje

  • Core bancário

  • Sistemas governamentais

  • Seguros e previdência

  • Pagamentos globais

  • APIs corporativas


🎯 Conclusão Bellacosa

Os cinco grandes componentes do CICS são a espinha dorsal do online corporativo.

Quem domina:

  • Debuga mais rápido

  • Desenha melhor

  • Evita incidente feio

🔥 CICS não é complexo. Ele é organizado.


segunda-feira, 31 de janeiro de 2011

🔥 Aprender COBOL com DB2 — o caminho do programador mainframer de verdade

 

Aprenda COBOL com DB2 ao estilo Bellacosa Mainframe

🔥 Aprender COBOL com DB2 — o caminho do programador mainframer de verdade



🧠 Introdução: por que COBOL + DB2 ainda manda no jogo

Se você quer ser programador mainframe COBOL com DB2, precisa entender uma verdade simples:

COBOL processa.
DB2 guarda.
SQL conecta o cérebro à memória do negócio.

Não estamos falando de tecnologia “antiga”.
Estamos falando da infraestrutura que processa bilhões por dia, com ACID, consistência e auditoria que muita stack moderna ainda tenta copiar.

Esse artigo é um mapa de estrada, do zero até o código profissional, misturando:

  • técnica

  • história

  • prática

  • fofoca de data center

  • e aquela sabedoria que só mainframer velho passa no café ☕


DB2 o banco de dados do Mainframe


🧱 PARTE 1 — Conhecendo o DB2 (o coração dos dados)

📜 Um pouco de história

O DB2 nasce na IBM nos anos 80, baseado no modelo relacional proposto por Edgar F. Codd.

👉 Conceito revolucionário:

  • dados em tabelas

  • relações lógicas

  • SQL como linguagem declarativa

Enquanto o mundo brigava com arquivos VSAM:

“Me diga o que você quer, não como buscar.”


🧩 Modelo Relacional (base de tudo)

  • Tabela → entidade de negócio

  • Linha (row) → registro

  • Coluna (column) → atributo

  • Primary Key → identidade

  • Foreign Key → relacionamento

💬 Bellacosa comenta:

“Se você não entende modelo relacional, não adianta saber COBOL.”


🧾 Tipos de Dados DB2 (o casamento com COBOL)

DB2COBOL
CHAR / VARCHARPIC X
INTEGERPIC S9
DECIMALPIC S9V
DATEPIC X(10)
TIMESTAMPPIC X(26)

🥚 Easter egg:
DB2 guarda DECIMAL melhor do que muito banco moderno guarda FLOAT 😏


Queries SQL no DB2 

🧑‍💻 PARTE 2 — Linguagem SQL no DB2

🗣️ SQL: a língua franca dos dados

SQL não é procedural.
SQL é declarativa.

🔹 DDL — Data Definition Language

CREATE TABLE CLIENTE ( ID_CLIENTE INTEGER NOT NULL, NOME VARCHAR(50), SALDO DECIMAL(9,2), PRIMARY KEY (ID_CLIENTE) );
  • CREATE

  • DROP

  • ALTER


🔹 DCL — Data Control Language

GRANT SELECT ON CLIENTE TO USER01;

Controle de acesso.
Segurança raiz de banco.


🔹 DML — Data Manipulation Language

INSERT INTO CLIENTE VALUES (1, 'JOÃO', 1500.00); SELECT * FROM CLIENTE; UPDATE CLIENTE SET SALDO = SALDO + 100 WHERE ID_CLIENTE = 1; DELETE FROM CLIENTE WHERE ID_CLIENTE = 1;

💬 Bellacosa:

“DELETE sem WHERE é como RM -RF /”


🔍 SELECT, JOIN e afins (onde o bicho pega)

SELECT C.NOME, P.VALOR FROM CLIENTE C JOIN PEDIDO P ON C.ID_CLIENTE = P.ID_CLIENTE;

👉 JOIN mal feito = batch lento = gente te ligando às 3 da manhã.


🛠️ SPUFI e QMF

  • SPUFI → SQL direto no TSO

  • QMF → consultas, relatórios, análise

💡 Dica Bellacosa:

“Todo mundo começa no SPUFI.
Quem fica bom, aprende QMF.”



🧩 PARTE 3 — COBOL com DB2 (onde nasce o profissional)

🏛️ História rápida do COBOL

  • Criado em 1959

  • Foco: negócio

  • Legibilidade

  • Estabilidade

👉 Não é bonito.
👉 É confiável.


🧠 Estrutura de um programa COBOL

  • IDENTIFICATION DIVISION

  • ENVIRONMENT DIVISION

  • DATA DIVISION

  • PROCEDURE DIVISION

📌 Árvore programática é fundamental para não virar macarrão lógico.


🔗 Host Variables (a ponte COBOL ↔ DB2)

EXEC SQL SELECT SALDO INTO :WS-SALDO FROM CLIENTE WHERE ID_CLIENTE = :WS-ID END-EXEC.
  • Sempre com :

  • Tipagem correta

  • Conversão consciente


📊 SQLCA — seu melhor amigo

IF SQLCODE = 0 CONTINUE ELSE DISPLAY 'ERRO DB2 ' SQLCODE END-IF
SQLCODESignificado
0OK
+100NOT FOUND
< 0ERRO

💬 Bellacosa:

“Quem ignora SQLCODE vira operador sem saber.”


📚 DCLGEN — o BOOK sagrado

  • Gera layout da tabela

  • Gera host variables

  • Evita erro humano

//STEP01 EXEC PGM=DSNTEP2

👉 Nunca escreva layout DB2 na mão. Nunca.


Consulta pagina via cursor no DB2

🌀 PARTE 4 — Cursores (nível profissional)

🔄 Cursor para leitura

EXEC SQL DECLARE C1 CURSOR FOR SELECT ID_CLIENTE, NOME FROM CLIENTE END-EXEC.
EXEC SQL FETCH C1 INTO :WS-ID, :WS-NOME END-EXEC.

📌 Sempre:

  • OPEN

  • FETCH

  • CLOSE


✍️ Inserindo, alterando e excluindo via COBOL

  • INSERT → novo registro

  • UPDATE → alteração controlada

  • DELETE → cuidado máximo

💡 Boa prática:

“Nunca DELETE direto sem histórico.”


🧠 PARTE 5 — Boas práticas Bellacosa Mainframe

✔ Use DCLGEN
✔ Sempre trate SQLCODE
✔ Evite SELECT *
✔ Documente regra de negócio
✔ Separe lógica de acesso a dados
✔ Teste com volume real
✔ Pense em performance desde o SELECT

🥚 Easter egg clássico:

“O batch estava lento porque alguém esqueceu o índice.”


🧪 Exercícios de fixação (mentalidade correta)

  1. Criar tabela DB2

  2. Gerar DCLGEN

  3. Programa COBOL com:

    • INSERT

    • SELECT

    • UPDATE

    • DELETE

  4. Programa com CURSOR

  5. Programa com JOIN

  6. Analisar SQLCODE

  7. Ajustar performance

👉 Isso forma programador, não copiador de código.


🧠 Comentário final Bellacosa

Aprender COBOL com DB2 não é aprender uma linguagem.
É aprender:

  • como dados movem o mundo

  • como sistemas críticos pensam

  • como escrever código que não pode falhar

🔥 COBOL + DB2 não é passado.
É o núcleo silencioso do presente.

Enquanto modas passam,
o batch fecha o dia.

 

terça-feira, 11 de janeiro de 2011

Normalcy Bias: Doctor Who, COBOL e o Dia em que Tudo Já Estava Dando Errado — Mas Todo Mundo Achou que Ia Passar

Bellacosa Mainframe e o normalcy bias

☕ Um Café no Bellacosa Mainframe

Normalcy Bias: Doctor Who, COBOL e o Dia em que Tudo Já Estava Dando Errado — Mas Todo Mundo Achou que Ia Passar

Uma viagem pela TARDIS dos incidentes para entender por que, diante de sinais anormais, nosso cérebro insiste em acreditar que o mundo continuará funcionando como sempre funcionou

09:04.

Segunda-feira.

Café quente.

Mainframe acordado.

Usuários trabalhando.

Tudo normal.

Então aparece:

WARNING
PAYMENT RESPONSE TIME ABOVE BASELINE

O operador olha.

— Deve ser pico de volume.

09:11.

QUEUE DEPTH +40%

— Segunda-feira.

09:18.

TIMEOUT RATE +180%

— Deve estabilizar.

09:26.

Primeiras reclamações.

— Usuário sempre reclama antes de a coisa ficar normal.

09:34.

FAILED TRANSACTIONS: 417

O gerente pergunta:

— Precisamos abrir incidente?

Alguém responde:

— Vamos esperar mais dez minutos.

09:41.

Mais falhas.

09:46.

Mais reclamações.

09:49.

O sistema não está estabilizando.

Mas a mente coletiva ainda trabalha com uma convicção silenciosa:

“Provavelmente vai voltar ao normal.”

VWORP.

VWORP.

VWORP.

A TARDIS surge no corredor.

A porta abre.

O Doctor sai.

Olha para o painel.

Depois para os operadores.

— Há quanto tempo isso está piorando?

— Quarenta minutos.

— E o que vocês estão esperando?

— Que normalize.

O Doctor inclina a cabeça.

— Com base em quê?

Silêncio.

— Bem... normalmente normaliza.

Ele olha novamente para o gráfico.

— Ah.

Pausa.

— Então vocês estão usando o fato de ontem ter terminado bem como evidência de que hoje também terminará?

Mais silêncio.

— Isso é encantador.

Outra pausa.

— E profundamente perigoso.

Bem-vindo ao:



Normalcy Bias

Ou:

Viés de Normalidade

A tendência de subestimar sinais de perigo e assumir que, mesmo diante de eventos anormais, a situação provavelmente continuará parecida com aquilo que conhecemos.


🌀 Nossa TARDIS já viu muita coisa

Até aqui encontramos:

Swiss Cheese Model — várias defesas imperfeitas podem falhar juntas.

Normalization of Deviance — desvios podem virar rotina.

Hindsight Bias — depois do evento tudo parece óbvio.

Confirmation Bias — buscamos o que confirma nossas crenças.

Anchoring Bias — a primeira explicação pesa demais.

Groupthink — grupos convergem cedo demais.

Authority Gradient — hierarquia pode silenciar quem percebe risco.

Plan Continuation Bias — continuamos planos que já deveriam ser revistos.

Alarm Fatigue — alertas demais viram ruído.

Automation Bias — confiamos demais na máquina.

Drift Into Failure — pequenas decisões e perda de margem levam o sistema para a borda.

Diffusion of Responsibility — todo mundo vê e ninguém assume.

Agora o problema é diferente:

o perigo está visível, mas não parece real o bastante.


🧠 O que é Normalcy Bias?

Normalcy Bias é a tendência de acreditar que as coisas continuarão aproximadamente como sempre foram, mesmo quando surgem evidências de mudança séria.

O cérebro trabalha com modelos.

Ele aprende:

segunda-feira tem pico.

fila cresce.

depois cai.

Então, quando vê outra fila crescendo, tenta encaixar no padrão conhecido.

Isso é útil.

Sem esse mecanismo ficaríamos em pânico a cada pequena variação.

Mas em uma emergência real, essa mesma tendência pode atrasar resposta.

Representando:

SINAL ANORMAL
     ↓
“ISSO JÁ ACONTECEU”
     ↓
“DEVE PASSAR”
     ↓
ESPERA
     ↓
SINAL PIORA
     ↓
“AINDA DEVE PASSAR”
     ↓
ATRASO NA REAÇÃO

☕ Bellacosa Mainframe: “isso acontece no fechamento”

Imagine:

CPU: 91%

Operador:

— No fechamento sempre sobe.

Depois:

CPU: 95%
QUEUE: +120%

— Ainda dentro do esperado.

Depois:

CPU: 97%
QUEUE: +300%
TIMEOUTS: 870

— Deve ser o volume.

Talvez seja.

Mas a pergunta correta é:

“Em que ponto deixamos de estar dentro do comportamento conhecido?”

Normalcy Bias prospera quando não existe esse ponto definido.


📈 Baseline novamente salva o dia

Se você apenas pensa:

“isso costuma acontecer”

fica sujeito à memória.

Melhor:

BASELINE DE SEGUNDA-FEIRA

CPU normal: 72–84%
Queue normal: até 2.500
Timeout normal: < 20/min

Hoje:

CPU: 96%
Queue: 18.000
Timeout: 310/min

Agora fica difícil dizer:

“segunda-feira normal.”

Dados ajudam a quebrar o viés de normalidade.


🧠 “Já aconteceu antes” pode significar duas coisas

Frase:

“Já aconteceu antes.”

Pode significar:

  1. conhecemos esse comportamento e sabemos por que é seguro;

ou:

  1. sobrevivemos a ele antes e estamos presumindo que sobreviveremos novamente.

Essas coisas não são iguais.

A segunda se conecta diretamente com:

Normalization of Deviance.


🧩 Normalcy Bias versus Normalization of Deviance

Os nomes parecem parentes.

São.

Mas não são a mesma coisa.

Normalization of Deviance

O desvio se torna aceito ao longo do tempo.

“Esse warning é normal.”

Normalcy Bias

Diante de uma situação potencialmente grave, presumimos que ela não será tão grave e que a rotina continuará.

“Isso deve melhorar sozinho.”

Uma fala sobre:

o que aceitamos como normal.

A outra:

o que esperamos que continue normal.

As duas juntas podem ser perigosíssimas.


🚨 Exemplo

Warning diário.

Normalizamos.

Um dia o warning aparece com intensidade muito maior.

Normalcy Bias:

“É aquele warning de sempre.”

Mas não é mais o mesmo comportamento.

A familiaridade mascara mudança de escala.


👻 Easter Egg nº 1 — “Sempre volta”

Imagine uma estação espacial.

Luzes piscando.

Um técnico diz:

— A energia sempre volta.

Doctor:

— E voltou?

— Nas outras vezes.

— E desta?

— Ainda não.

— Então talvez devêssemos parar de usar as outras vezes como plano de recuperação.

Essa frase vale para produção.


🧠 Por que fazemos isso?

Porque admitir que existe emergência é caro.

Psicologicamente.

Organizacionalmente.

Operacionalmente.

Se dissermos:

“Temos incidente”

precisamos:

abrir War Room;

escalar;

interromper mudança;

avisar negócio;

talvez chamar diretor;

talvez perder SLA.

Esperar é mais confortável.

Talvez resolva sozinho.

Então Normalcy Bias pode ser reforçado por incentivos.


💰 Declarar incidente tem custo social

Imagine uma cultura onde abrir Severity 1 gera:

reuniões;

relatórios;

cobrança;

culpa;

PowerPoint para diretoria.

O que acontece?

Pessoas retardam declaração.

Não necessariamente conscientemente.

Pensam:

“Vamos esperar mais cinco minutos.”

Isso é perigoso.

A cultura tornou reconhecimento da realidade caro.


🚦 Better safe than embarrassed

Uma organização madura prefere:

falso positivo controlado;

a incidente reconhecido tarde.

Se alguém declara incidente e depois descobre que era menor:

ótimo.

Se for ridicularizado:

da próxima vez esperará.

Normalcy Bias ganha ajuda da cultura.


🧀 Swiss Cheese + Normalcy Bias

Imagine barreira:

detecção humana.

O alerta aparece.

Mas humano pensa:

“não é grave.”

Mais um buraco.

Depois barreira:

escalation.

Não escalamos porque:

“vai passar.”

Outro buraco.

Depois:

rollback.

Não rollbackamos porque:

“ainda deve estabilizar.”

Terceiro buraco.

O queijo vai alinhando.


🌀 Drift Into Failure prepara o terreno

Durante anos:

mais volume;

menos margem;

mais warning.

A operação vai se adaptando.

Então chega o dia em que sistema cruza a fronteira.

Mas todos ainda possuem modelo mental antigo:

“ele sempre aguenta.”

Isso é Normalcy Bias sustentado por memória histórica.

O sistema mudou.

O modelo mental não.


🧠 Model Drift humano

Falamos de drift em sistemas.

Mas também existe drift entre:

realidade;

modelo mental.

Exemplo:

2021:

batch aguenta 20 milhões.

2026:

processa 80 milhões.

Operador ainda pensa:

“Esse job é muito robusto.”

Talvez fosse.

Sob condições antigas.


🤖 Automation Bias piora

Dashboard:

OVERALL: GREEN

Usuários reclamam.

Normalcy Bias:

“provavelmente ruído.”

Automation Bias:

“o painel diz verde.”

Agora os dois se reforçam.

A realidade perde votação.


🔔 Alarm Fatigue também ajuda

Se alertas aparecem constantemente:

novo alerta grave parece só mais um.

Normalcy Bias diz:

“igual aos anteriores.”

Alarm Fatigue diz:

“não quero olhar.”

Excelente combinação.


👥 Groupthink cria normalidade coletiva

Uma pessoa diz:

— Não parece grave.

Outra:

— Concordo.

Terceira:

— Já vimos antes.

Agora o grupo constrói uma narrativa:

“está tudo sob controle.”

A pessoa mais preocupada começa a duvidar.

Groupthink transforma Normalcy Bias individual em percepção coletiva.


🪜 Authority Gradient silencia o desconfortável

Júnior:

— Isso está pior que o normal.

Sênior:

— Relaxa. Já vi isso várias vezes.

O júnior se cala.

Talvez esteja certo.

Authority Gradient protege o modelo mental antigo.


▶️ Plan Continuation Bias

Mudança em andamento.

Métricas pioram.

Equipe:

— Deve estabilizar depois do próximo passo.

Continua.

Normalcy Bias:

isso ainda não é emergência.

Plan Continuation Bias:

não pare.

E lá vamos nós.


👥 Diffusion of Responsibility

Todo mundo observa.

Ninguém declara incidente porque presume que:

se fosse realmente grave, alguém já teria declarado.

Perfeito.

Agora a ausência de ação das outras pessoas vira evidência de normalidade.

Esse mecanismo é assustadoramente elegante.


🧠 Social Proof em crise

Humano observa os outros.

Se ninguém corre:

talvez não haja fogo.

Isso é útil em situações ambíguas.

Mas se todos estão olhando uns para os outros:

o grupo inteiro pode ficar parado.


🔥 “Se fosse grave, alguém faria alguma coisa”

Essa frase deveria disparar alerta mental.

Porque talvez todas as pessoas estejam usando exatamente o mesmo raciocínio.


🏢 O caso do cheiro de queimado

Imagine data center.

Alguém sente cheiro de queimado.

Olha para outros.

Ninguém parece preocupado.

Pensa:

ar-condicionado.

Outro também sente.

Vê primeiro calmo.

Pensa:

deve ser normal.

Todos detectaram.

Nenhum validou.

Essa é uma versão perfeita.


💻 No COBOL: retorno estranho

Programa normalmente retorna:

REJECTS: 10–30

Hoje:

REJECTS: 490

Operador:

— Final de mês.

Depois:

REJECTS: 1.870

— Volume alto.

Pergunta:

qual limite separa explicação razoável de racionalização?

Precisa existir.


🚨 Thresholds de reconhecimento

Além de thresholds técnicos, precisamos de thresholds de decisão.

Exemplo:

IF REJECT RATE > 1%
    DECLARE DEGRADED

IF > 3%
    OPEN INCIDENT

IF > 5%
    STOP PROCESSING

Agora a mente não negocia infinitamente.


🧠 Precommitment retorna

Antes da crise:

definimos:

se X ocorrer, agimos.

Durante:

menos espaço para:

“vamos esperar.”

Precommitment combate Normalcy Bias.


🛑 Trigger Action Response Plan

Uma abordagem poderosa:

TRIGGER:
Queue > 10k por 5 min

ACTION:
abrir incidente

TRIGGER:
Timeout > 5%

ACTION:
HOLD mudança

TRIGGER:
Reconciliação != 0

ACTION:
STOP

O gatilho conecta diretamente a ação.

Reduz ambiguidade.


🧠 Não espere certeza absoluta

Outra armadilha.

Pessoas esperam:

“prova de desastre.”

Mas segurança trabalha com evidência suficiente.

Se esperar certeza total:

talvez já seja tarde.

A pergunta é:

“qual nível de incerteza aceitamos antes de agir?”


📊 Confidence Thresholds

Exemplo:

não sabemos causa.

Mas sabemos:

impacto subindo;

tendência negativa;

margem caindo.

Já pode ser suficiente para:

abrir incidente.

Você não precisa saber causa raiz para reconhecer emergência.


🔥 Incidente primeiro, explicação depois

Às vezes pessoas pensam:

“Não podemos declarar incidente porque ainda não sabemos a causa.”

Errado.

Incidente é sobre impacto e risco.

Causa vem depois.

Se prédio está queimando, não precisamos saber origem do fogo antes de evacuar.


☕ Bellacosa Mainframe: RC=00 e negócio quebrado

Job:

RC=0000

Tudo normal?

Talvez.

Mas reconciliação:

EXPECTED: 3.450.000
POSTED:   3.210.000

Normalcy Bias:

“talvez atraso de atualização.”

Investigue.

RC=00 só fala sobre o que o programa considerou sucesso.

Não sobre o universo.


🧠 Technical Normal vs Business Abnormal

Essa distinção é muito importante.

Infra:

normal.

Negócio:

anormal.

Se você escuta apenas infraestrutura, pode ignorar clientes.

Sempre valide impacto ponta a ponta.


📞 Usuário pode ser o primeiro sensor

Usuário reclama.

Dashboard verde.

Não presuma:

usuário está errado.

Ele pode estar enxergando uma camada não monitorada.

Normalcy Bias adora desqualificar sinal externo porque não cabe no painel.


🎯 Pergunta Bellacosa nº 1

Quando alguém disser:

“Deve normalizar.”

Pergunte:

“Qual evidência mostra tendência de normalização?”

Se resposta:

“normalmente acontece”

temos memória.

Não evidência atual.


🎯 Pergunta Bellacosa nº 2

Outra:

“Qual comportamento distinguiria ‘pico normal’ de ‘incidente começando’?”

Defina.


🎯 Pergunta Bellacosa nº 3

Outra:

“Quanto tempo estamos dispostos a esperar antes de agir?”

Sem isso:

espera vira infinita.


🎯 Pergunta Bellacosa nº 4

E:

“Se isso piorar duas vezes, nossa decisão muda?”

Planeje antes.


🧪 Passo a passo para combater Normalcy Bias

Passo 1 — Tenha baseline objetivo

Não dependa de sensação.


Passo 2 — Defina triggers claros

Quando deixa de ser normal?


Passo 3 — Diferencie variação de tendência

Um pico isolado pode ser ruído.

Três métricas piorando juntas contam história.


Passo 4 — Defina tempo de observação

“Esperar” precisa ter relógio.

Exemplo:

OBSERVE FOR 5 MIN
THEN REASSESS

Não:

“vamos vendo.”


Passo 5 — Use escalonamento progressivo

Warning.

Degraded.

Incident.

Critical.


Passo 6 — Permita declaração precoce

Sem punição social.


Passo 7 — Use fresh eyes

Pessoa nova pode perceber que o “normal” já mudou.


Passo 8 — Compare com cenários históricos corretos

Não apenas:

“já aconteceu.”

Pergunte:

“nas mesmas condições?”


Passo 9 — Registre decisões

Por que optamos por esperar?

Qual sinal mudaria isso?


Passo 10 — Faça retrospectiva sobre atrasos de reconhecimento

Não apenas causa raiz.

Pergunte:

quando tivemos informação suficiente para perceber que era incidente?


🕰️ Time to Declare

Podemos medir:

MTTD.

MTTR.

Mas também:

Time to Declare

Quanto tempo entre sinais suficientes e declaração formal?

Exemplo:

09:10 primeiro sinal forte
09:47 incidente declarado

37 minutos.

Talvez recuperação tenha levado 20.

Então maior problema foi reconhecimento tardio.


🧠 Recognition Latency

Atraso cognitivo importa.

Sistema pode detectar às 09:10.

Humano reconhecer às 09:40.

Organização agir às 09:50.

Três tempos diferentes.


📊 Timeline cognitiva novamente

09:04 metric abnormal
09:11 queue growing
09:18 timeouts
09:26 users report
09:34 failures
09:49 incident declared

Pergunte:

em qual ponto já tínhamos evidência suficiente?

Isso produz aprendizado.


🧠 Hindsight Bias cuidado!

Depois:

— Era claramente incidente às 09:11.

Talvez.

Ou talvez não.

Não use futuro para julgar.

Mas podemos perguntar:

quais critérios teriam permitido reconhecer antes?

Isso transforma retrospectiva em engenharia.


🏥 Normalcy Bias fora da TI

Esse viés aparece em desastres naturais, emergências e situações em que pessoas demoram a reagir porque eventos extremos parecem improváveis.

É justamente por isso que alertas públicos precisam ser:

claros;

acionáveis;

específicos.

“Pode haver risco” é diferente de:

“Evacue agora.”

Em TI também.


🚨 Mensagens vagas alimentam viés

WARNING:
SYSTEM MAY BE DEGRADED

Pessoa:

— Talvez não.

Melhor:

PAYMENT FAILURE RATE 12%
NORMAL < 0.2%
IMPACT CONFIRMED
OPEN INCIDENT NOW

Ação clara.


🧠 Linguagem importa

Evite:

“parece alguma instabilidade.”

Se dados mostram:

35% das transações falhando,

diga isso.

Eufemismo pode reforçar Normalcy Bias.


🏢 Cultura do “não dramatiza”

Algumas equipes valorizam calma.

Ótimo.

Mas calma não significa minimizar.

Você pode dizer:

“Temos impacto crítico confirmado”

sem pânico.

Precisão não é dramatização.


🧯 British calm versus denial

Aqui nosso humor britânico fica perfeito.

Existem duas atitudes:

Calma britânica:

“O prédio está pegando fogo. Vamos evacuar de forma ordenada.”

Normalcy Bias:

“Há apenas uma quantidade incomum de fumaça. Talvez seja o chá.”

Não confunda compostura com negação.


👻 Easter Egg nº 2 — chá e Daleks

Companion:

— Doctor, há Daleks na recepção.

— Quantos?

— Quatorze.

— E o segurança?

— Disse que provavelmente é uma convenção.

Doctor:

— Normalcy Bias.

— O quê?

— Depois explico. Corra.


🔁 Continuous Reassessment

Uma prática central:

reavalie.

Se decidiu:

esperar cinco minutos,

depois de cinco:

nova decisão.

Não deixe decisão temporária virar permanente.


⏰ Timer explícito

Use:

DECISION:
Observe.

EXPIRES:
09:30.

Às 09:30:

decida novamente.

Isso impede inércia.


🧠 “No decision” é uma decisão

Esperar também é ação.

Ela possui risco.

Pergunte:

qual é o custo de esperar?

Às vezes esperar é correto.

Mas deve ser escolha consciente.


📉 Cost of Delay

Se fila cresce 1.000/minuto:

esperar 10 minutos:

+10.000 backlog.

O tempo possui custo mensurável.

Isso ajuda a combater:

“vamos esperar mais.”


💻 COBOL e batches

Batch começa atrasar.

Ainda dentro da janela.

Normalcy Bias:

dá tempo.

Mas calcule:

ritmo atual.

tempo restante.

volume restante.

Agora talvez descubra matematicamente que não dá.

Projeção supera esperança.


📈 Forecast operacional

Em vez de:

“ainda está rodando.”

Use:

CURRENT RATE: 20k/min
REMAINING: 2M
ESTIMATED END: 05:12
SLA: 04:00

Agora futuro provável fica visível.


🤖 IA pode ajudar — e atrapalhar

IA pode detectar anomalias.

Ótimo.

Mas Automation Bias:

IA diz normal.

Ou Normalcy Bias:

IA não sinalizou, então não é incidente.

Use IA como mais uma fonte.

Não substituto de realidade.


🔍 Anomaly Detection não é oráculo

Se modelo treinou com histórico onde sistema já estava degradando, pode considerar degradação “normal”.

Interessante, não?

O modelo também pode normalizar desvio estatisticamente.

Por isso baseline precisa ser saudável, não apenas frequente.


🧠 “Normal” estatístico versus “normal” seguro

Esse é um ponto magnífico.

Se sistema vive 95% do tempo com warning:

estatisticamente:

warning é normal.

Operacionalmente:

talvez seja péssimo.

Não confunda frequência com segurança.


🧬 Regeneração organizacional

Como uma organização se regenera depois de identificar Normalcy Bias?

Ela:

define baseline;

define gatilhos;

mede tempo de reconhecimento;

treina escalonamento;

reduz custo social de declarar incidentes;

usa dados objetivos;

cria temporizadores;

faz reavaliação periódica;

valoriza sinais externos;

e ensina:

“Familiar não significa seguro.”


📋 Checklist anti-Normalcy Bias

Quando algo parece estranho:

[ ] Isso está realmente dentro do baseline?

[ ] A tendência está melhorando ou piorando?

[ ] Estamos usando memória ou dados?

[ ] Condições são iguais às vezes anteriores?

[ ] Existe impacto confirmado?

[ ] Quanto custa esperar?

[ ] Qual é nosso trigger de incidente?

[ ] Quando reavaliamos?

[ ] Alguém está minimizando sem evidência?

[ ] O silêncio do grupo está sendo tratado como prova?

[ ] Se isso dobrar, o que faremos?

[ ] Já deveríamos estar agindo?

📓 Diário do Doctor

Se guardar apenas algumas ideias desta viagem, guarde estas:

Normalcy Bias é a tendência de presumir que a realidade continuará parecida com o normal conhecido, mesmo diante de sinais anormais.

“Já aconteceu antes” não prova que a situação atual seja segura.

Familiaridade pode atrasar reconhecimento de emergência.

Baseline objetivo é melhor que memória.

Esperar precisa ter prazo e critério.

Não é necessário conhecer causa raiz para declarar incidente.

Automation Bias e Alarm Fatigue podem reforçar Normalcy Bias.

Groupthink e Authority Gradient podem transformar minimização individual em consenso.

Normalization of Deviance muda o que chamamos de normal.

Drift Into Failure muda o sistema enquanto nosso modelo mental permanece antigo.

E principalmente:

O fato de o mundo ter voltado ao normal ontem não obriga o mundo a repetir a gentileza hoje.


🕰️ De volta às 09:04

A TARDIS retorna.

Primeiro alerta:

PAYMENT RESPONSE TIME ABOVE BASELINE

Operador:

— Deve ser pico.

Nosso programador responde:

— Pode ser. Vamos comparar com baseline.

09:08.

Fila 60% acima do normal.

09:10.

Timeout 4%.

Trigger definido:

TIMEOUT > 3%
FOR 3 MIN
→ DECLARE DEGRADED

09:13.

Ainda 4,5%.

Ele diz:

— Estamos em degraded.

O gerente pergunta:

— Já?

— Sim. O critério foi definido antes.

09:16.

Impacto aumenta.

Trigger:

FAILURE RATE > 5%
→ OPEN INCIDENT

Incidente aberto.

Owner atribuído.

MQ investigado.

Consumer degradado.

09:24.

Causa encontrada.

09:29.

Serviço restaurado.

Backlog controlado.

Nenhuma crise de duas horas.

O gerente pergunta:

— Não abrimos cedo demais?

Nosso programador olha para o gráfico.

— Talvez.

— E isso não é ruim?

O Doctor responde antes dele:

— Comparado a quê?

Silêncio.

— Ao privilégio de descobrir tarde demais que deveriam ter aberto antes?

O gerente sorri.

— Justo.


🥚 Easter Egg final

Horas depois surge:

BELLACOSA.BIAS(NORMAL)

Dentro:

       IF CURRENT-STATE NOT = BASELINE
           PERFORM INVESTIGATE
       END-IF.

       IF ONLY-REASON-TO-WAIT =
          'IT-USUALLY-GETS-BETTER'
           PERFORM SET-TIMER
       END-IF.

       IF IMPACT-CONFIRMED
           PERFORM ACT
       END-IF.

Comentário:

* FAMILIAR IS NOT THE SAME AS SAFE.

Outro:

* HOPE IS NOT A MONITORING STRATEGY.

E, naturalmente:

* BAD WOLF LEFT BEFORE THE ALARM.

Nosso jovem fecha o membro.

Pouco depois alguém diz:

— Esse erro costuma sumir sozinho.

Ele responde:

— Ótimo.

— Ótimo?

— Sim. Então sabemos o que esperar.

Abre um timer.

— Se não sumir em cinco minutos, sabemos que não estamos mais no caso normal.

Essa resposta é simples.

Mas representa uma mudança profunda.

Ele não rejeitou experiência.

Transformou experiência em critério testável.

Não entrou em pânico.

Também não negou realidade.

Em algum lugar:

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

No quadro permanece uma frase:

Calma é observar os fatos sem pânico. Normalcy Bias é observar os fatos e esperar que eles parem de ser fatos.

☕🌀

Next stop: Survivorship Bias — quando estudamos apenas os sistemas, projetos e equipes que sobreviveram e esquecemos de perguntar quantos fizeram exatamente a mesma coisa e desapareceram no caminho.

segunda-feira, 10 de janeiro de 2011

ECHELON — O Fantasma que Escutava o Mundo

 

Bellacosa Mainframe e echelon o fantasma que executava o mundo

☕ Um Café no Bellacosa Mainframe

ECHELON — O Fantasma que Escutava o Mundo

Memórias de um Hackerativismo Inocente, de uma Internet Livre e da Máquina que Parecia Ouvir Tudo

"Houve um tempo em que bastava escrever uma palavra em um canal de IRC para alguém perguntar: 'Será que o Echelon acabou de registrar isso?'"

No final da década de 1990 existia um tipo de internet que praticamente desapareceu.

Não havia redes sociais.

Não existia Facebook.

Não havia WhatsApp.

O Google ainda engatinhava.

A maioria das pessoas usava ICQ, mIRC, IRC, listas de discussão, Usenet, e-mail e páginas pessoais hospedadas no Geocities.

Era uma internet mais lenta.

Mas, curiosamente, era uma internet muito mais misteriosa.

Foi nessa época que uma palavra começou a circular quase como uma entidade sobrenatural:

ECHELON.

Para alguns era apenas um sistema militar.

Para outros, era o maior sistema de espionagem já criado.

Havia quem acreditasse que qualquer e-mail contendo determinadas palavras era automaticamente lido por agentes da NSA.

E existiam milhares de jovens hackers, curiosos, administradores de BBS e usuários de IRC que resolveram brincar justamente com essa possibilidade.

Você mesmo comentou que participou, em 1999, da chamada Brigada Anti-Echelon, quando grupos ao redor do mundo combinavam "a palavra do dia" e inundavam IRCs, e-mails e listas de discussão com termos considerados sensíveis para gerar milhares de falsos positivos. É uma lembrança muito representativa daquele momento histórico: uma mistura de ativismo digital, curiosidade técnica e humor típico da internet daquela época.

Hoje aquilo parece quase folclore.

Mas, durante alguns anos, parecia que estávamos vivendo dentro de um romance de espionagem.


O nascimento de um gigante invisível

A história do Echelon não começa com computadores.

Ela começa muito antes.

Na Segunda Guerra Mundial.

Enquanto Alan Turing ajudava a quebrar a máquina Enigma, ingleses e americanos perceberam algo revolucionário:

Informação vale mais que bombas.

Depois da guerra, essa cooperação continuou.

Em 1946 surgiu o acordo secreto UKUSA, reunindo inicialmente Estados Unidos e Reino Unido e, posteriormente, Canadá, Austrália e Nova Zelândia — o grupo que mais tarde ficou conhecido como Five Eyes. (Wikipedia)

O objetivo era simples:

Compartilhar inteligência.

Interceptar comunicações.

Dividir o planeta em áreas de monitoramento.

Décadas depois surgiria aquilo que receberia o codinome:

ECHELON.


A Guerra Fria mudou tudo

Durante os anos 60 e 70, quase toda comunicação internacional importante passava por satélites.

Isso facilitava enormemente a interceptação.

Em vez de grampear milhões de telefones individualmente, bastava instalar enormes antenas parabólicas apontadas para satélites de telecomunicações.

Foi exatamente isso que aconteceu.

Bases como:

  • Menwith Hill (Reino Unido)

  • Yakima (EUA)

  • Pine Gap (Austrália)

  • Waihopai (Nova Zelândia)

passaram a capturar enormes volumes de comunicações internacionais. (Duncan Campbell)

As famosas cúpulas brancas (radomes) vistas em fotografias protegiam gigantescas antenas direcionais.

Pareciam cenários de filme de ficção científica.

E eram reais.


Como o ECHELON funcionava?

Ao contrário do que muitos imaginavam, ele não era um "supercomputador único".

Era uma enorme rede distribuída.

Imagine um funil.

Milhões de comunicações entram.

O sistema tenta identificar quais podem ter interesse.

Entre elas:

  • ligações telefônicas

  • fax

  • rádio

  • satélite

  • telex

  • posteriormente e-mails

Tudo isso era processado por sistemas automáticos de SIGINT (Signals Intelligence). (Telepolis)


As famosas palavras-chave

Aqui nasceu a maior lenda da internet dos anos 90.

Dizia-se que existia uma lista secreta contendo milhares de palavras.

Exemplos imaginados pela comunidade da época:

  • bomb

  • plutonium

  • missile

  • anthrax

  • assassination

  • nuclear

Se qualquer comunicação contivesse essas palavras...

O sistema destacaria aquela mensagem.

Na prática, havia mecanismos automatizados de filtragem por critérios definidos pelas agências de inteligência, mas a ideia popular de uma simples "lista mágica" que acionava automaticamente agentes humanos foi bastante exagerada. (Telepolis)

Mesmo assim...

A imaginação coletiva fez o resto.


A internet respondeu com humor

Foi aí que nasceu um movimento curioso.

A chamada Anti-Echelon Brigade.

Milhares de usuários passaram a colocar listas enormes de palavras "suspeitas" em:

  • assinaturas de e-mail

  • páginas pessoais

  • IRC

  • newsletters

  • fóruns

O objetivo?

Gerar tanto ruído que o sistema ficasse sobrecarregado.

Hoje sabemos que isso dificilmente teria impacto operacional significativo.

Mas a ideia era brilhante como forma de protesto simbólico.

Era uma espécie de "negação de serviço" filosófica.


Eu lembro daquela internet...

Se você viveu aquela época...

Talvez também se lembre de coisas como:

ICQ fazendo "Uh-oh!"

mIRC colorido.

Scripts em TCL.

Eggdrop.

Bots.

BNC.

XDCC.

Napster.

IRCnet.

Brasnet.

DALnet.

EFnet.

Undernet.

E, claro...

As intermináveis discussões sobre:

"Será que o Echelon está lendo isso?"

Era quase um personagem invisível.


Quando a conspiração encontrou a realidade

Durante muitos anos governos simplesmente negavam tudo.

Até que jornalistas começaram a juntar peças.

O britânico Duncan Campbell foi um dos primeiros a investigar publicamente o sistema, ainda nos anos 1980. Depois vieram pesquisas como o livro Secret Power, de Nicky Hager, e estudos para o Parlamento Europeu, que consolidaram o debate público. (Duncan Campbell)

Durante anos...

Muita gente dizia:

"Isso é teoria da conspiração."

Depois...

Vieram documentos.

Relatórios.

Investigações.

E, em 2013, as revelações de Edward Snowden ampliaram a compreensão pública sobre a vigilância eletrônica em larga escala, mostrando programas modernos da NSA e de seus parceiros e reforçando que sistemas de interceptação global realmente existiam, embora nem sempre exatamente como descritos pelas lendas urbanas. (Wikipédia)

Foi um daqueles raros momentos em que parte do que era tratado como conspiração revelou ter um núcleo real — ainda que muitos detalhes populares fossem incorretos ou exagerados.


O maior mito

O maior mito era acreditar que:

"Um agente da NSA lia todos os e-mails."

Isso nunca fez sentido.

Nem tecnicamente.

Nem operacionalmente.

O verdadeiro poder estava na automação.

Os computadores faziam a triagem.

Os analistas humanos examinavam apenas uma pequena fração do material considerado relevante.


Easter Eggs da época

Algumas curiosidades quase esquecidas:

🥚 Muitos sites tinham um botão chamado:

"Anti-Echelon"

que automaticamente adicionava centenas de palavras-chave no rodapé.


🥚 Existiam plugins para Outlook.


🥚 Alguns assinavam TODOS os e-mails com dezenas de termos militares.


🥚 Havia até listas atualizadas com a "palavra da semana".


🥚 Alguns provedores proibiam esse tipo de assinatura.


🥚 No IRC existiam bots que inseriam automaticamente listas enormes de palavras em canais públicos.


A evolução

O mundo mudou.

Os satélites deixaram de ser o principal meio de comunicação.

Vieram:

fibra óptica

Internet

Cloud Computing

Smartphones

Redes sociais

Streaming

Hoje grande parte da inteligência eletrônica envolve muito mais do que comunicações via satélite: cabos submarinos, infraestrutura de internet, metadados, cooperação internacional e, em alguns casos, dados obtidos legalmente por diferentes mecanismos previstos em cada país. (Wikipedia)

O espírito do ECHELON evoluiu.

O nome ficou famoso.

Mas a tecnologia seguiu adiante.


O legado

O curioso é que ECHELON acabou se tornando muito maior como símbolo do que como nome técnico.

Hoje falamos muito mais sobre:

  • privacidade

  • criptografia ponta a ponta

  • VPN

  • Signal

  • Matrix

  • Tor

  • proteção de metadados

Esses debates nasceram, em parte, porque histórias como a do ECHELON despertaram a atenção do público para o poder da vigilância eletrônica.


Bellacosa Memories

Às vezes sinto saudades daquela internet.

Não porque fosse melhor.

Ela era lenta.

Barulhenta.

Caótica.

Caía quando alguém levantava o telefone.

Mas havia algo mágico.

Éramos exploradores.

Entrávamos em canais obscuros do IRC apenas para conversar com pessoas do outro lado do planeta.

Aprendíamos TCP/IP lendo RFCs.

Montávamos servidores em casa.

Descobríamos Linux compilando kernels.

E, entre uma conversa e outra, alguém aparecia dizendo:

"A palavra da semana do Echelon saiu."

Então dezenas de pessoas começavam a repetir aquelas palavras em canais públicos.

Hoje sabemos que provavelmente aquilo jamais abalou um sistema de inteligência global.

Mas talvez esse nunca tenha sido o verdadeiro objetivo.

O que importava era a mensagem.

Era uma geração inteira dizendo:

"A internet também pertence aos seus usuários."

Talvez tenha sido um gesto ingênuo.

Talvez tenha sido inútil.

Mas também foi um dos primeiros movimentos espontâneos em defesa da privacidade digital, quando a maioria das pessoas sequer imaginava que, décadas depois, carregaria no bolso um smartphone produzindo continuamente dados sobre localização, hábitos, contatos e comunicações.

O ECHELON desapareceu das manchetes.

Mas a discussão que ele iniciou continua viva.

E talvez esse seja o seu maior legado.

Porque algumas máquinas envelhecem.

Alguns programas são aposentados.

Mas uma pergunta continua ecoando desde aqueles dias de IRC, ICQ e modems de 56 kbps:

"Quem está ouvindo?"

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...