☕ 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

Mostrar mensagens com a etiqueta Sistemas Complexos. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Sistemas Complexos. Mostrar todas as mensagens

sexta-feira, 4 de fevereiro de 2022

🖥️📚 Michael Crichton: o arquiteto de sistemas que avisou antes do crash

Bellacosa Mainframe apresenta Michael Crichton


🖥️⚠️ Os perigos da tecnologia no século XXI: um alerta em modo Michael Crichton

No século XXI, a tecnologia deixou de ser ferramenta e passou a ser infraestrutura invisível. Inspirado em Michael Crichton, o perigo não está nas máquinas em si, mas na confiança cega que depositamos nelas. Sistemas complexos funcionam perfeitamente… até que uma variável ignorada entra em produção.

Automação excessiva, inteligência artificial opaca, algoritmos que decidem crédito, saúde e liberdade: tudo isso roda como batch jobs sociais sem operador humano atento. Quando algo falha, ninguém sabe onde está o log, quem escreveu o código ou quem aprovou o go-live. Crichton já avisava: complexidade cresce mais rápido que nossa capacidade de controle.

Outro risco é o efeito cascata. No mundo hiperconectado, uma falha local vira incidente global. Um bug, um modelo mal treinado ou uma decisão algorítmica errada se espalha como replicação fora de controle. O humano, confortável demais, vira usuário passivo — incapaz de intervir quando o sistema sai do script.

A lição Bellacosa é direta: tecnologia sem governança é acidente anunciado. Precisamos de testes, limites, redundância e responsabilidade humana. Porque, como em qualquer ambiente crítico, o maior risco não é o sistema cair — é ninguém saber como desligá-lo. 🖥️


🖥️📚 Michael Crichton: o arquiteto de sistemas que avisou antes do crash



🔹 Quem foi Michael Crichton (para quem vive de sistema crítico)

John Michael Crichton (1942–2008) foi médico formado em Harvard, escritor best-seller e roteirista/diretor de cinema. Para o mainframer, Crichton é aquele analista de risco que chega antes do go-live e diz: “isso funciona… até não funcionar mais”.

Ele escreveu sobre tecnologia não como utopia, mas como sistema complexo, cheio de dependências ocultas, falhas humanas e consequências não previstas. Em resumo: Crichton entendia TI como ambiente produtivo.



🔹 Biografia (timeline estilo batch)

  • 🗓️ 1942 – Nasce em Chicago

  • 🎓 Harvard: medicina, biologia, literatura

  • 🖊️ Anos 60 – Escreve sob pseudônimos para pagar contas

  • 📚 1969The Andromeda Strain vira fenômeno

  • 🎬 Anos 70–90 – Livros viram filmes e séries

  • ⚰️ 2008 – Morre deixando um legado de alertas tecnológicos


🔹 Carreira (ou: incidentes previstos em produção)

  • The Andromeda Strain – falha de contenção biológica

  • Westworld – automação fora de controle

  • Jurassic Park – sistema complexo sem rollback

  • Timeline – latência temporal catastrófica

  • Prey – nanotec, swarm e perda de controle

📌 Mainframe insight: Crichton escrevia pós-mortem antes do incidente acontecer.


🔹 Filosofia Crichtoniana

“Tecnologia não falha sozinha. Pessoas falham usando tecnologia.”

Ele antecipou:

  • Overconfidence em automação

  • Falta de testes de stress

  • Dependência cega de sistemas

  • Gestão ignorando especialistas técnicos

Todo mainframer já viu esse filme.


🔹 Curiosidades & fofocas de datacenter

  • Crichton tinha 2,06m — parecia um rack humano

  • Criou ER, série que moldou TV moderna

  • Odiava o rótulo “tecno-thriller”

  • Brigava publicamente com cientistas quando achava hype demais

🤫 Fofoquice: Crichton era chamado de “pessimista”. Ele chamava de engenharia de confiabilidade.


🔹 Dicas de leitura (ordem recomendada)

  1. The Andromeda Strain – isolamento e protocolos

  2. Jurassic Park – caos e sistemas complexos

  3. Prey – microserviços biológicos

  4. Westworld – automação sem governança


🔹 Comentário final Bellacosa

Michael Crichton é leitura essencial para profissionais que mantêm sistemas críticos funcionando apesar da arrogância gerencial. Ele ensina que complexidade não perdoa improviso e que toda inovação precisa de rollback, logs e humildade.

🖥️ Se você já segurou um incidente às 3h da manhã, Crichton já escreveu sobre você.
MAINFRAME MODE: ONLINE.


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.


terça-feira, 9 de novembro de 2010

Drift Into Failure: Doctor Who, COBOL e o Dia em que Ninguém Quebrou o Sistema — Mas Ele Quebrou Mesmo Assim

Bellacosa Mainframe drift into failure

☕ Um Café no Bellacosa Mainframe

Drift Into Failure: Doctor Who, COBOL e o Dia em que Ninguém Quebrou o Sistema — Mas Ele Quebrou Mesmo Assim

Uma viagem pela TARDIS dos incidentes para entender como sistemas complexos derivam lentamente para o desastre enquanto cada pequena decisão continua parecendo perfeitamente razoável

03:14.

Produção funcionando.

Nenhum ABEND importante.

Nenhum incêndio.

Nenhum gerente correndo pelo corredor.

Nenhum operador gritando:

— PAREM TUDO!

Na verdade, nada parece particularmente dramático.

Um job demora cinco minutos a mais.

Um alerta conhecido aparece.

Um procedimento recebe mais uma pequena exceção.

Um analista resolve uma inconsistência manualmente.

Um parâmetro é aumentado.

Uma janela operacional fica dez minutos menor.

Uma validação é adiada para a manhã.

Um funcionário experiente se aposenta e ninguém documenta completamente aquilo que ele sabia.

Um servidor recebe mais carga.

Um batch ganha mais arquivos.

Um relatório deixa de ser conferido porque ficou grande demais.

Nada quebra.

Dia seguinte.

Tudo funciona novamente.

Semana seguinte.

Mais uma pequena adaptação.

Mês seguinte.

Outra.

Ano seguinte.

A operação continua.

Até que, numa terça-feira perfeitamente comum:

03:17:42

SYSTEM STATUS: DEGRADED

03:18:01

QUEUE DEPTH: CRITICAL

03:18:14

TRANSACTION FAILURES

03:18:29

RECONCILIATION ERROR

03:19:03

INCIDENT DECLARED

A War Room abre.

E alguém faz a pergunta inevitável:

— Quem mudou alguma coisa?

Nesse momento...

VWORP.

VWORP.

VWORP.

A TARDIS aparece ao lado do console.

A porta abre.

O Doctor sai.

Olha para os logs.

Olha para o histórico.

Olha para a equipe.

— Quando vocês acham que esse incidente começou?

O gerente aponta:

— Às 03:17.

O Doctor balança a cabeça.

— Não.

— Às 03:14?

— Também não.

O programador COBOL iniciante pergunta:

— Então quando?

O Doctor abre uma timeline.

Ela começa três anos antes.

— Talvez aqui.

Silêncio.

— Ou aqui.

Volta mais seis meses.

— Ou talvez aqui.

O jovem arregala os olhos.

— Mas não aconteceu nada nesses dias.

O Doctor sorri.

— Exatamente.

Bem-vindo ao:



Drift Into Failure

Ou, numa tradução livre:

Deriva em Direção à Falha

O fenômeno pelo qual sistemas sociotécnicos complexos podem gradualmente aproximar-se de condições perigosas sem que exista necessariamente uma única decisão claramente irresponsável, um único culpado ou um instante mágico em que alguém “quebrou tudo”.


🌀 A TARDIS precisa viajar muito mais longe desta vez

Nos episódios anteriores nós investigávamos eventos relativamente identificáveis.

Uma decisão.

Um alerta.

Uma hipótese.

Uma autoridade.

Um plano.

Agora precisamos mudar a escala.

Drift Into Failure exige olhar não apenas para:

o que alguém fez ontem

mas para:

como o sistema evoluiu durante meses ou anos.

Essa perspectiva tem raízes importantes no trabalho do pesquisador dinamarquês Jens Rasmussen, especialmente em seu artigo de 1997, Risk Management in a Dynamic Society: A Modelling Problem. Rasmussen argumentava que segurança em sistemas complexos precisa ser estudada como um problema envolvendo múltiplos níveis da sociedade e da organização, porque decisões e pressões em diferentes níveis interagem para produzir o comportamento real do sistema. (ScienceDirect)

Décadas depois, ideias dessa tradição sistêmica seriam fortemente associadas à expressão Drift Into Failure, popularizada por Sidney Dekker ao discutir por que buscar apenas componentes “quebrados” ou indivíduos culpados é insuficiente para compreender falhas em sistemas complexos. Trabalhos posteriores descrevem essa deriva como uma erosão gradual de restrições e margens, à medida que adaptações locais vão sendo racionalizadas e aceitas. (ScienceDirect)

Em outras palavras:

O desastre pode ser uma trajetória.

Não apenas um evento.


🗺️ O mapa de Rasmussen

Imagine uma organização funcionando dentro de um espaço.

Existem diferentes forças empurrando suas decisões.

Uma delas:

Segurança

Não podemos ultrapassar determinada fronteira.

Outra:

Economia

Precisamos reduzir custos.

Outra:

Carga de trabalho

Precisamos realizar o trabalho sem exigir esforço impossível das pessoas.

Uma organização saudável tenta permanecer dentro desse espaço.

Mas existe pressão constante.

Custos.

Prazos.

Concorrência.

SLA.

Projetos.

Produtividade.

Clientes.

Metas.

Recursos limitados.

Rasmussen mostrou justamente a importância de observar essas pressões e restrições como parte de um sistema dinâmico de controle, em vez de estudar cada ator isoladamente. (ScienceDirect)

Podemos imaginar:

             FRONTEIRA ECONÔMICA
          “PRECISAMOS SER VIÁVEIS”
                    ↓

        ÁREA NORMAL DE OPERAÇÃO

PRESSÃO  →                      ←  PRESSÃO

                    ↑
             FRONTEIRA DE
                SEGURANÇA

O problema?

A organização não fica parada.

Ela se move.


🧭 Drift significa deriva

A palavra inglesa drift é maravilhosa neste contexto.

Não significa necessariamente:

correr em direção ao precipício.

Significa algo mais sutil:

derivar.

Como um barco.

O vento sopra um pouco.

A corrente empurra outro pouco.

O navegador corrige.

Depois relaxa.

Outra corrente.

Mais alguns metros.

Horas depois, o barco está quilômetros longe da rota original.

Não houve:

“Agora navegaremos para o lugar errado.”

Houve pequenas adaptações.

Isso é Drift Into Failure.


☕ Bellacosa Mainframe: o batch das duas da manhã

Imagine um batch crítico.

Quando foi criado:

START: 00:00
END:   01:30

AVAILABLE WINDOW:
4 HOURS

Excelente.

Margem enorme.

Cinco anos depois:

mais clientes.

Mais arquivos.

Mais regras.

Mais SQL.

Agora:

START: 00:00
END:   02:05

Ainda funciona.

Ano seguinte:

END: 02:24

Outro:

END: 02:41

Outro:

END: 03:02

A abertura é às 04:00.

Alguém pergunta:

— Temos problema?

Resposta:

— Não. Ainda termina antes da abertura.

Tecnicamente correto.

Mas observe o que desapareceu:

margem.


🧯 Margem é invisível até precisarmos dela

Quando tudo funciona:

30 minutos de margem parecem desperdício.

Quando algo falha:

30 minutos podem ser a diferença entre:

restartar tranquilamente;

e declarar incidente.

Essa é uma característica central da deriva.

Organizações tendem a otimizar aquilo que enxergam.

Custo.

Tempo.

Capacidade.

Mas segurança frequentemente depende de:

folga;

redundância;

capacidade ociosa;

tempo disponível;

pessoas extras;

alternativas.

Tudo isso parece ineficiente enquanto nada acontece.


💰 Eficiência pode empurrar contra segurança

Imagine:

“Por que temos dois analistas nesse turno?”

Corta um.

Nada acontece.

Depois:

“Por que temos esse relatório manual?”

Remove.

Nada acontece.

“Por que mantemos 30% de capacidade livre?”

Reduz.

Nada acontece.

“Por que precisamos dessa validação extra?”

Simplifica.

Nada acontece.

Cada decisão isoladamente possui justificativa.

Talvez até excelente justificativa.

Mas juntas podem mover a organização.

Centímetro.

Por centímetro.

Em direção à fronteira.


🧀 Swiss Cheese encontra Drift Into Failure

Agora nossa primeira teoria retorna.

Swiss Cheese dizia:

cada barreira possui buracos.

Drift Into Failure acrescenta:

os buracos podem mudar ao longo do tempo.

Uma barreira começa forte.

Depois:

menos pessoas.

Menos testes.

Mais exceções.

Mais pressão.

Mais automação sem revisão.

Mais alerts ignorados.

A fatia vai ficando fina.

Então:

ANO 1
████████○██████

ANO 3
███○████○██○██

ANO 5
██○██○█○██○○█

Até um dia os caminhos se alinham.


🌀 Normalization of Deviance é praticamente vizinha

Esse é um casamento natural.

Pequeno desvio.

Nada acontece.

Logo, parece seguro.

Repete.

O limite aceitável se move.

Isso alimenta a deriva.

Exemplo:

dataset chega a 80%.

Depois 85%.

Depois 90%.

Nada acontece.

Agora 90 virou normal.

A organização não decidiu formalmente:

“Vamos operar perigosamente.”

Ela apenas atualizou informalmente aquilo que chama de normal.

Essa erosão gradual de restrições é uma das formas pelas quais abordagens sistêmicas descrevem a trajetória em direção à falha. (ScienceDirect)


🚨 Alarm Fatigue entra no barco

Começamos com:

10 alertas importantes.

Depois:

4.000.

Operadores começam a filtrar.

Primeiro mentalmente.

Depois ferramentas.

Depois silenciam alguns.

Essa adaptação é racional.

Ninguém consegue processar milhares de alarmes.

Mas talvez um importante controle de segurança tenha sido progressivamente degradado.

Novamente:

não houve uma reunião chamada:

“Projeto oficial para diminuir nossa capacidade de detectar incidentes.”

Aconteceu organicamente.

Drift.


🤖 Automation Bias também empurra

Automação funciona.

Primeira semana:

humano confere tudo.

Após seis meses:

confere algumas coisas.

Ano seguinte:

olha rapidamente.

Depois:

autoapprove.

Nenhum incidente.

Cada passo parece justificado pelos resultados anteriores.

Agora a organização depende da automação de forma muito maior que originalmente projetado.

Derivou.


⚓ Anchoring Bias conserva velhos mapas

Outro fenômeno.

Arquitetura mudou.

Volume mudou.

Usuários mudaram.

Mas continuamos ancorados em premissas antigas.

“Esse job aguenta.”

Baseado em testes de quando processava 5 milhões.

Agora:

80 milhões.

A âncora psicológica fica.

O sistema real deriva.


🔎 Confirmation Bias protege a trajetória

A equipe acredita:

nossa arquitetura é robusta.

Cada dia sem incidente confirma.

Warnings são reinterpretados:

pontuais.

Atrasos:

sazonais.

Falhas:

humanas.

Near misses:

azar.

Tudo que contradiz a narrativa recebe explicação.

A deriva continua.


👥 Groupthink transforma adaptação em cultura

Uma pessoa questiona:

— Não estamos trabalhando perto demais do limite?

Resposta coletiva:

— Sempre foi assim.

Agora temos consenso.

O desvio ganha proteção social.

Não é apenas operação.

É cultura.


🪜 Authority Gradient impede sinais de subir

Quem está perto do sistema normalmente percebe deriva cedo.

Operador.

Desenvolvedor.

Analista.

Eles veem:

mais retries;

mais ajustes;

mais trabalho manual;

menos margem.

Mas executivos enxergam:

SLA verde.

Availability 99,99%.

Custos menores.

Se existe Authority Gradient forte, a informação não sobe.

Rasmussen justamente destacou a importância de observar os diversos níveis de decisão de um sistema — do trabalho operacional às estruturas organizacionais e regulatórias — e as interações entre esses níveis. (ScienceDirect)


▶️ Plan Continuation Bias empurra depois da fronteira

Quando finalmente aparecem sinais claros:

já investimos muito.

Projeto quase terminou.

Migração está avançada.

Mudança está quase concluída.

Agora Plan Continuation Bias diz:

continuar.

A organização talvez já estivesse derivando durante anos.

A continuação do plano apenas fornece o último empurrão.


🕰️ Hindsight Bias chega depois com uma lupa

E então acontece o acidente.

Todo mundo olha para trás.

— Como ninguém percebeu?

Agora os sinais parecem óbvios:

batch crescendo;

alertas aumentando;

capacidade caindo;

procedimentos sendo abreviados;

turnover;

warnings.

Mas cuidado.

Eles não necessariamente formavam uma narrativa óbvia naquele momento.

Hindsight Bias transforma deriva lenta numa estrada vermelha perfeitamente desenhada.

Na vida real:

era neblina.


👻 Easter Egg nº 1 — A TARDIS pousa um centímetro de cada vez

Imagine a TARDIS tentando chegar ao precipício.

Não pousa diretamente na borda.

Primeiro:

100 km.

Depois:

100 metros.

10 metros.

1 metro.

Nenhum pouso isolado parece absurdo.

Até abrirmos a porta.

Isso é drift.


🔍 Work as Imagined versus Work as Done

No papel:

PROCEDIMENTO

1. Validar arquivo.
2. Reconciliar.
3. Solicitar aprovação.
4. Processar.
5. Validar resultado.

Na prática:

1. Script valida quase tudo.
2. Reconciliação só quando diferença é grande.
3. Aprovação pelo Teams.
4. Processar.
5. Olhar dashboard.

Por que mudou?

Talvez porque:

volume cresceu;

equipe diminuiu;

prazo apertou;

processo oficial ficou impraticável.

Não conclua imediatamente:

pessoas irresponsáveis.

Talvez estejam adaptando-se para conseguir realizar o trabalho.


🧠 Localmente racional

Essa expressão é central para compreender Drift Into Failure.

Muitas decisões que mais tarde contribuem para acidentes eram localmente racionais.

Ou seja:

faziam sentido para a pessoa naquele contexto.

Exemplo:

operador pula verificação.

Por quê?

Porque:

tem 200 jobs;

verificação leva dez minutos;

nunca encontrou problema;

precisa cumprir janela.

Dentro daquele ambiente:

faz sentido.

O problema está no sistema que tornou essa adaptação necessária.


🏗️ Não procure apenas comportamento; procure pressões

Pergunte:

Por que começaram a pular essa etapa?

Resposta pobre:

preguiça.

Talvez.

Mas investigue:

a etapa ficou lenta?

Volume cresceu?

Equipe caiu?

Ferramenta ficou inadequada?

Meta conflitante?

Trabalho virou impossível segundo procedimento oficial?

Essas perguntas encontram drift.


📏 A fronteira de segurança não possui placa

Essa é talvez a parte mais assustadora.

Não existe necessariamente:

ATENÇÃO

VOCÊ ESTÁ A 5 METROS
DA FALHA SISTÊMICA

A fronteira pode ser desconhecida.

Descobrimos sua localização...

quando a atravessamos.

Por isso Rasmussen discutia a necessidade de manter controle sobre sistemas dinâmicos diante de pressões e mudanças, em vez de presumir que limites podem ser totalmente conhecidos e gerenciados por regras estáticas. (ScienceDirect)


🧯 Por isso precisamos de margem

Se não sabemos exatamente onde está o precipício:

não caminhe na borda.

Mantenha buffer.

Em mainframe:

capacidade;

tempo;

storage;

staff;

rollback;

thresholds;

redundância.

Margin is safety.


📊 Leading Indicators versus Lagging Indicators

Outro conceito importante.

Lagging indicator

Mostra algo depois que aconteceu.

Exemplo:

número de incidentes.

Leading indicator

Pode indicar deterioração antes.

Exemplo:

aumento de:

restarts;

warnings;

tempo médio;

intervenção manual;

exceções;

near misses.

Se você monitora apenas:

INCIDENTES ESTE MÊS: 0

pode concluir:

excelente.

Enquanto:

RESTARTS +300%
WARNINGS +80%
MANUAL FIXES +200%

O sistema está gritando.

Ainda sem incidente.


🎯 Ausência de acidente pode esconder deriva

Isso conecta com tudo.

Uma organização pode ficar anos sem grande incidente.

Isso não necessariamente significa:

segurança aumentando.

Talvez risco esteja crescendo silenciosamente.

O sistema ainda não encontrou a combinação final.


🧯 Near Miss é boia na correnteza

Near miss mostra:

chegamos perto.

Em drift, near misses são especialmente preciosos.

Eles ajudam a estimar:

onde talvez esteja a fronteira.

Se quase processamos arquivo errado:

não comemore apenas.

Pergunte:

Por que chegamos tão perto?


🏛️ Acidentes pequenos são mensagens do futuro

Um pequeno incidente pode mostrar mecanismo maior.

Exemplo:

100 registros duplicados.

Corrigido manualmente.

Pergunta:

Isso poderia acontecer com 10 milhões?

Talvez.

Então pequeno incidente é laboratório.


🧠 Drift não significa inevitabilidade

Importante.

Não estamos dizendo:

Todo sistema complexo inevitavelmente falhará.

Estamos dizendo:

sistemas mudam.

Pressões mudam.

Comportamento adapta-se.

Segurança precisa acompanhar.

Uma abordagem sistêmica procura compreender e controlar essas interações e trajetórias, não apenas responsabilizar componentes após o evento. (ScienceDirect)


🧪 Como detectar Drift Into Failure

Agora nosso programador COBOL quer um método.

Excelente.

Passo 1 — Procure tendências de longo prazo

Não apenas hoje versus ontem.

Compare:

6 meses;

1 ano;

3 anos.

Exemplo:

BATCH ELAPSED

2023: 70 min
2024: 88 min
2025: 112 min
2026: 148 min

Isso é drift.


📈 Passo 2 — Monitore margem

Não apenas:

está dentro do limite?

Mas:

quanto sobra?

Exemplo:

SLA LIMIT: 180 min

2023 margin: 110
2024 margin: 92
2025 margin: 68
2026 margin: 32

Ainda dentro.

Mas direção é clara.


🔧 Passo 3 — Conte intervenções manuais

Quantas vezes alguém precisa:

restartar;

ajustar;

limpar;

reprocessar;

corrigir manualmente?

Se aumenta:

sistema pode estar sendo sustentado por esforço humano invisível.


🦸 Heroísmo é métrica de fragilidade

Esse ponto é maravilhoso.

Equipe diz:

— Nunca tivemos indisponibilidade porque Carlos sempre resolve.

Talvez isso signifique:

excelente resiliência humana.

Mas talvez também:

arquitetura depende de Carlos.

Conte heroísmo.

Ele pode ser leading indicator.


📝 Passo 4 — Conte exceções

Quantas exceções temporárias estão abertas?

EXCEPTION-001
EXCEPTION-002
...
EXCEPTION-143

Se sistema depende de 143 exceções:

qual é exatamente a regra?

A exceção pode ter virado arquitetura.


🚨 Passo 5 — Observe warnings normalizados

Faça inventário:

quais sinais são conhecidos e ignorados?

Cada um pode indicar área de drift.


👥 Passo 6 — Pergunte aos operadores

Talvez o dashboard esteja verde.

Pergunte:

“O que ficou mais difícil nos últimos dois anos?”

Essa pergunta pode revelar mais que cinquenta KPIs.

Operadores sentem deriva.


🧠 Passo 7 — Pergunte quais atalhos surgiram

Sem julgamento:

“Que passos vocês precisam adaptar para o trabalho caber na janela?”

Agora você encontra Work as Done.


🗺️ Passo 8 — Faça AcciMap ou mapa sistêmico

Uma extensão importante do trabalho de Rasmussen é o uso de representações como AcciMap, concebidas para mapear atores, decisões, condições e relações através de diferentes níveis do sistema, em vez de limitar a análise à linha de frente. Literatura posterior descreve AcciMap e mapas relacionados como formas de representar cenários de acidente, atores e fluxos de informação. (ResearchGate)

Para nosso exemplo:

REGULAÇÃO
   ↓
DIRETORIA
   ↓
GESTÃO
   ↓
ARQUITETURA
   ↓
OPERAÇÃO
   ↓
COBOL / CICS / DB2

Pergunte em cada nível:

que pressões existem?

que decisões foram tomadas?

que informação sobe?

que informação desce?

Agora vemos sistema.


🧩 Passo 9 — Procure decisões locais que criam risco global

Exemplo:

Infra reduz storage.

Boa decisão local.

Aplicação aumenta logging.

Boa decisão local.

Negócio aumenta retenção.

Boa decisão local.

Juntas:

dataset explode.

Nenhuma equipe estava “errada”.

O sistema emergente ficou frágil.


🕸️ Complexidade produz efeitos emergentes

Isso é central.

Sistemas complexos possuem comportamento que não pode ser compreendido olhando componente por componente isoladamente.

Equipe A otimiza A.

Equipe B otimiza B.

Equipe C otimiza C.

O conjunto produz D.

Ninguém planejou D.

Isso é comportamento emergente.


💻 Exemplo COBOL completo

Imagine um programa criado em 2005.

Inicialmente:

1 milhão de registros
1 arquivo
1 regra fiscal
30 minutos

Em 2026:

48 milhões de registros
17 arquivos
34 regras
6 integrações
2h48

Mas arquitetura central permaneceu.

Ao longo dos anos:

adicionaram copybooks;

IFs;

chamadas;

workarounds;

restarts;

parâmetros.

Nada individualmente absurdo.

Agora qualquer mudança é arriscada.

Isso é uma forma de deriva arquitetural.


🏚️ Technical Debt encontra Drift

Dívida técnica não é exatamente Drift Into Failure.

Mas pode contribuir.

Atalho hoje.

TODO.

Depois outro.

Depois outro.

Sistema continua.

Até mudanças simples exigirem enorme cuidado.

A margem de mudança desaparece.


🧱 Complexidade acidental

Muitas camadas podem acumular-se:

COBOL
→ DB2
→ MQ
→ API
→ gateway
→ cloud
→ parceiro

Cada integração resolve problema.

Também adiciona modos de falha.

O sistema de 2026 pode ser completamente diferente do modelo mental de quem o projetou.


📚 Documentação também deriva

Documento criado em 2018.

Sistema mudou em:

2019;

2020;

2021;

2022;

2024;

Manual:

Agora Work as Imagined e Work as Done vivem em universos paralelos.

Até uma crise.


🧠 Conhecimento tribal

Quando documentação falha, pessoas compensam.

Carlos sabe.

Maria sabe.

João sabe.

Então:

Carlos aposenta.

Maria muda de equipe.

João fica doente.

De repente a redundância humana desapareceu.

Ninguém percebeu porque ela nunca estava formalmente registrada.

Drift.


🪫 Redundância desaparece silenciosamente

Começamos:

3 pessoas sabem.

Depois:

Depois:

Nenhum incidente.

Até precisar.

Mais um exemplo de margem invisível.


🔐 Drift em segurança

Primeiro:

acesso emergencial temporário.

Depois:

não removido.

Segundo usuário recebe.

Depois grupo inteiro.

Motivo:

agilidade operacional.

Nada acontece.

Anos depois:

permissão excessiva virou normal.

Ataque ou fraude encontra porta aberta.

O incidente parece repentino.

A trajetória não era.


🤖 Drift em sistemas de IA

Agentes tornam isso ainda mais interessante.

Primeiro agente:

só recomenda.

Depois:

executa tarefas pequenas.

Depois:

executa mudanças.

Depois:

aprovação automática em certos casos.

Cada extensão parece pequena.

Talvez nenhum momento tenha existido em que a organização conscientemente disse:

“Vamos delegar grande autoridade.”

Autonomia cresceu incrementalmente.

Isso também precisa de controle de drift.


🔁 Capability Creep

Ferramenta começou fazendo A.

Depois B.

Depois C.

Agora toma decisão crítica.

Permissões cresceram junto.

Isso é capability creep.

Pergunte periodicamente:

“Este sistema hoje possui mais poder que quando fizemos sua avaliação de risco?”

Ótima pergunta.


🎯 Pergunta Bellacosa nº 1

Pergunte:

“O que hoje consideramos normal que seria considerado preocupante três anos atrás?”

Essa pergunta encontra deriva.


🎯 Pergunta Bellacosa nº 2

Outra:

“Que margem tínhamos antes e não temos mais?”

Tempo?

Capacidade?

Pessoas?

Rollback?

Dinheiro?

Conhecimento?


🎯 Pergunta Bellacosa nº 3

Outra:

“O que precisamos fazer manualmente hoje apenas para manter tudo funcionando?”

Isso revela adaptações invisíveis.


🎯 Pergunta Bellacosa nº 4

E talvez a mais poderosa:

“Se montássemos este sistema do zero hoje, aceitaríamos operá-lo desta maneira?”

Se resposta for não:

provavelmente aconteceu alguma deriva.


🧪 Passo 10 — Crie indicadores de drift

Exemplos:

batch margin
capacity margin
manual intervention count
alert volume
restart frequency
exception count
near miss rate
staff coverage
rollback time
test coverage trend
documentation age

Não espere incidente.

Observe trajetória.


📊 Não monitore apenas estado; monitore derivada

Uma pequena brincadeira matemática.

Não importa apenas:

X

Importa:

dX/dt

Ou seja:

a direção da mudança.

CPU 70% talvez seja normal.

CPU:

40 → 48 → 56 → 63 → 70

conta outra história.

O mainframeiro precisa aprender a enxergar movimento.


🧭 Trending is storytelling

Um único número é fotografia.

Uma tendência é filme.

Drift vive no filme.

Não na fotografia.


📅 Revisões temporais

Crie revisão semestral:

o que mudou?

Não apenas:

houve incidente?

Pergunte:

capacidade;

arquitetura;

pessoas;

volume;

processo;

risco.

A segurança de dois anos atrás pode não existir mais.


🧯 Safety Margin Review

Uma revisão específica:

MARGIN REVIEW

CPU headroom
Storage headroom
Batch window
Rollback margin
Staff redundancy
Provider capacity

Verde não significa:

“não atingimos limite.”

Verde significa:

“temos margem adequada.”

Muito mais inteligente.


🚦 Green não deveria significar “ainda não morreu”

Isso conecta com Automation Bias.

Dashboard verde porque:

uso < 100%.

Mas storage em 97%.

Tecnicamente:

ainda funciona.

Operacionalmente:

talvez estejamos na borda.

Dashboard precisa refletir margem.


👀 Weak Signals novamente

Sinais fracos são a linguagem do drift.

Exemplos:

mais chamadas;

mais reclamações pequenas;

mais exceções;

mais warnings;

mais tempo;

mais trabalho manual;

mais dependência de especialistas.

Individualmente:

nada.

Juntos:

trajetória.


🧠 Pattern Recognition organizacional

Precisamos ensinar equipes a perguntar:

“Esses eventos separados fazem parte do mesmo movimento?”

É aí que incident management vira systems thinking.


🧬 Resilience Engineering

A resposta ao drift não é construir regras infinitas.

Sistemas reais mudam.

Precisamos capacidade de:

detectar;

adaptar;

absorver;

recuperar;

aprender.

Essa perspectiva está alinhada à tradição de engenharia de resiliência e às abordagens sistêmicas que tratam segurança como uma propriedade dinâmica do sistema, e não apenas como ausência de componentes quebrados. (Lund University Publications)


🔄 Regeneração organizacional

Como regenerar um sistema que está derivando?

Não procure apenas:

“qual componente substituir?”

Pergunte:

  • quais pressões existem?

  • quais margens desapareceram?

  • quais adaptações surgiram?

  • quais barreiras enfraqueceram?

  • quais métricas estão piorando?

  • que conhecimento desapareceu?

  • quais exceções viraram regra?

Depois:

restaure margem;

simplifique;

automatize onde faz sentido;

melhore observabilidade;

documente;

reduza ruído;

treine;

reavalie capacidade;

fortaleça barreiras.

Isso é regeneração de verdade.


📋 Checklist anti-Drift

Periodicamente:

[ ] Nosso volume cresceu?

[ ] Nossa arquitetura mudou?

[ ] Nossa margem operacional caiu?

[ ] Existem mais intervenções manuais?

[ ] Existem mais warnings?

[ ] Existem mais exceções permanentes?

[ ] Rollback ficou mais difícil?

[ ] Equipe perdeu conhecimento?

[ ] Documentação representa a realidade?

[ ] Near misses estão aumentando?

[ ] Estamos operando mais perto de limites?

[ ] Alguma prática que antes era proibida virou normal?

[ ] Se começássemos hoje, aceitaríamos este estado?

Se muitas respostas incomodarem...

não espere ABEND.


👽 Easter Egg nº 2 — A fronteira invisível

O Doctor aponta para o chão.

— Aqui é seguro.

Dá um passo.

— Aqui também.

Outro.

— Também.

Outro.

— Ainda seguro.

Companion:

— Então podemos continuar.

O Doctor responde:

— Não necessariamente.

— Por quê?

— Porque acabamos de provar onde estivemos.

Pausa.

— Não onde está a borda.

Essa frase deveria morar em todo data center.


🧠 Safety não é extrapolação infinita do sucesso

100 execuções sem falha provam:

o sistema sobreviveu a 100 execuções dentro daquelas condições.

Não provam:

segurança eterna.

Condições mudam.

Volume muda.

Pessoas mudam.

Software muda.

Organização muda.

O sucesso passado é dado.

Não garantia.


🏦 Drift no banco

Vamos imaginar fechamento financeiro.

Ano 1:

10 milhões de movimentos.

Ano 5:

50 milhões.

Equipe continua igual.

Batch maior.

Margem menor.

Mais restarts.

Mais procedimentos manuais.

Mas SLA continua verde.

Diretoria:

operação excelente.

Talvez.

Ou talvez uma equipe heroica esteja segurando um sistema cada vez mais próximo da fronteira.

Precisamos saber qual.


🦸 Não use pessoas para esconder dívida sistêmica

Profissionais extraordinários conseguem compensar sistemas ruins por anos.

Depois alguém pergunta:

“Por que nunca tivemos problema?”

Resposta:

porque Ana, Carlos e João impediam diariamente.

Isso é sucesso humano.

E risco organizacional.


🔬 Investigue o trabalho que evita incidentes

Isso é fantástico.

Não estude apenas falhas.

Estude:

por que normalmente dá certo?

Que adaptações os operadores fazem?

Que verificações extras?

Que telefonemas?

Que planilhas?

Que memórias?

Talvez sua verdadeira arquitetura de segurança não esteja no Visio.

Está nas pessoas.


🧠 Safety-II

Essa ideia conversa com perspectivas modernas de segurança que não olham apenas para o que deu errado, mas também para como o trabalho cotidiano consegue ter sucesso apesar de variabilidade e pressão.

Pergunta:

“Como as pessoas normalmente evitam que isso quebre?”

Você descobrirá mecanismos de resiliência.

Depois poderá fortalecê-los.


🛑 Drift precisa de contraforças

Pressões empurram:

mais barato;

mais rápido;

mais produção.

Então precisamos de forças conscientes puxando de volta:

revisões;

buffers;

standards;

limites;

auditoria;

capacity planning;

resilience reviews;

stop authority.

Sem contraforça:

a eficiência naturalmente consome margem.


💸 Segurança parece cara antes do incidente

Redundância custa.

Pessoas extras custam.

Capacidade livre custa.

Testes custam.

Rollback custa.

Observabilidade custa.

Depois do acidente:

parecem baratos.

Nosso Hindsight Bias dá risada.


📓 Diário do Doctor

Se guardar apenas algumas ideias desta viagem, guarde estas:

Drift Into Failure descreve a trajetória gradual pela qual sistemas complexos podem aproximar-se da falha.

Nem sempre existe uma única decisão absurda ou um único culpado.

Decisões localmente racionais podem produzir risco global.

Pressões de custo, produtividade e carga de trabalho alteram o comportamento do sistema ao longo do tempo.

Margem de segurança pode desaparecer silenciosamente.

Normalization of Deviance ajuda a deslocar a fronteira do aceitável.

Alarm Fatigue degrada detecção.

Automation Bias pode reduzir independência humana.

Authority Gradient impede sinais de subir.

Plan Continuation Bias dificulta parar quando finalmente percebemos o risco.

Near misses e sinais fracos mostram a trajetória.

Monitore tendências e margens, não apenas falhas.

E principalmente:

Sistemas raramente acordam numa terça-feira e decidem tornar-se perigosos. Eles podem passar anos aprendendo, pouco a pouco, a operar cada vez mais perto do limite.


🕰️ A TARDIS volta três anos

Nosso programador COBOL entra com o Doctor.

VWORP.

Três anos antes.

O batch termina:

01:31

Doctor:

— Algum problema?

— Não.

Dois anos antes:

01:57

— Problema?

— Ainda não.

Um ano:

02:24

— Problema?

— Não.

Seis meses:

02:46

Agora:

03:02

O jovem observa.

— Então o incidente começou quando o job ficou mais lento?

— Talvez não.

O Doctor abre outra timeline.

Equipe:

8 pessoas
→ 7
→ 6
→ 5

Outra.

Warnings:

12/mês
→ 48
→ 110
→ 390

Outra.

Exceções:

2
→ 7
→ 19
→ 43

Outra.

Intervenções manuais:

1/semana
→ 2
→ 5
→ diária

O programador fica em silêncio.

— Então qual dessas coisas causou o incidente?

O Doctor sorri.

— Talvez essa seja a pergunta errada.

— Qual seria a certa?

Ele aponta para todas as telas.

“Que sistema produz todas essas coisas ao mesmo tempo?”

Agora nosso jovem entende.

Não existe apenas uma seta:

ERRO
↓
INCIDENTE

Existe uma paisagem.

Pressões.

Adaptações.

Compromissos.

Perda de margem.

Decisões.

Sinais.

Tempo.

O acidente foi apenas o instante em que a trajetória finalmente cruzou uma fronteira.


🥚 Easter Egg final

De volta a 2026, nosso programador encontra:

BELLACOSA.SYSTEMS(DRIFT)

Dentro:

       IF SYSTEM-STATUS = 'OK'
           PERFORM CHECK-TREND
       END-IF.

       IF MARGIN < LAST-YEAR
           PERFORM INVESTIGATE
       END-IF.

       IF EVERYONE-SAYS
           'IT STILL WORKS'
           PERFORM ASK-HOW-CLOSE
       END-IF.

Comentário:

* SUCCESS TODAY
* DOES NOT DEFINE
* THE LOCATION OF TOMORROW'S BOUNDARY.

Logo abaixo:

* WATCH THE TRAJECTORY.
* NOT ONLY THE CRASH.

E naturalmente:

* BAD WOLF WAS HERE.

Nosso programador fecha o membro.

O console mostra:

SYSTEM STATUS: GREEN

Ele quase sorri.

Depois lembra de Automation Bias.

Abre tendência.

BATCH MARGIN
12 MONTHS AGO: 91 MIN
TODAY:         34 MIN

Abre warnings.

Subiram.

Abre restarts.

Subiram.

Abre exceções.

Subiram.

Nenhum incidente.

Ainda.

Ele chama o operador.

— Temos um problema?

O operador olha.

— Nada caiu.

Nosso programador responde:

— Eu sei.

Pausa.

— É justamente por isso que talvez seja uma boa hora para conversar.

Em algum lugar do espaço-tempo ouvimos:

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

Nenhum incidente ocorreu.

Nenhum cliente reclamou.

Nenhuma War Room abriu.

E talvez esta seja a mais importante vitória de toda nossa série:

perceber a trajetória antes de precisar estudar os destroços.

☕🌀

Next stop: Diffusion of Responsibility — quando todo mundo recebeu o alerta, todo mundo viu o problema e todo mundo tinha certeza de que outra pessoa estava cuidando.


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