☕ 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, 16 de dezembro de 2013

Streetlight Effect: Doctor Who, COBOL e o Dia em que Procuramos o Erro Debaixo do Poste — Porque Era o Único Lugar Onde Tínhamos Log

 

Bellacosa Mainframe e o streetlight effect

☕ Um Café no Bellacosa Mainframe

Streetlight Effect: Doctor Who, COBOL e o Dia em que Procuramos o Erro Debaixo do Poste — Porque Era o Único Lugar Onde Tínhamos Log

Uma viagem pela TARDIS dos incidentes para entender por que investigamos primeiro aquilo que é fácil de observar — e como dashboards, traces, logs, métricas e ferramentas podem nos prender exatamente no lugar errado enquanto a causa raiz permanece escondida no escuro

02:17.

Madrugada.

War Room.

Esse horário por si só já reduz aproximadamente 40% da capacidade humana de produzir frases completas.

O café está naquela fase em que não se sabe mais se:

é bebida;

é combustível;

ou se deveria possuir classificação de risco químico.

Na tela:

INCIDENTE P1

APLICAÇÃO:
PAYMENTS-X

SINTOMA:
TRANSAÇÕES INTERMITENTEMENTE LENTAS

INÍCIO:
01:43

CLIENTES AFETADOS:
INDETERMINADO

O gerente pergunta:

— Db2?

DBA:

— Normal.

— CICS?

CICS:

— Normal.

— CPU?

Sysprog:

— Normal.

— Storage?

— Normal.

— MQ?

— Parece normal.

Silêncio.

Nosso jovem programador COBOL observa o dashboard.

Tudo:

verde.

Mas clientes continuam:

reclamando.

O gerente pergunta:

— Temos algum log mostrando erro?

— Não.

— Trace?

— Nada evidente.

— Então onde está o problema?

Nosso jovem responde:

— Talvez onde não estamos olhando.

O gerente olha para ele.

— Excelente. Onde?

— Não sei.

— Então como vamos procurar?

Silêncio.

Uma voz no fundo:

— Vamos aumentar o trace do Db2.

Outra:

— Podemos ativar mais CICS monitoring.

Outra:

— Vamos analisar SMF.

Nosso jovem percebe algo estranho.

Ninguém tinha evidência de que:

Db2

ou CICS

fossem a causa.

Mas eram os lugares onde:

existiam ferramentas excelentes.

Logs.

Counters.

Traces.

Especialistas.

Ou seja:

havia luz.

VWORP.

VWORP.

VWORP.

A TARDIS surge no corredor.

A porta abre.

O Doctor sai segurando algo aparentemente incapaz de passar por qualquer processo sério de change management.

Ele observa:

RMF.

Db2.

CICS.

MQ.

Depois pergunta:

— Por que estão olhando aqui?

Gerente:

— Porque o problema está aqui.

— Como sabem?

— Porque estamos investigando aqui.

Doctor:

— Isso explica onde vocês estão olhando.

Pausa.

— Não explica onde perderam a chave.

Bem-vindo ao:



Streetlight Effect

ou:

Efeito Poste de Luz

Também conhecido em alguns contextos como:

Drunkard’s Search Principle

A ideia é simples:

tendemos a procurar respostas onde é mais fácil procurar, não necessariamente onde é mais provável encontrá-las.

Em linguagem Bellacosa:

“Se só temos log embaixo do poste, depois de algumas horas começamos perigosamente a acreditar que a causa raiz também deve morar embaixo dele.”


💡 A história clássica

Existe uma velha anedota.

Um policial encontra um homem procurando algo debaixo de um poste.

Pergunta:

— O que você perdeu?

— Minhas chaves.

— Onde perdeu?

O homem aponta:

para uma área escura do outro lado da rua.

Policial:

— Então por que está procurando aqui?

Resposta:

— Porque aqui tem luz.

Pronto.

Streetlight Effect.


☕ O bêbado não é burro

Isso é importante.

Procurar:

onde existe luz

faz sentido.

É mais fácil.

Mais rápido.

Talvez inclusive valha a pena começar ali.

O erro acontece quando:

facilidade de investigação é confundida com probabilidade de causa.


🧠 COBOL para iniciantes

Imagine programa:

       READ CUSTOMER-FILE
           AT END
              MOVE 'Y' TO EOF-SW
       END-READ.

Produção relata:

registros desaparecendo.

Você abre:

programa COBOL.

Porque:

é o que conhece.

Analisa:

READ.

IF.

PERFORM.

Nada.

Passa:

três horas.

Depois alguém pergunta:

— O arquivo de entrada está completo?

Silêncio.

Você nunca:

olhou.

Porque o ticket dizia:

“Erro no programa COBOL.”

Streetlight Effect.


☕ Às vezes o bug do COBOL

não está:

no COBOL.

Essa frase separa:

iniciante

de:

analista.


🧠 Sintoma não identifica camada

Aplicação lenta.

Pode ser:

COBOL;

Db2;

CICS;

MQ;

network;

DNS;

storage;

API externa;

batch concorrente;

authentication;

downstream.

O sintoma:

“lento”

não possui:

copybook dizendo:

ROOT-CAUSE = DB2

Infelizmente.


🧠 Representativeness Heuristic entra pela porta

“Tem cara de Db2.”

Já vimos.

Agora Streetlight acrescenta:

“E Db2 é justamente onde temos ferramenta boa.”

Perfeito.

Duas forças:

parece Db2

é fácil investigar Db2

Resultado:

Db2 vira:

suspeito oficial.


👻 Easter Egg nº 1 — Dalek investigando

Dalek:

— LATENCY DETECTED.

Doctor:

— Onde?

— UNKNOWN.

— O que vão investigar?

— DATABASE.

— Por quê?

— DATABASE DASHBOARD AVAILABLE.

— Isso não é uma causa.

— DASHBOARD HAS GRAPHS.

— Também não é causa.

— GRAPHS ARE BEAUTIFUL.

Doctor:

— Estamos perdidos.


🧠 Streetlight Effect e McNamara Fallacy

Aqui a sequência fica linda.

McNamara Fallacy:

o que consigo medir ganha prioridade sobre o difícil de medir.

Streetlight Effect:

o que consigo observar ganha prioridade na investigação.

Ou seja:

MCNAMARA:
"MEÇA ONDE É FÁCIL"

          ↓

STREETLIGHT:
"PROCURE ONDE É FÁCIL"

Agora:

o escuro some.


🧠 Metric Fixation prepara terreno

Dashboard:

CPU.

Db2.

CICS.

Tudo bem instrumentado.

Uma dependência FTP obscura:

sem telemetria.

Qual área aparece em:

todas as War Rooms?

As instrumentadas.

Isso pode criar:

viés estrutural.


☕ O componente mais observado

não é necessariamente:

o componente mais culpado.

Talvez apenas:

o que tem Grafana.


🎯 Pergunta Bellacosa nº 1

“Estamos investigando este componente porque há evidência contra ele ou porque temos ferramentas melhores para observá-lo?”

Essa pergunta é ouro.


🧠 Observability Bias

Podemos pensar de forma prática:

aquilo que produz:

logs;

metrics;

traces

fica:

visível.

Aquilo que não produz:

some.

Mas:

invisibilidade técnica não é inocência.


🧠 Um legado silencioso

Imagine:

sistema antigo.

Sem:

APM.

Sem:

OpenTelemetry.

Sem:

dashboard moderno.

Só:

SYSOUT.

Aplicações modernas ao redor:

instrumentação total.

Incident:

qual recebe mais suspeita?

Modern services.

Porque:

vemos.

Legacy:

fica no escuro.

Talvez seja:

justamente a causa.


☕ O monstro pode não estar no dashboard

porque:

nasceu antes do dashboard.


🧠 Mainframe tem vantagem e armadilha

Mainframe possui:

instrumentação maravilhosa.

SMF.

RMF.

CICS statistics.

Db2 accounting.

IMS logs.

MQ.

Tudo muito rico.

Isso é:

excelente.

Mas também pode gerar:

uma confiança interessante:

“Se houvesse algo errado, apareceria.”

Hmm.

Nem sempre.


🧠 Telemetria não cobre tudo

Pode faltar:

business context;

external dependency;

bad data;

human process;

rare race condition;

timing;

client-side behavior.


🎯 Pergunta Bellacosa nº 2

“Que tipo de falha nosso conjunto atual de instrumentos simplesmente não consegue enxergar?”

Perfeita para arquitetura.


🧠 Streetlight e Confirmation Bias

Hipótese inicial:

Db2.

Agora procuramos:

Db2 logs.

Encontramos:

um warning.

Ahá!

Confirmation Bias.

Mas:

sistemas complexos sempre possuem:

warnings.

A questão:

é causal?

Talvez:

não.


☕ Todo log possui algo assustador

se você olhar:

tempo suficiente.


🧠 Correlation hunting

Incident:

01:43.

Encontramos:

Db2 spike:

01:42.

Pronto.

Cause.

Maybe.

Mas também:

backup começou;

network jitter;

authentication refresh;

MQ batch.

Precisamos:

causalidade.


🧠 Narrative Bias entra

Uma boa história aparece:

“Db2 começou a sofrer → aplicação ficou lenta → clientes reclamaram.”

Coerente.

Parece:

root cause.

Agora ninguém quer:

sair do poste.

Narrative Bias.


🎯 Pergunta Bellacosa nº 3

“Que evidência faria essa hipótese morrer?”

Excelente.

Se resposta:

“nenhuma,”

não temos hipótese.

Temos:

religião.


🧠 House MD entra no NOC

Equipe:

— Db2.

House:

— Por quê?

— Query ficou lenta.

— Causa ou sintoma?

— Parece causa.

— Então parem Db2.

— Não podemos.

— Ótimo. Então talvez precisemos pensar.

House e Doctor:

seriam expulsos da mesma War Room em aproximadamente:

12 minutos.


☕ Diagnóstico diferencial

É exatamente isso.

Não:

“qual causa?”

Mas:

“quais causas plausíveis explicariam o conjunto de sintomas?”


🧠 Differential Diagnosis para TI

Imagine:

transação lenta.

Hipóteses:

H1 DB2 LOCK
H2 CICS TASK QUEUE
H3 MQ LATENCY
H4 NETWORK
H5 EXTERNAL API
H6 RACF/AUTH
H7 DATA DISTRIBUTION
H8 CLIENT RETRY

Agora busque:

evidências.

Não fique:

apenas onde a lanterna alcança.


🧠 Hypothesis Matrix

HIPÓTESE      EVIDÊNCIA A FAVOR   CONTRA   TESTE

DB2 LOCK      pequena             forte    accounting
MQ            média               pouca    queue/trace
NETWORK       média               none     packet timing
API EXT       forte               none     external logs

Isso reduz:

Streetlight Effect.


☕ War Room vira investigação

Não:

turismo por dashboard.


🧠 Action Bias piora tudo

Pressão.

Todos querem:

fazer.

Onde conseguem agir?

Db2.

CICS.

Restart.

Porque:

tem console.

Illusion of Control.

Streetlight.

Action Bias.

Agora comando acontece:

no local mais visível,

não necessariamente:

no culpado.


🧠 Console Bias

Não é um termo formal que precisamos inventar.

Mas a imagem é ótima:

quem possui console sente que possui ação.


☕ Se tenho martelo

e dashboard de pregos...

você conhece o resto.


🧠 Maslow’s Hammer

Relacionado:

se a única ferramenta é martelo,

tudo parece prego.

Streetlight é diferente:

você procura onde há luz.

Mas os dois podem:

trabalhar juntos.


👻 Easter Egg nº 2 — Sonic Screwdriver

Companion:

— Doctor, sua chave de fenda sônica não abre madeira.

— Eu sei.

— Então?

— Estou procurando problema que envolva metal.

— Por quê?

— Porque consigo resolver metal.

Companion:

— Isso parece profundamente suspeito.


🧠 Expertise Bias

DBA vê:

Db2.

Network engineer vê:

network.

COBOL programmer vê:

code.

Security vê:

attack.

Todo especialista possui:

uma lanterna.

Problema:

cada lanterna ilumina:

um pedaço.


🧠 Fundamental Attribution to Component

Talvez possamos dizer:

não culpe especialistas.

É natural.

Conhecimento molda:

atenção.

Defesa:

multidisciplinaridade.


☕ War Room existe justamente porque

nenhuma pessoa possui:

todas as lanternas.


🎯 Pergunta Bellacosa nº 4

“Quem precisamos trazer para a sala porque pode enxergar uma parte do sistema que ninguém aqui enxerga?”

Muito importante.


🧠 Streetlight e silos

Silos tornam:

lanternas separadas.

App:

“infra.”

Infra:

“app.”

DB:

“network.”

Network:

“application.”

Cada um prova:

sua área verde.

Incident continua.


☕ Todos inocentes

sistema culpado.

Clássico.


🧠 End-to-End Thinking

Cliente atravessa:

front-end;

API;

network;

auth;

mainframe;

CICS;

COBOL;

Db2;

MQ.

O problema pode estar:

na transição.

Interfaces.

Onde ownership:

é fraco.

E justamente:

interfaces costumam ter:

menos observabilidade.


🧠 Handoffs são regiões escuras

Entre:

teams.

Products.

Vendors.

Protocols.

Streetlight ama:

essas regiões.

Porque:

ninguém olha.


🎯 Pergunta Bellacosa nº 5

“Onde estão os limites de responsabilidade entre sistemas e quem observa esses limites?”

Excelente.


🧠 A chave pode estar no estacionamento

Talvez o incidente esteja:

fora da nossa organização.

Third-party API.

Telecom.

DNS provider.

Certificate.

User device.

Se dashboard interno:

verde,

talvez seja:

boa pista.

Não:

prova de inexistência.


☕ “Nosso sistema está normal”

pode significar:

“nossos sensores internos estão normais.”

Frases diferentes.


🧠 External Dependencies

Catalog.

Map.

Monitor.

Include:

vendor.

Otherwise:

dark region.


🧠 Streetlight e Availability Heuristic

Último incidente:

Db2.

Agora:

novo incidente.

Db2 vem:

rápido à memória.

Availability Bias.

Streetlight:

ferramentas já abertas.

Recency Bias:

incidente de ontem.

Representativeness:

sintoma parece igual.

Perfeito storm.


🌀 Bias Stack

RECENCY
   ↓
"ONTEM FOI DB2"

REPRESENTATIVENESS
   ↓
"PARECE DB2"

AVAILABILITY
   ↓
"LEMBRO DE DB2"

STREETLIGHT
   ↓
"TEMOS LOG DB2"

CONFIRMATION
   ↓
"ACHEI UM WARNING DB2"

Parabéns.

Root cause:

talvez DNS.


☕ O cérebro acabou de abrir cinco tickets contra Db2

sem advogado.


🧠 Base Rate Neglect

Historicamente:

quantos incidentes vêm:

de Db2?

Network?

Data?

External?

Use:

base rate.

Ajuda:

priorizar hipóteses.

Mas:

não vire Metric Fixation.

Contexto.


🧠 Bayesian mindset

Sem matemática pesada:

prior probability.

New evidence.

Update.

Não:

apaixone pela primeira hipótese.


🎯 Pergunta Bellacosa nº 6

“Essa hipótese é provável ou apenas fácil de investigar?”

Simples.

Poderosa.


🧠 Streetlight em debugging COBOL

Bug:

valor incorreto.

Programador abre:

calculation paragraph.

COMPUTE TOTAL = PRICE * QUANTITY.

Parece:

óbvio.

Investiga.

Mas:

PRICE já chegou errado.

Origin:

copybook mapping.

Data conversion.

Input.

Streetlight:

olhar onde resultado aparece.

Root cause:

earlier.


☕ Bug costuma gostar de viajar

e aparecer:

muito longe de onde nasceu.


🧠 Data lineage

Para problemas de dados:

siga:

origem.

Transformações.

Don't only:

final program.


🧠 First Bad Value

Pergunte:

“Qual é o primeiro ponto onde o valor deixa de estar correto?”

Essa é uma técnica excelente.

Vai:

para trás.


🧠 Binary Search da cadeia

Se pipeline:

10 etapas.

Valor ruim no final.

Check:

etapa 5.

Bom?

Então:

6–10.

Ruim?

1–5.

Simple.


☕ Divide et impera

Antes:

de culpar COBOL.


🧠 Streetlight em performance

Application slow.

Você mede:

CPU.

CPU high.

Ahá.

Mas high CPU pode ser:

efeito.

Not cause.

Maybe retries:

cause CPU.

Why retries?

Network timeout.

Root cause:

network.

CPU:

poste iluminado.


🧠 Symptom vs Cause

Always ask:

upstream/downstream.


🎯 Pergunta Bellacosa nº 7

“Isso explica o incidente ou apenas mostra onde o incidente ficou visível?”

Excelente.


🧠 Streetlight em observabilidade

Observability itself can:

create blind spot.

Dashboard built:

for expected failures.

Unknown failure:

not represented.

That's why:

logs/traces/exploration.


🧠 Known Unknown versus Unknown Unknown

Metrics answer:

questions anticipated.

Observability ideally helps:

ask new questions.

Important.


☕ Métrica diz:

“aquilo que imaginamos monitorar.”

Incidente pergunta:

“e aquilo que vocês não imaginaram?”


🧠 Streetlight e AI Ops

IA recebe:

telemetria disponível.

Detecta:

patterns.

Mas se root cause está:

em fonte não conectada,

modelo não vê.

Then:

AI confidence may:

still high.

McNamara + Streetlight automatizados.


🤖 AI cannot infer data it never gets

Pode:

inferir.

Mas não magicamente:

observe.

Garbage/missing context.


🧠 AI incident assistant

It may rank:

Db2

because:

rich telemetry.

Legacy system:

little telemetry.

Algorithm:

biased by observability.

This is huge.


🎯 Pergunta Bellacosa nº 8

“O modelo está dizendo que esse componente é mais provável ou apenas possui mais dados sobre ele?”

Excelente para IA.


🧠 Data Availability Bias

In machine learning:

what data exists shapes:

model.

Streetlight Effect applies:

beautifully.


🧠 Search Space Bias

If tool only queries:

known datasets,

cause outside:

never found.

Need:

coverage awareness.


☕ IA com lanterna maior

continua:

lanterna.

Não vira sol.


🧠 Streetlight em segurança

Security monitors:

network events.

Attack occurs:

business logic.

Dashboard:

clean.

Or monitor:

cloud.

Mainframe path:

less visible.

Attacker chooses:

dark region.


🧠 Attackers love blind spots

If defenders monitor:

A,

adversary uses:

B.

Observability becomes:

attack surface information.


🧠 Detection coverage

Map:

what we detect.

What we don't.

Don't assume:

zero alert = zero attack.

McNamara again.


🎯 Pergunta Bellacosa nº 9

“Onde um atacante escolheria operar justamente porque nossos sensores são mais fracos?”

Powerful.


🧠 Streetlight em fraud detection

Model detects:

known fraud patterns.

Fraudsters move:

to new pattern.

Team studies:

alerts.

But no alert:

means invisible.

Streetlight.


🧠 Unknown fraud

Need:

random sampling.

Anomaly exploration.


☕ Procurar só onde detector apita

é deixar detector decidir:

o universo pesquisável.


🧠 Random Sampling

Excellent anti-Streetlight technique.

Sample:

transactions with no alert.

See:

what model misses.


🧠 Negative Space Analysis

Analyze:

absence.

Non-alerted population.

Very useful.


🧠 Streetlight em QA

Tests cover:

known paths.

Bugs appear:

untested combinations.

Team investigates:

failed tests.

But customer bug:

outside suite.

Coverage metric:

green.

Metric Fixation.

Streetlight.


🧠 Exploratory Testing

Human exploratory testing searches:

outside scripted light.

Very valuable.


☕ Test case é lanterna

Exploratory tester:

anda no escuro.

Com cuidado.


🧠 Streetlight e code coverage

Coverage:

95%.

Fantastic.

Remaining 5%:

maybe critical exception path.

Goal Gradient wants:

100%.

Streetlight focuses:

covered code because reports rich.

But defect:

uncovered.


🎯 Pergunta Bellacosa nº 10

“O que existe exatamente na parte que nossos testes não exercitam?”


🧠 Streetlight em RCA

Postmortem uses:

logs available.

Root cause becomes:

thing represented in logs.

Human process:

not logged.

Ambiguous requirement:

not logged.

Org pressure:

not logged.

So:

technical cause dominates.

McNamara Fallacy.


🧠 Socio-technical systems

Incidents often involve:

people;

process;

tools;

incentives.

Not just:

component failure.


ERROR CODE 1234

é mais fácil colocar no RCA

que:

“deadline fez equipe normalizar risco durante seis meses.”

Mas segundo pode ser:

mais importante.


🧠 Fundamental Attribution Error

If only human action visible:

“operator error.”

But system context:

dark.

Again.


🎯 Pergunta Bellacosa nº 11

“Qual parte organizacional ou processual da história não deixa log?”

Excelente para postmortem.


🧠 Streetlight em change management

Incident after change.

Change is:

visible.

Immediate suspect.

Maybe fair.

But could be:

coincidence.

Post hoc.

Need evidence.


☕ “Mudou às 14h, quebrou às 15h”

é:

pista.

Não sentença judicial.


🧠 Post Hoc Ergo Propter Hoc

After therefore because.

Another cognitive trap.

Streetlight enhances:

recent change visible.


🧠 Change Timeline

Compare:

symptoms before.

Control group.

Rollback.

Test causal.


🧠 Streetlight e blame

Person who touched system:

visible.

People who designed:

bad process years ago:

invisible.

Fundamental Attribution Error.


🧠 “Last touch” trap

Last person:

not necessarily cause.

Could be:

trigger.

Latent conditions.

Swiss Cheese.


☕ Quem apertou Enter

nem sempre escreveu:

o destino.


🧠 Streetlight em vendor management

Vendor system:

black box.

Internal system:

fully visible.

Incident.

Where do we investigate?

Internal.

Why?

Access.

Vendor says:

“all good.”

Maybe.

We can't see.

Dark region.


🧠 Black Box Risk

Contracts need:

telemetry.

Evidence.

Escalation.

Otherwise:

permanent blind spot.


🎯 Pergunta Bellacosa nº 12

“Que parte do serviço não conseguimos investigar diretamente por dependência de fornecedor?”


🧠 Streetlight em cloud

Cloud dashboards:

beautiful.

On-prem legacy:

awkward.

Transformation team sees:

cloud data.

Maybe assumes:

cloud issue share higher.

Measurement bias.


🧠 Data richness changes perception

More data often means:

more anomalies found.

Then:

“cloud has more problems.”

Maybe just:

more observable.


☕ Com lanterna melhor

você encontra:

mais poeira.

Não significa:

que aquele quarto é o mais sujo.


🧠 Detection Bias

More monitoring:

more incidents detected.

This can make:

system look worse.

Again McNamara.


🧠 Streetlight e training

Junior knows:

JCL.

Incident:

explores JCL.

Doesn't know:

WLM.

Maybe root cause:

WLM.

Knowledge defines:

search space.

Learning expands:

streetlights.


☕ Quanto mais você aprende

mais postes acende.

Beautiful.


🧠 Generalist value

Cross-domain people:

connect.

They may:

notice boundary.

Mainframe generalist:

COBOL + Db2 + CICS + JCL + ops.

Great for:

Streetlight defense.


🧠 But no one knows everything

Thus:

collaboration.


🎯 Pergunta Bellacosa nº 13

“Qual domínio relevante ninguém nesta War Room conhece suficientemente?”


🧠 Streetlight e Dunning-Kruger

Novice:

doesn't know dark regions exist.

Expert:

knows.

Dunning-Kruger.

A novice may:

confidently search:

known area.


☕ “Olhei tudo.”

Tudo o quê?

Tudo que:

você conhece.

Different.


🧠 Unknown Unknown Inventory

Funny but useful.

Ask:

what dependencies might we have forgotten?

Architecture map.

CMDB.

Service map.


🧠 Dependency discovery

Logs.

Network.

Code.

Documentation.

People.


🧠 Streetlight e Illusion of Control

Dashboard gives:

visibility.

Console gives:

commands.

Now:

feels controlled.

But dark dependency:

outside.

Illusion.


🎯 Pergunta Bellacosa nº 14

“O que está fora do nosso controle mas dentro da nossa cadeia de dependência?”


🧠 Streetlight Effect em mainframe performance — exemplo completo

Batch:

normally:

40 min.

Today:

Step:

COBOL + Db2.

First instinct:

Db2.

We have:

accounting.

SQL stats.

Nothing.

Next:

COBOL.

CPU:

normal.

Then someone asks:

input file size?

Yesterday:

20M.

Today:

75M.

Root cause:

upstream duplicate records.

Program:

fine.

Db2:

fine.

Performance:

expected given volume.

The Streetlight trap was:

investigate components

instead of:

workload.


☕ Antes de tunar

pergunte:

“o que mudou?”

Old but gold.


🧠 Change Analysis

Four buckets:

code;

config;

data;

environment.

Add:

external dependencies.


🧠 Bellacosa 5D

1. CODE
2. CONFIG
3. DATA
4. ENVIRONMENT
5. DEPENDENCIES

Check all.


🎯 Pergunta Bellacosa nº 15

“O que mudou no sistema, nos dados ou no ambiente antes do sintoma?”


🧠 Streetlight em dados

If log:

application.

But bad source data:

not logged as error.

Application behaves:

correctly on wrong data.

Important.


🧠 Correct Software, Wrong Outcome

Technical success.

Business failure.

Goal Substitution.


☕ Programa fez exatamente:

o que mandaram.

Infelizmente.


🧠 Reconciliation catches dark problems

Control totals.

Counts.

Business checks.

Excellent.


🧠 Streetlight em DR

DR tests:

documented scenarios.

Real disaster:

different.

Tests illuminate:

known.

Need:

chaos/scenario variation.


🧠 Preparedness beyond checklist

Unknown scenarios.

Decision-making.


☕ O desastre real raramente lê:

runbook antes.


🧠 Streetlight e Zero-Risk Bias

We eliminate:

well-understood risk.

Unknown risk:

dark.

Zero-Risk makes:

visible zero attractive.

Meanwhile:

unmeasured tail remains.

McNamara + Streetlight + Zero-Risk.


🎯 Pergunta Bellacosa nº 16

“Estamos removendo um risco porque é importante ou porque conseguimos provar que chegou a zero?”


🧠 Streetlight e Need for Control

Darkness:

uncomfortable.

So organizations:

increase instrumentation.

Good!

But cannot instrument:

everything perfectly.

At some point:

need judgement.


🧠 Observability expansion

A healthy response to Streetlight:

move the lamp.

Not:

deny darkness.


☕ Leve a lanterna

até onde perdeu a chave.

Simples.


🧠 Instrument the dark

If recurring blind spot:

add:

telemetry.

This is a key practical lesson.

After incident:

ask:

what did we wish we could see?

Then:

instrument.


🧠 Observability Debt

Systems can have:

observability debt.

No logs.

No trace.

Poor correlation IDs.

Worth fixing.


☕ Dívida técnica também pode:

ser escuridão.


🧠 But don't instrument blindly

Need:

useful signals.

Not:

terabytes.

Metric Fixation.


🧠 Streetlight anti-pattern: logging everything

You think:

more logs = more light.

But:

noise.

Need:

structure.

Correlation.

Context.


🎯 Pergunta Bellacosa nº 17

“Que nova evidência específica gostaríamos de ter tido durante este incidente?”

Then instrument that.


🧠 Streetlight e Correlation IDs

Modern distributed systems:

essential.

Request crosses:

many boundaries.

Correlation ID:

moves light.

Mainframe integrations:

same.

Trace transaction:

API → MQ → CICS → Db2.


☕ Um identificador atravessando mundos

quase uma mini-TARDIS.


🧠 End-to-End Transaction Tracing

Huge defense.

Don't only:

component dashboards.

Trace:

journey.


🧠 Customer-centric observation

Start:

customer transaction.

Follow.

Not:

component first.

This flips Streetlight.


🎯 Pergunta Bellacosa nº 18

“Podemos seguir uma transação real de ponta a ponta?”

Powerful.


🧠 Streetlight e sampling

If full tracing expensive:

sample.

But:

rare failures may be missed.

Adaptive sampling.

Error sampling.


🧠 Keep rare signals

Don't sample away:

problem.


☕ O bug raro

não aprecia:

amostragem econômica.


🧠 Streetlight em AI coding/debugging

Developer asks AI:

“find bug in this function.”

AI inspects function.

Maybe bug:

caller.

Input.

Schema.

Prompt created:

Streetlight boundary.

Need:

broader context.


🤖 Prompt Scope Bias

Not formal necessary.

But:

AI can only reason:

context given.

If context excludes:

root cause,

it may confidently debug:

wrong area.


🎯 Pergunta Bellacosa nº 19

“Estamos perguntando à IA onde está o bug ou dizendo implicitamente onde ela deve procurar?”

Excellent.


🧠 Repository-level context

For AI debugging:

stack trace.

Call chain.

Config.

Recent changes.

Tests.

Not only:

function.


☕ “Corrija este COBOL”

pode produzir:

belíssima correção

para:

programa inocente.


🧠 Streetlight e incident copilots

Agent trained on:

logs.

No ticket conversations.

Maybe misses:

human clue.

Connect:

multiple sources.

But privacy/governance.


🧠 Human-in-the-loop

Human can:

ask weird question.

Machine often:

optimizes available data.

Together:

stronger.


👻 Easter Egg nº 3 — Doctor e IA

AI:

— Probability Db2 root cause: 82%.

Doctor:

— Why?

— 84% of available telemetry pertains to Db2.

Doctor:

— That's not probability of guilt.

AI:

— Recalculating.

Good AI.


🧠 Streetlight e statistical significance

Researchers can study:

data available.

Hard-to-measure variables:

ignored.

Science also vulnerable.

Not anti-science.

It is:

methodological caution.


🧠 Measurement selection

Research question can drift:

to dataset availability.

Important.


☕ “Temos dados sobre isso”

não é:

a mesma frase que:

“isso é a pergunta mais importante.”


🧠 Business analytics

Same.

Company has:

clickstream.

Measures clicks.

Offline customer experience:

unknown.

Clicks become:

reality.

McNamara + Streetlight.


🎯 Pergunta Bellacosa nº 20

“Estamos fazendo a pergunta porque é importante ou porque já temos a tabela pronta?”

Brutal.


🧠 Streetlight e RCA tools

Automated RCA often ranks:

correlated metrics.

Useful.

But if causal source:

not monitored,

cannot rank.

Always retain:

unknown category.


🧠 "No evidence found" ≠ "component innocent"

Key.


☕ Ausência de evidência

não é automaticamente:

evidência de ausência.

Especially when:

sensor weak.


🧠 Negative Evidence depends on detection capability

If alarm would:

always fire,

no alarm:

strong evidence.

If alarm detects:

20%,

no alarm:

weak.

Need:

sensor sensitivity.


🎯 Pergunta Bellacosa nº 21

“Se esse problema estivesse acontecendo, nosso monitor realmente seria capaz de detectá-lo?”

This is one of the best.


🧠 Streetlight e security SIEM

No alert.

Means?

Depends:

coverage.

Rule.

Telemetry.

Detection logic.

No alert ≠ no compromise.


🧠 Detection engineering

Test controls.

Purple team.


☕ Detector também precisa:

ser testado.


🧠 Streetlight and backups again

Backup tool says:

success.

Restore test:

different light.

Need:

look at objective.


🧠 Goal Substitution connection

If goal:

backup completion,

you search:

backup logs.

If goal:

recoverability,

you test:

restore.

Different streetlight.


🧠 Streetlight e KPI investigation

KPI falls.

Management investigates:

components feeding KPI.

Maybe customer behavior changed outside:

measurement system.

Again.


🎯 Pergunta Bellacosa nº 22

“Qual fenômeno externo poderia produzir exatamente esse mesmo indicador?”


🧠 Streetlight e organisational politics

Sometimes dark regions remain dark because:

politically difficult.

Vendor.

Management decision.

Understaffing.

Unrealistic deadline.

Easier:

blame technical parameter.

Streetlight can be:

social.


☕ É mais fácil ajustar:

MAXTASK

que:

questionar prazo impossível.

Sometimes.


🧠 Political Streetlight

Not merely:

tool availability.

Also:

organizational comfort.

We search:

where safe.

Not:

where threatening.


🎯 Pergunta Bellacosa nº 23

“Existe uma hipótese que ninguém quer investigar porque seria organizacionalmente desconfortável?”

Powerful.


🧠 Moral Hazard and Principal-Agent

Vendor measured:

SLA.

Issue maybe contract design.

But investigation stays:

technical.

Because:

easier.

Principal-Agent.


🧠 Incentive Root Causes

Ask:

what behavior was rewarded?

Cobra.

Campbell.

Goodhart.

Some root causes:

not code.


☕ Nem todo bug compila

Alguns:

são aprovados em reunião.


🧠 Streetlight e “human error”

Human action:

visible.

System pressure:

dark.

So RCA:

human error.

Classic.


🧠 Work-as-imagined vs Work-as-done

Procedure says:

X.

Reality:

people do Y to make system work.

Y:

not logged.

Incident reveals.

Investigate.


🎯 Pergunta Bellacosa nº 24

“Como o trabalho realmente acontece quando ninguém está auditando?”

Important.


🧠 Streetlight e shadow IT

Official systems:

monitored.

Excel macro:

not.

Script local:

not.

Incident:

maybe shadow process.

Need:

discover.


☕ O componente mais crítico

pode estar:

no desktop do João.


🧠 Bus factor again

People are dependencies.

Observe.


🧠 Streetlight e monitoring design

A mature observability strategy asks:

not only:

“What should we measure?”

But:

“Where are we blind?”

Maintain:

blind spot register.


🧠 Blind Spot Register

BLIND SPOT:
External partner latency

IMPACT:
Payment timeout

CURRENT EVIDENCE:
Customer complaints only

MITIGATION:
Synthetic probe

Useful.


🎯 Pergunta Bellacosa nº 25

“Quais são nossos cinco maiores pontos cegos conhecidos?”

Excellent executive question.


🧠 Synthetic Monitoring

Great way to:

move light toward:

user journey.

Test:

from outside.


🧠 Real User Monitoring

Another view.

Internal green.

External slow.

Now:

see.


☕ Olhar de dentro

e olhar de fora.

Duas lanternas.


🧠 Streetlight e canaries

Canary transactions.

Business checks.

Useful.


🧠 Streetlight and data quality

Technical service green.

Business reconciliation red.

Need:

business observability.


🧠 Business Metrics

Not only:

technical.

Transaction value.

Success.

Balance.


🎯 Pergunta Bellacosa nº 26

“Temos observabilidade técnica ou observabilidade do negócio também?”

Huge.


🧠 Streetlight Effect em uma linha COBOL

       IF LOG-AVAILABLE = 'Y'
           PERFORM SEARCH-HERE
       ELSE
           MOVE 'NOT-CAUSE'
             TO ASSUMPTION
       END-IF.

Bug.


💻 Correção

       IF LOG-AVAILABLE = 'Y'
           PERFORM SEARCH-HERE
       ELSE
           PERFORM EVALUATE-BLIND-SPOT
       END-IF.

Much better.


🧠 Bellacosa Search Strategy

When incident:

1. Start where evidence points.

Not where tools are nice.

2. List plausible layers.

Don't tunnel.

3. Mark blind spots.

Known dark.

4. Seek disconfirming evidence.

Kill hypotheses.

5. Trace end-to-end.

Customer journey.

6. Expand instrumentation after incident.

Move lamp.


📋 Checklist anti-Streetlight

[ ] Por que estamos investigando esta área?

[ ] Existe evidência ou apenas boa observabilidade?

[ ] Que componentes estão no escuro?

[ ] Alguma dependência externa está fora do painel?

[ ] O sintoma pode ser efeito e não causa?

[ ] Que hipótese contradiz nossa favorita?

[ ] Qual especialista ainda não está na sala?

[ ] Estamos ignorando interfaces entre times?

[ ] O dado de entrada foi validado?

[ ] Houve mudança de volume?

[ ] Existe trabalho manual escondido?

[ ] Um fornecedor é black box?

[ ] Nosso monitor detectaria essa classe de falha?

[ ] Podemos seguir uma transação ponta a ponta?

[ ] Qual evidência gostaríamos de ter e não temos?

🧠 Bellacosa Darkness Map

Antes de incidentes grandes:

WELL OBSERVED:
Db2
CICS
CPU

PARTIALLY OBSERVED:
MQ
Network

POORLY OBSERVED:
External API
User device
Manual reconciliation

UNKNOWN:
Legacy transfer chain

Isso é:

humildade operacional.


☕ Saber onde está escuro

já é:

forma de observabilidade.


🧠 Red Team da Observabilidade

Pergunte:

“Como um incidente poderia acontecer sem gerar nenhum de nossos alertas?”

Excelente.

Depois:

simulate.


🧠 Failure Injection

Chaos engineering can:

test blind spots.

But:

safely.


🧠 Tabletop

Cheaper.

“What if?”


🎯 Pergunta Bellacosa nº 27

“Qual falha grave passaria silenciosamente por todos os sensores atuais?”

Excellent.


🧠 Streetlight e AI Red Team

Ask model:

given monitoring map,

find blind spots.

Useful.

But:

human validation.


🧠 AI can help expand search

Instead of:

just ranking logged anomalies,

ask:

what unobserved dependencies could explain symptoms?

That's smarter.


☕ Use IA para:

mover a lanterna.

Não apenas:

examinar mais profundamente o mesmo poste.


🧠 Streetlight e Decision Journal

Record:

why investigated.

After RCA:

compare.

Were we biased?

Learn.


🧠 Incident Learning

If cause outside observed region:

add:

lesson.

Not only:

monitor.

Maybe:

architecture simplification.


🧠 Sometimes best fix is remove dark dependency

Not instrument:

everything.

Simplify.


☕ Menos corredor escuro

melhor que:

mil lanternas.


🧠 Streetlight e Need for Control

Instrumentation can grow:

infinitely.

Don't.

Prioritize:

risk.

Critical journeys.


🧠 Risk-Based Observability

Instrument:

high impact.

Hard failure.

Unknown.


🎯 Pergunta Bellacosa nº 28

“Estamos colocando luz onde há maior risco ou apenas onde é mais barato instalar a lâmpada?”

Perfeita.


🧠 Streetlight e McNamara — ciclo completo

Observe:

O QUE É FÁCIL MEDIR
        ↓
RECEBE DASHBOARD
        ↓
FICA VISÍVEL
        ↓
RECEBE ATENÇÃO
        ↓
RECEBE INVESTIGAÇÃO
        ↓
PARECE MAIS IMPORTANTE

Enquanto:

O DIFÍCIL DE MEDIR
        ↓
SEM DASHBOARD
        ↓
INVISÍVEL
        ↓
MENOS ATENÇÃO
        ↓
MENOS INVESTIGAÇÃO
        ↓
PARECE MENOS IMPORTANTE

Esse loop:

é perigoso.


🧠 Measurement becomes attention allocation

This is profound.

Dashboards don't only:

describe organization.

They decide:

where people look.


☕ Aquilo que ganha gráfico

ganha olhos.

Aquilo que ganha olhos

ganha orçamento.

Aquilo sem gráfico:

reza.


🧠 Streetlight em governance

Risk register includes:

known risks.

Management manages:

known.

Unknown:

ignored.

Need:

scenario planning.


🧠 Premortem

Imagine failure.

What could cause:

that isn't in risk register?

Excellent.


🎯 Pergunta Bellacosa nº 29

“O que pode nos derrubar justamente porque nunca entrou na lista?”


🧠 Streetlight em documentação

Runbook covers:

known incidents.

Future:

new.

Operator may search:

runbook only.

Need:

diagnostic thinking.


☕ Runbook é mapa

não:

território.

De novo.


🧠 Teach beginners hypotheses

Not only:

commands.

Why command?

What evidence?

What would prove wrong?

That's expertise development.


🧠 COBOL beginner maturity ladder

Nível 1

“Erro está no COBOL.”

Nível 2

“Vou ler código.”

Nível 3

“Vou validar input.”

Nível 4

“Vou mapear fluxo.”

Nível 5

“Vou testar hipóteses end-to-end.”

Nível 6

“Vou perguntar onde estamos cegos.”

Welcome:

seniority.


☕ Senior não sabe todas as respostas

Sabe:

onde ainda pode estar errado.


👻 Easter Egg final — a chave

Depois de quatro horas:

o Doctor pergunta:

— O que aconteceu imediatamente antes do primeiro timeout?

Alguém lembra:

— À 01:40 houve troca automática de certificado num proxy externo.

Silêncio.

— Temos log?

— Não.

— Dashboard?

— Não.

— Monitoring?

— Não.

— Então por que ninguém olhou?

Nosso jovem responde:

— Porque estava escuro.

Doctor:

— Finalmente.


🔧 Teste no proxy

Certificate chain:

incompleta.

Alguns clientes:

retries.

Timeout.

Application:

waiting.

Db2:

normal.

CICS:

normal.

MQ:

normal.

CPU:

normal.

O sistema interno estava:

fazendo exatamente aquilo que deveria.

O problema:

estava fora do poste.


☕ Quatro horas analisando Db2

Root cause:

certificado.

Um clássico universal.


🧠 Pós-incidente

Equipe adiciona:

synthetic monitoring.

Certificate expiry validation.

External dependency telemetry.

Service map.

Agora:

um pedaço do escuro:

ganha luz.


🧠 Não procuram culpado

Melhoram:

capacidade de enxergar.

Isso é:

maturidade.


📓 Diário do Doctor

Se guardar algumas ideias desta viagem, guarde estas:

Streetlight Effect é a tendência de procurar respostas onde é mais fácil procurar, em vez de onde a resposta é mais provável.

A anedota clássica envolve alguém procurando uma chave debaixo do poste porque ali existe luz, embora a tenha perdido em outro lugar.

Em TI, logs, dashboards, traces e conhecimento especializado criam regiões iluminadas.

Componentes pouco instrumentados podem virar pontos cegos.

McNamara Fallacy privilegia aquilo que conseguimos medir; Streetlight Effect privilegia aquilo que conseguimos investigar.

Metric Fixation faz o dashboard ganhar autoridade.

Representativeness faz o incidente “parecer” com algo conhecido.

Recency faz o incidente recente dominar a memória.

Confirmation Bias encontra sinais que apoiam nossa primeira hipótese.

Narrative Bias transforma esses sinais numa história convincente.

Action Bias nos faz agir sobre o componente onde temos console.

Illusion of Control faz confundir comandos disponíveis com controle real.

Sintoma não é causa.

Correlação temporal não é automaticamente causalidade.

Ausência de alertas só é evidência útil se o monitor realmente conseguir detectar aquela classe de falha.

A causa pode estar numa interface entre equipes, fornecedores ou tecnologias.

Tracing ponta a ponta é uma das melhores defesas.

Conhecer seus pontos cegos é parte da observabilidade.

E principalmente:

não procure a chave debaixo do poste apenas porque ali é confortável investigar. Se a evidência aponta para o estacionamento escuro, pegue uma lanterna e vá até lá.


🥚 Easter Egg final

Na manhã seguinte aparece um membro:

BELLACOSA.BIAS(STREETLIGHT)

Dentro:

       IF AREA-HAS-GOOD-LOGS = 'Y'
           PERFORM INVESTIGATE
       END-IF.

       IF AREA-HAS-NO-LOGS = 'Y'
           PERFORM CHECK-BLIND-SPOT
       END-IF.

       IF HYPOTHESIS = 'EASY-TO-TEST'
          AND EVIDENCE = 'WEAK'
           PERFORM EXPAND-SEARCH
       END-IF.

       IF DASHBOARD = 'GREEN'
          AND CUSTOMER = 'BROKEN'
           PERFORM LEAVE-THE-STREETLIGHT
       END-IF.

Comentário:

* THE LIGHT
* SHOWS WHERE
* YOU CAN SEE.
*
* NOT NECESSARILY
* WHERE THE ANSWER IS.

Outro:

* NO LOG
* DOES NOT MEAN
* NO PROBLEM.

Outro:

* FOLLOW THE TRANSACTION,
* NOT THE DASHBOARD.

Outro:

* IF EVERYONE
* IS LOOKING AT DB2,
* SOMEONE SHOULD
* LOOK SOMEWHERE ELSE.

E naturalmente:

* LOST KEY:
* DARK PARKING LOT.
*
* SEARCH LOCATION:
* UNDER LAMP.
*
* ROOT CAUSE:
* HUMAN.

Nosso jovem fecha o membro.

Ri.


🕰️ 06:34

Incident:

resolved.

Gerente pergunta:

— Então nossos dashboards estavam errados?

Nosso jovem:

— Não.

— Como não?

— Eles mostravam corretamente aquilo que estavam observando.

— Então qual era o problema?

Ele aponta para o mapa de dependências.

— Eles não estavam observando o lugar onde o problema estava.

Silêncio.

Doctor sorri.

— Excelente.

O gerente pergunta:

— Como impedimos isso da próxima vez?

Nosso jovem responde:

— Não impedimos completamente.

— Então?

— Aprendemos onde estão nossas áreas escuras.

— E colocamos mais dashboards?

— Às vezes.

Pausa.

— Em outras, colocamos pessoas melhores para perguntar onde ainda não olhamos.

Boa.

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

Na War Room fica uma frase:

“Observabilidade não é enxergar tudo. É saber o que enxergamos, saber o que não enxergamos e ter disciplina para procurar fora da luz quando as evidências exigirem.”

E talvez essa seja a essência do Streetlight Effect no Bellacosa Mainframe:

as ferramentas determinam onde é fácil procurar; engenharia madura garante que elas não determinem onde somos obrigados a acreditar que a verdade está.

☕🌀

Próxima parada: Search Satisfaction / Premature Search Termination — o dia em que encontramos a primeira explicação plausível, paramos de procurar e descobrimos tarde demais que havia uma segunda falha escondida logo atrás da primeira.

Sem comentários:

Enviar um comentário

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