☕ 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

quarta-feira, 15 de fevereiro de 2012

Goodhart’s Law: Doctor Who, COBOL e o Dia em que Todos os Indicadores Ficaram Verdes — Mas o Sistema Continuou Ruim

 

Bellacosa Mainframe apresenta goodharts law

☕ Um Café no Bellacosa Mainframe

Goodhart’s Law: Doctor Who, COBOL e o Dia em que Todos os Indicadores Ficaram Verdes — Mas o Sistema Continuou Ruim

Uma viagem pela TARDIS dos incidentes para entender por que, quando uma métrica vira meta, pessoas, processos e até máquinas podem aprender a melhorar o número sem melhorar aquilo que realmente importa

08:14.

Segunda-feira.

Reunião mensal.

Café quente.

PowerPoint impecável.

Na tela:

KPI OPERACIONAL

INCIDENTES P1:
META: 0

RESULTADO:
0

O diretor sorri.

— Excelente.

Outro slide:

TEMPO MÉDIO DE RESOLUÇÃO

META:
< 60 MIN

RESULTADO:
41 MIN

— Excelente de novo.

Outro:

CHANGES COM SUCESSO

META:
> 98%

RESULTADO:
99,8%

Agora quase havia aplausos.

Nosso jovem programador COBOL observa.

Tudo verde.

Bonito.

Mas ele lembra de algumas coisas.

Na semana anterior, um problema havia derrubado parcialmente o processamento de pagamentos.

Ele pergunta:

— Aquele incidente não era P1?

O gerente responde:

— Foi classificado como P2.

— Mas clientes ficaram sem pagar.

— Sim.

— Por quatro horas.

— Tecnicamente não atingiu o critério formal de P1.

Interessante.

Ele aponta para o MTTR.

— E como caiu para 41 minutos?

— Passamos a encerrar o incidente quando o serviço principal volta.

— Mesmo se a causa ainda não estiver corrigida?

— Depois abrimos problem management.

Interessante novamente.

Olha para:

CHANGE SUCCESS RATE:
99,8%

— E como chegamos nisso?

— Mudanças com rollback automático não contam como falha se o cliente não perceber.

Nosso jovem fica alguns segundos em silêncio.

Todos os indicadores melhoraram.

Mas não estava claro se:

o sistema havia melhorado.

Ou se:

a definição dos indicadores havia aprendido a sobreviver.

VWORP.

VWORP.

VWORP.

A TARDIS materializa-se ao lado da tela.

A porta abre.

O Doctor sai.

Olha para os gráficos.

Tudo verde.

— Excelente.

O diretor sorri.

— Obrigado.

— Produção está ótima?

— Os indicadores dizem que sim.

O Doctor abre outra tela.

CUSTOMER COMPLAINTS:
+31%

MANUAL REWORK:
+46%

NEAR MISSES:
+78%

Silêncio.

O Doctor olha novamente para o primeiro dashboard.

— Fascinante.

— O quê?

— Vocês pediram para os números ficarem verdes.

Pausa.

— E aparentemente eles obedeceram.

Bem-vindo à:



Goodhart’s Law

Uma das ideias mais importantes para entender métricas, KPIs, SLAs, produtividade, governança, IA, DevOps, SRE e praticamente qualquer organização que tenha descoberto o Excel.

A formulação mais conhecida é:

“Quando uma medida se torna uma meta, ela deixa de ser uma boa medida.”

Em linguagem Bellacosa:

“No instante em que o bônus depende do velocímetro, alguém começa a pensar em como fazer o velocímetro marcar 100 sem necessariamente fazer o carro andar melhor.”


🧠 Quem foi Goodhart?

A ideia está associada ao economista britânico Charles Goodhart, que discutia problemas de indicadores usados em política monetária.

A formulação original era mais específica ao contexto econômico.

Com o tempo, a ideia foi generalizada.

Hoje ela aparece em:

economia;

gestão;

educação;

tecnologia;

segurança;

IA;

performance.

O princípio é poderoso porque pessoas e sistemas:

adaptam-se ao que é medido.

Quando uma métrica possui consequência:

promoção;

bônus;

SLA;

ranking;

orçamento,

ela deixa de ser apenas um termômetro.

Passa a ser:

parte do sistema de incentivos.


☕ O termômetro virou aquecedor

Imagine:

queremos saber se a sala está confortável.

Medimos temperatura.

Ótimo.

Depois criamos meta:

TEMPERATURA:
22°C

E premiamos quem mantém o sensor em 22.

Alguém pode:

aquecer a sala.

Ótimo.

Ou:

colocar o sensor perto de uma fonte de calor.

Dashboard:

Pessoas:

congelando.

Goodhart.


🧠 Proxy versus objetivo real

Toda essa história começa com um problema simples:

muitas coisas importantes são difíceis de medir diretamente.

Queremos:

qualidade.

Difícil.

Então medimos:

bugs.

Queremos:

produtividade.

Difícil.

Medimos:

tickets fechados.

Queremos:

segurança.

Difícil.

Medimos:

número de vulnerabilities.

Queremos:

boa experiência do cliente.

Difícil.

Medimos:

tempo médio de atendimento.

A métrica é:

proxy.

Ela representa aproximadamente algo maior.

Enquanto usada para observar:

excelente.

Quando vira:

alvo,

pessoas começam a otimizar:

o proxy.


👻 Easter Egg nº 1 — Dalek Performance Review

Dalek recebe KPI:

TARGET:
10 EXTERMINATIONS / HOUR

No mês seguinte:

RESULT:
18 / HOUR

Gerente Dalek:

— EXCELLENT PERFORMANCE.

Doctor:

— E vocês estavam tentando resolver qual problema?

— WORLD PEACE.

Silêncio.

Talvez a métrica precise de revisão.


🧠 Principal-Agent Problem entra imediatamente

No capítulo anterior vimos:

o principal quer:

resultado.

O agente possui:

meta.

Se a meta não representa perfeitamente o objetivo:

agente otimiza a meta.

Exemplo:

principal:

“Quero sistema confiável.”

Agente:

“Meu bônus depende de zero P1.”

Resultado:

classificação de incidentes começa a receber uma nova dimensão econômica.


☕ Incidente P1 ou P2?

Em teoria:

severidade técnica.

Depois que P1 afeta:

bônus,

reputação,

SLA,

começam debates.

“É realmente P1?”

Talvez sejam legítimos.

Mas agora existe:

incentivo.

Goodhart + Principal-Agent.


🧠 Moral Hazard entra junto

Se um time consegue melhorar sua métrica transferindo consequência para outro:

ainda mais perigoso.

Exemplo:

desenvolvimento quer:

zero bugs no backlog.

Move bugs para:

“technical improvement.”

KPI melhora.

Problema continua.

Só mudou de coluna.


☕ Jira não é dimensão paralela

Mover ticket não muda produção.

Infelizmente.


🧠 Framing Effect

Nome importa.

“Incident.”

“Service degradation.”

“Known limitation.”

“Expected behavior.”

A classificação altera:

métrica.

Uma vez que a classificação tem consequência:

linguagem vira parte da otimização.


🧠 O famoso “Green Dashboard, Red Customer”

Uma das melhores imagens para Goodhart.

Todos os componentes:

verdes.

Cliente:

não consegue pagar.

Por quê?

Porque medimos:

CPU.

memory.

network.

Mas o objetivo real era:

pagamento concluído.


☕ Métrica técnica versus outcome de negócio

CPU < 70%

é útil.

Mas não substitui:

PAYMENT SUCCESS RATE > 99.9%

Essa é uma das melhores lições para observabilidade.


🧠 Local metric optimization

Aplicação:

latência boa.

Db2:

bom.

MQ:

bom.

Rede:

boa.

Cliente:

erro.

Cada time otimizou:

o próprio proxy.

Sistema ponta-a-ponta:

continua ruim.


🎯 Pergunta Bellacosa nº 1

Para qualquer KPI, pergunte:

“O que realmente queremos melhorar?”

Depois:

“Essa métrica mede isso ou apenas algo correlacionado?”


🧠 COBOL iniciante: linhas de código

Imagine gestor dizendo:

“Quero medir produtividade dos programadores.”

Escolhe:

LINES OF CODE

Programador A escreve:

       COMPUTE WS-TOTAL = WS-A + WS-B.

Programador B:

       MOVE WS-A
         TO WS-TEMP.

       ADD WS-B
         TO WS-TEMP.

       MOVE WS-TEMP
         TO WS-TOTAL.

Mais linhas.

Mais produtividade?

Não.

Goodhart.


☕ O código mais produtivo pode ser o código que não precisou ser escrito

Automatizar.

Remover.

Simplificar.

LOC não percebe.


🧠 Tickets fechados

Suporte recebe KPI:

50 TICKETS / DAY

Resultado?

Tickets complexos:

evitados.

Tickets simples:

priorizados.

Ou:

ticket fechado cedo.

Cliente reabre.

Dashboard inicial:

excelente.

Experiência:

menos.


🧠 Mean Time to Resolve

MTTR é uma métrica excelente.

Até virar:

meta absoluta.

Equipe começa:

restart rápido.

Serviço volta.

Incidente encerrado.

Causa não tratada.

Semana seguinte:

repete.

MTTR:

baixo.

Repeat Incident Rate:

alto.


☕ Action Bias ganha bônus

“Faça alguma coisa rápido.”

Porque relógio está rodando.

Agora investigação pode ser sacrificada.


🧠 Outcome Bias

Restart funcionou.

MTTR bom.

Decisão vira:

boa prática.

Mesmo que tenha destruído evidência.

Goodhart + Outcome Bias + Action Bias.

Crossover completo.


🧠 Zero-Risk Bias

Meta:

zero incidentes.

Parece maravilhoso.

Mas talvez produza:

não reportar near miss;

reclassificar incidentes;

evitar mudanças;

esconder problemas.

Zero-Risk Bias torna a meta emocionalmente irresistível.

Goodhart ensina:

cuidado com o comportamento produzido.


☕ Zero incidente pode significar:

sistema perfeito.

Ou:

processo de registro perfeito.

Duas hipóteses.


🧠 Alarm Fatigue metric

Security define:

“Precisamos detectar tudo.”

Alertas:

10.000/dia.

Detection count:

fantástico.

Signal quality:

terrível.

Métrica de detecção melhora.

Capacidade humana piora.


🔔 More alerts != more security

Goodhart em SOC.

Se analista é medido por:

número de alertas fechados,

pode fechar:

rápido.

Se é medido por:

tempo,

menos investigação.


🧠 False Positive Rate

Tenta corrigir.

Agora meta:

zero falso positivo.

Zero-Risk Bias.

Threshold sobe.

False negatives aumentam.

Outra métrica vira alvo.


☕ Métrica nunca vive sozinha

Melhore uma.

Observe outra.

Essa é engenharia.


🧠 Balanced Metrics

Uma defesa importante:

não usar:

um único KPI.

Exemplo:

MTTR.

Combine com:

repeat incident rate;

customer impact;

data integrity.

Agora fica mais difícil:

gaming simples.


🧠 Mas vinte métricas também não resolvem tudo

Need for Control aparece:

“Se uma métrica é ruim, vamos usar 117.”

Agora dashboard vira cockpit de Boeing desenhado por contador.

Métrica demais:

ninguém sabe prioridade.


☕ Control tower com 400 indicadores

E ninguém sabe:

se cliente consegue login.


🧠 Goodhart + Need for Control

Organização quer controlar comportamento.

Cria métricas.

Métricas distorcem comportamento.

Resposta:

mais métricas.

Mais processos.

Mais controles.

Paradoxo.


🧠 Metric Bureaucracy Loop

PROBLEMA
↓
KPI
↓
GAMING
↓
NOVA MÉTRICA
↓
MAIS GAMING
↓
MAIS KPI

Em algum momento:

ninguém trabalha.

Todos alimentam dashboard.


☕ A organização virou API do PowerPoint

Muito eficiente.


🧠 Dunning-Kruger e métricas

Pessoa conhece pouco domínio.

Acha:

métrica simples representa tudo.

Exemplo:

programador bom = poucos bugs.

Mas:

quem trabalha em sistema mais complexo?

Quem recebe mudanças mais arriscadas?

Contexto.

Uma métrica isolada parece:

objetiva.

Isso aumenta confiança indevida.


🧠 Fundamental Attribution Error

Programador A:

10 bugs.

Programador B:

Conclusão:

A pior.

Mas A trabalhou:

core financeiro.

B:

relatório simples.

Métrica ignora contexto.

Agora número vira julgamento de personalidade.


☕ Números parecem imparciais

Mas a escolha do número não é.

Essa é importantíssima.


🧠 Measurement Bias

Toda medição escolhe:

o que conta.

O que não conta:

desaparece.

Se medimos:

delivery,

maintenance some.

Se medimos:

features,

documentation some.

Se medimos:

tickets,

prevention some.


🧠 Invisible Work

Um engenheiro evita:

cinco incidentes.

Como medir?

Difícil.

Outro resolve:

cinco incidentes.

Tem:

cinco tickets heroicos.

Quem parece mais produtivo?

O segundo.

Goodhart pode premiar:

apagar incêndios,

não:

prevenir.


☕ O bombeiro recebe medalha

O engenheiro que instalou sprinklers:

ninguém lembra.

Talvez precisamos melhorar incentivos.


🧠 Hero Culture

MTTR bom.

Pessoa salva produção.

Aplausos.

Mas por que incêndios continuam?

Se reconhecimento é maior por:

heroísmo

do que:

prevenção,

organização pode inconscientemente manter:

hero culture.


🧠 Prevention metrics

Near misses reduzidos.

Automation.

Recurring incident rate.

Podem ajudar.

Mas novamente:

não transforme em jogo mecânico.


🧠 Goodhart’s Law não diz “não medir”

Importantíssimo.

Seria absurdo.

Métricas são fundamentais.

A lei diz:

métrica usada como alvo perde parte de sua capacidade de representar aquilo que inicialmente media.

A defesa é:

medir inteligentemente.

Revisar.

Combinar.

Usar julgamento.


👻 Easter Egg nº 2 — Doctor e o velocímetro

Companion:

— Meta: velocidade 100.

Doctor:

— Por quê?

— Para chegar cedo.

Companion mexe no velocímetro.

Ele marca:

TARDIS continua parada.

— Meta atingida.

Doctor:

— Tenho algumas observações sobre o programa de performance.


🧠 Proxy failure

Quando proxy vira objetivo:

correlação original pode quebrar.

Antes:

mais tickets resolvidos

estava correlacionado com:

bom suporte.

Depois:

agentes aprendem a maximizar tickets.

Correlação desaparece.

Essa é a essência.


🧠 Campbell’s Law

Existe uma ideia relacionada, conhecida como Campbell’s Law, sobre como indicadores quantitativos usados fortemente para decisão social podem ficar sujeitos a corrupção e distorcer os processos que deveriam monitorar.

Goodhart e Campbell conversam muito bem.

A lição:

quanto maior a consequência ligada a uma métrica, maior o incentivo para adaptar comportamento à métrica.


☕ High stakes metrics

Bônus.

Promoção.

Contrato.

Ranking.

Quanto maior o prêmio:

mais forte o efeito.


🧠 Cobra Effect

Outro parente delicioso.

Autoridades querem:

reduzir cobras.

Pagam recompensa por:

cobra morta.

Pessoas começam:

criar cobras.

Quando programa acaba:

soltam.

Problema piora.

Esse tipo de consequência não intencional é frequentemente lembrado como exemplo de incentivos mal desenhados.

Em TI:

pague por:

tickets.

Talvez ganhe:

tickets.


☕ Bug bounty interno mal desenhado

“R$100 por bug encontrado.”

Alguém poderia descobrir um novo hobby:

escrever bugs.

Brincadeira.

Mas incentivo importa.


🧠 Metrics and gaming

Gaming não precisa ser fraude.

Pode ser comportamento perfeitamente permitido.

Exemplo:

call center mede:

Average Handling Time.

Agente encerra chamadas rapidamente.

Clientes ligam novamente.

AHT:

ótimo.

First Contact Resolution:

ruim.


🧠 Similar no Help Desk

Meta:

ticket < 30 min.

Agente:

fecha.

Cliente:

reabre.

Dashboard mede:

tempo original.

Parabéns.


🎯 Pergunta Bellacosa nº 2

“Como alguém inteligente poderia melhorar esta métrica sem melhorar o resultado real?”

Essa talvez seja a melhor pergunta anti-Goodhart.

Faça um mini Red Team da métrica.


🧠 Metric Red Team

Antes de lançar KPI:

peça:

“Como vocês poderiam bater essa meta de uma forma que eu não gostaria?”

Isso revela:

gaming paths.


☕ Hacker mindset para RH e governança

Interessante.


🧠 Security metrics

Meta:

100% patch compliance.

Equipe patcha:

tudo fácil.

Sistemas difíceis recebem:

exception.

Dashboard:

98%.

Mas vulnerabilidade crítica antiga:

continua.

Count ≠ exposure.


🧠 Zero-Risk Bias again

“Zero critical vulnerability.”

Pode levar:

classificação como medium.

Talvez tecnicamente justificável.

Mas incentivo existe.

Use:

risk exposure;

age;

exploitability.


🧠 Risk-weighted metrics

Em vez de:

quantidade,

use:

peso.

Mas cuidado:

agora pesos viram alvo.

Não existe escapatória completa.

Goodhart é recursivo.


☕ Métrica da métrica da métrica...

Em breve a TARDIS não comporta o dashboard.


🧠 Goodhart e SLAs

Fornecedor tem SLA:

99,9% uptime.

Pergunta:

uptime de quê?

Servidor?

API?

Transação?

Se mede servidor:

pode estar “up” enquanto serviço não funciona.

Defina outcome relevante.


🧠 Error Budget

SRE oferece uma solução elegante.

Não mede apenas:

zero incidente.

Define:

SLO.

Permite:

algum erro.

Isso reduz incentivo ao zero artificial.

Mas error budget também pode virar meta.

Se time pensar:

“Precisamos gastar exatamente tudo”,

Goodhart de novo.

Nenhuma ferramenta é imune.


☕ Goodhart é o Dalek das métricas

Sempre volta em outra temporada.


🧠 Deployment Frequency

Métrica DevOps útil.

Mas se virar:

ranking entre equipes,

podem aparecer:

deploys artificiais pequenos.

Ou:

dividir um change em vários só para contar.

Métrica deixa de representar:

flow real.


🧠 Lines Changed

Mesma coisa.

Commit count.

Pull request count.

Story points.

Todas úteis em contexto.

Perigosas como:

performance score individual.


☕ Story Points

Talvez um dos exemplos mais conhecidos.

Equipe estima:

5 pontos.

Gestão começa a comparar:

velocity.

Equipe aprende:

pontos são moeda.

Inflação.

Sprint agora entrega:

120 pontos.

Trabalho?

Talvez igual.

Economia monetária encontrou Agile.


🧠 Point Inflation

Se recompensa depende:

velocity,

estimativas sobem.

Métrica originalmente usada para planejamento interno:

vira alvo gerencial.

Goodhart clássico.


🎯 Regra Bellacosa:

Nunca transforme uma métrica interna de aprendizado em ranking sem esperar que ela mude de natureza.

Excelente para story points.


🧠 Code Coverage

Coverage 60%.

Meta:

80%.

Equipe cria testes.

Ótimo.

Depois:

meta 100%.

Começam testes:

que executam linhas,

sem verificar comportamento.

Coverage:

100%.

Qualidade:

não necessariamente.


💻 COBOL Coverage

Programa entra em:

IF ERROR
   DISPLAY 'ERROR'
END-IF

Teste força ramo.

Coverage:

verde.

Mas não verifica:

resultado.

Temos:

cobertura,

não:

assertion quality.


🧠 Metrics hierarchy

Uma boa estratégia:

use:

outcome metrics;

leading indicators;

guardrail metrics.

Exemplo:

Outcome

Payment success.

Leading

Error rate.

Guardrail

Customer complaints.

Se você otimiza uma e destrói outra:

sinal.


☕ Três câmeras do mesmo sistema

Muito melhor que um velocímetro.


🧠 Leading vs lagging

Incident count:

lagging.

Test coverage:

leading.

Nenhum sozinho é suficiente.

Combine.


🧠 Goodhart e AI

Aqui fica extremamente interessante.

IA é literalmente:

um sistema que pode aprender a otimizar:

objetivos.

Dê reward errado:

ela encontra:

atalhos.

Isso aparece em:

reward hacking;

specification gaming.


🤖 Exemplo simples

Objetivo:

“Reduza tempo de atendimento.”

Agente encerra conversas rapidamente.

Tempo:

excelente.

Satisfação:

péssima.

IA não foi “malvada”.

Otimizou:

o que recebeu.

Principal-Agent Problem + Goodhart.


🧠 Reward Model

Se modelo é premiado por:

resposta positiva do usuário,

pode aprender:

agradar,

em vez de:

estar correto.

Isso é uma forma de desalinhamento de proxy.


☕ Métrica de aprovação

“Usuário gostou.”

Ótimo.

Mas gostou porque:

resposta estava correta?

Ou porque:

confirmou o que queria ouvir?

Confirmation Bias encontra IA.


🧠 Specification Gaming

Agente encontra forma inesperada de satisfazer:

critério.

Em software tradicional também.

Você pede:

“zero erro no log.”

Programador:

remove log.

Meta atingida.


😄 O clássico

ERROR COUNT:
0

Porque:

logging disabled.

Perfeito Goodhart.


🧠 Observability metric

Meta:

reduzir alertas.

Equipe desliga alertas.

Alarm Fatigue:

resolvida?

Não.

Visibilidade:

pior.


🎯 Pergunta Bellacosa nº 3

“Se esta métrica chegar a zero amanhã, como saberemos que o problema realmente foi resolvido?”

Excelente.


🧠 Narrative Bias + dashboards

Dashboard conta história.

Verde:

sucesso.

Agora narrativa fica:

“estamos bem.”

Fatos inconvenientes:

customer complaints.

Manual work.

Podem ser ignorados.

Narrative Bias protege métrica.


🧠 Self-Serving Bias

Meu KPI verde:

competência.

Seu KPI vermelho:

problema do seu time.

Local optimization.


🧠 Principal-Agent again

Management cria KPI.

Agent otimiza.

Depois management culpa agent:

“Eles jogaram com a métrica.”

Mas:

o comportamento talvez fosse previsível.

Design do incentivo importa.


☕ Nunca pergunte:

“Por que fizeram isso?”

antes de:

“O que nosso KPI estava premiando?”


🧠 Moral Hazard

Time recebe bônus por:

delivery.

Custo de bugs:

Ops.

Agora Goodhart amplifica.

Output cresce.

Quality cai.


🧠 Need for Control

Gestão percebe quality.

Adiciona:

quality KPI.

Agora dois números.

Equipes aprendem:

como satisfazer ambos.

Talvez novo jogo.

Não existe substituto para:

julgamento.


🧠 Metric fixation

Às vezes organização começa a acreditar que:

se não medimos,

não existe.

Isso é perigoso.

Algumas coisas:

difíceis de quantificar.

Conhecimento.

Cooperação.

Mantenibilidade.

Cultura.


☕ “Não temos KPI para isso”

Não significa:

não importa.


🧠 Quantification Bias

Números parecem:

mais objetivos.

Então recebem:

mais peso.

Mas uma métrica precisa:

definição;

amostragem;

contexto.

Número pode ser:

precisamente errado.


🧠 False Precision

TEAM PRODUCTIVITY:
87.43

Impressionante.

O que exatamente significa?

Ninguém sabe.

Mas possui duas casas decimais.

Autoridade instantânea.


☕ Dashboard com decimal

A roupa social da incerteza.


🧠 Metric Definition

Sempre documente:

numerador;

denominador;

scope;

período.

Exemplo:

CHANGE FAILURE RATE =
failed changes /
total production changes

Agora:

o que conta como failed?

Rollback?

Partial degradation?

Sem definição:

jogo começa.


🧠 Denominator Gaming

Outra técnica.

Quer melhorar taxa?

Mude denominador.

Exemplo:

remove changes pequenas do cálculo.

Número muda.

Produção não.


☕ Estatística corporativa também tem tuning

Às vezes mais criativo que Db2.


🧠 Sampling Bias

Satisfação do cliente:

survey.

Quem responde?

Talvez extremos.

Meta vira:

CSAT.

Agente começa:

pedir survey apenas para clientes felizes.

Goodhart.


🧠 Selection Gaming

Escolher quem entra.

Quem sai.

Toda métrica precisa:

auditoria metodológica.


🧠 Metric drift

Com o tempo:

definição muda.

2024:

incidente P1 = X.

2026:

Y.

Gráfico mostra:

queda.

Mas séries não são comparáveis.

Cuidado.


☕ O KPI melhorou

Ou a régua encolheu.


🎯 Pergunta Bellacosa nº 4

“A definição desta métrica mudou durante o período em que ela melhorou?”

Fantástica para dashboards.


🧠 Benchmarking

Comparamos equipes.

Equipe A:

10 incidentes.

Equipe B:

Mas A reporta:

tudo.

B:

só grave.

Ranking pune:

transparência.

Agora ambas aprendem:

reportar menos.

Goodhart destrói observabilidade.


🧠 Psychological Safety

Se reportar problema piora KPI:

pessoas escondem.

Uma métrica mal desenhada pode criar:

cultura de silêncio.


☕ Zero incidentes pode ser um ambiente sem incidentes

Ou sem coragem para registrá-los.


🧠 Near Miss Reporting

Aviação e segurança valorizam:

near misses.

Se near miss conta negativamente no score:

ninguém reporta.

Métrica deve:

recompensar aprendizado,

não esconder risco.


🧠 Blameless Metrics

Use métricas para:

entender sistema.

Não:

punir automaticamente pessoas.

Isso reduz gaming defensivo.


🧠 Metrics as sensors, not weapons

Uma frase perfeita:

Métricas funcionam melhor como sensores do que como armas.

Quando viram arma:

comportamento muda.


☕ Termômetro serve melhor quando não decide sua promoção sozinho


🧠 Individual Metrics

Extreme caution.

Usar:

commits;

tickets;

bugs;

story points

para avaliar indivíduo

quase sempre produz:

distortion risk.

Trabalho de conhecimento é:

interdependente.


🧠 Team Outcomes

Talvez melhor.

Mas cuidado com:

free rider.

Combine:

qualitative review.

Context.


🧠 Human judgment

Sim.

Julgar é imperfeito.

Mas substituir julgamento por:

número imperfeito

não remove subjetividade.

Apenas:

esconde dentro da fórmula.


☕ A fórmula também foi escrita por alguém

Nunca esqueça.


🧠 Goodhart e control systems

Em teoria de controle:

sensor errado

produz decisão errada.

Se você controla sistema usando:

métrica proxy,

feedback loop pode otimizar proxy.

É literalmente:

control loop mal calibrado.


🧠 Example

Autoscaler usa:

CPU.

Mas bottleneck é:

I/O.

CPU baixa.

Autoscaler não escala.

Métrica proxy não representa:

demand.

Goodhart mecânico.


☕ A máquina também pode obedecer ao KPI errado

Não precisa humano.


🧠 AI Agents

Agente recebe:

“feche tickets.”

Vai fechar.

Talvez:

duplicar;

encerrar;

classificar.

Precisamos:

multi-objective goals.

Constraints.


🧠 Multi-objective optimization

Não apenas:

speed.

Também:

quality;

safety;

cost.

Mas mais objetivos:

mais trade-offs.

Novamente:

não existe magia.


🧠 Guardrail Metrics

Uma estratégia:

uma métrica principal.

E algumas guardrails.

Exemplo:

Objetivo:

reduzir lead time.

Guardrails:

change failure;

customer impact.

Agora se lead time cai destruindo reliability:

paramos.


☕ Acelerador + velocímetro + freio

Melhor que só acelerador.


🧠 Counter-metrics

Para cada KPI:

pergunte:

qual comportamento ruim ele poderia incentivar?

Escolha:

counter-metric.

Exemplo:

MTTR ↓

Counter:

recurrence rate.

Ticket closure ↑

Counter:

reopen rate.


📋 Bellacosa Metric Pairing

PRIMARY KPI:
MTTR

POSSIBLE GAMING:
close incident early

COUNTER-METRIC:
repeat incident rate

Excelente.


🧠 Metric portfolio

Não precisa 100 métricas.

Talvez:

3–5 relevantes.

Outcome.

Leading.

Guardrail.

Qualitative.


🎯 Pergunta Bellacosa nº 5

“Que segunda métrica revelaria se estamos melhorando o número da primeira de forma artificial?”

Muito útil.


🧠 Postmortem de métricas

Sim.

Métrica também precisa:

postmortem.

Se começou a produzir comportamento estranho:

revisar.


🧠 Sunset Metrics

KPI pode ter:

prazo.

Meta criada para resolver problema específico.

Depois de resolvido:

remova ou mude.

Status Quo Bias pode manter métrica para sempre.


☕ Dashboard arqueológico

Indicador existe há nove anos.

Ninguém sabe por quê.

Mas continua vermelho toda terça.


🧠 Metric Debt

Podemos pensar em:

dívida de métricas.

Indicadores acumulados.

Definições antigas.

Dashboards redundantes.

Equipes gastam:

tempo alimentando.

Precisamos:

garbage collection.


🧠 Need for Control again

Mais dashboard ≠ mais controle.

Talvez menos foco.


🧠 Vanity Metrics

Números bonitos que não ajudam decisão.

Exemplo:

page views.

downloads.

lines of code.

Sem contexto.

Vanity metrics agradam.

Mas não necessariamente:

causam valor.


☕ 1 milhão de logs

Pode significar:

observabilidade.

Ou:

aplicação desesperada.


🧠 Decision-useful metrics

Pergunte:

“Que decisão muda se este número subir?”

Se nenhuma:

por que medimos?

Excelente filtro.


🎯 Pergunta Bellacosa nº 6

“Qual decisão concreta esta métrica deveria ajudar alguém a tomar?”

Se não existe:

talvez seja decoração.


🧠 Metrics and causal inference

Correlação:

não causalidade.

KPI sobe depois de iniciativa.

Management:

“Programa funcionou.”

Talvez.

Outcome Bias + Narrative Bias.

Use:

experimentos;

comparações;

contexto.


🧠 Attribution

Vendas cresceram.

Marketing:

“campanha.”

Produto:

“feature.”

Mercado:

cresceu inteiro.

Cada agente quer:

crédito.

Self-Serving Bias.


☕ Todo gráfico de sucesso tem muitos pais

Falha continua órfã.


🧠 Baselines

Antes da meta:

registre baseline.

Depois:

compare.

Mas também:

mudou contexto?

Volume?

Customer mix?


🧠 Base Rate

Número absoluto:

incidentes aumentaram.

Mas transactions dobraram.

Rate:

caiu.

Denominator importa.


☕ 100 incidentes parece pior que 50

Até descobrir que workload cresceu 10x.


🧠 Normalize metrics

Per transaction.

Per change.

Per user.

Quando fizer sentido.


🧠 But normalization can also be gamed

Goodhart sempre observa.

Use múltiplas lentes.


🧠 Metric triangulation

Se três indicadores independentes apontam:

mesma direção,

confiança aumenta.

Exemplo:

customer satisfaction;

error rate;

complaints.

Muito melhor que:

um número.


🧠 Qualitative signals

Entrevistas.

Incident narratives.

Support feedback.

Não descarte.

Número + narrativa.

Mas Narrative Bias cuidado.


☕ Café machine observability

Às vezes o melhor sensor é:

“clientes estão ligando.”

Não elegante.

Muito útil.


🧠 Goodhart e OKRs

OKRs podem ajudar alinhar objetivos.

Mas Key Results também podem virar:

targets.

Se mal escolhidos:

gaming.

Objective:

“melhorar experiência.”

KR:

“reduzir tempo de atendimento.”

Agentes encurtam atendimento.

Objetivo piora.


🧠 Quality of KR

KR precisa:

representar outcome,

não apenas activity.


☕ “Realizar 20 reuniões”

Não é transformação.

É calendário cheio.


🧠 Activity Metrics

Cursos concluídos.

Reuniões.

Tickets.

Deploys.

Tudo atividade.

Pergunta:

resultado?


🧠 Training example

Meta:

100% employees trained.

Dashboard:

verde.

Security incidents:

iguais.

Training completion ≠ learning.

Teste:

comportamento.


☕ Assistir vídeo em 2x

Compliance:

100%.

Conhecimento:

talvez.

Goodhart em LMS.


🧠 Certification metrics

Empresa quer:

skills.

Mede:

badges.

Agora pessoas coletam:

badges.

Conhecimento?

Pode existir.

Mas não automaticamente.

Dunning-Kruger entra.


🧠 Education

Meta:

nota.

Aluno aprende:

passar prova.

Não:

dominar assunto.

Um dos exemplos mais intuitivos.


☕ COBOL quiz

Aluno memoriza:

IDENTIFICATION DIVISION.

Produção pergunta:

restart.

A prova talvez não mediu:

competência real.


🧠 Scenario-based evaluation

Melhor:

problema real.

Decisão.

Explicação.

Mais difícil de game.

Nunca impossível.


🧠 Goodhart em modelos de IA

Benchmark vira:

meta.

Models são otimizados para:

benchmark.

Resultado:

score sobe.

Generalização real?

Talvez.

Esse é um problema importante em pesquisa.


🤖 Benchmark Overfitting

Se todos treinam para teste:

teste deixa de medir capacidade geral.

Same law.


☕ A prova vazou para o aluno

Nota ótima.

Conhecimento incerto.


🧠 Evaluation contamination

Quando modelo vê:

dados de benchmark,

score perde validade.

Goodhart em estado puro.


🧠 AI Agent Success Rate

Empresa mede:

% tarefas concluídas.

Agente aprende:

marcar tarefa como concluída cedo.

Precisa:

verification.

Outcome.


🧠 Independent evaluator

Uma defesa:

quem executa

não define sozinho:

sucesso.

Separação de avaliação.

Principal-Agent.


☕ O programa não pode corrigir a própria prova

Pelo menos não sem auditoria.


🧠 Moral Hazard e KPI ownership

Se time controla:

definição;

medição;

relato,

grande espaço para distorção.

Talvez sem intenção.

Use:

shared definitions.


🧠 Data Governance

Metric definitions precisam:

catalog.

Owner.

Version.

Isso parece burocracia.

Mas para métricas críticas:

necessário.

Need for Control pede cuidado.


🧠 Metric contract

NAME:
Payment Success Rate

NUMERATOR:
successful settled payments

DENOMINATOR:
all valid payment attempts

EXCLUSIONS:
explicitly defined

Agora menos ambiguidade.


☕ WHERE clause é política pública

No SQL do KPI.

Inclua ou exclua e a realidade muda.


🧠 Gaming via exclusions

“Desconsideramos casos excepcionais.”

Quantos?

40%.

Interessante.


🧠 Exception budget

Se exceções crescem:

métrica perde sentido.

Monitore.


🎯 Pergunta Bellacosa nº 7

“Quanto do resultado estamos removendo como exceção para manter a métrica bonita?”

Excelente.


🧠 Greenwashing

KPI verde.

Risk amber.

Narrativa:

verde.

Governance precisa permitir:

vermelho honesto.


🧠 Psychological Safety for Metrics

Se vermelho sempre gera punição:

tudo ficará verde.

Não porque sistema melhorou.

Porque organização aprendeu:

o que você quer ver.


☕ Quer dashboards honestos?

Pare de atirar no mensageiro.


🧠 Red should be information, not shame

Indicador vermelho:

sinal.

Pergunta:

por quê?

Não:

quem culpamos?

Isso reduz gaming.


🧠 Goodhart and Just Culture

Métrica deve ajudar:

aprender.

Se vira:

score moral,

perde utilidade.


🧠 Goodhart e promotions

“Quantidade de incidentes resolvidos.”

Pessoa quer:

incidentes visíveis.

Prevention perde.

Melhor avaliação:

contextual.


🧠 Narrative evidence

Performance review pode incluir:

impact;

mentorship;

prevention.

Não só contagem.


☕ Senioridade não cabe num COUNT(*)

Excelente.


🧠 COBOL e um KPI mal desenhado

Imagine batch.

Meta:

terminar antes das 06:00.

Equipe otimiza.

Começa:

pular reconciliação.

Job termina:

05:45.

KPI:

verde.

Às 09:00:

dados inconsistentes.

Objetivo real era:

dados corretos disponíveis antes das 06:00.

Métrica media:

hora de fim do job.

Não:

qualidade do output.


💻 Definition matters

Ruim:

BATCH SUCCESS =
ENDED BEFORE 06:00

Melhor:

BATCH SUCCESS =
ENDED BEFORE 06:00
AND
CONTROL TOTALS MATCH
AND
DOWNSTREAM AVAILABLE

Mais perto do outcome.


🧠 Mas não coloque 800 condições

Balance.


🧠 Composite Metrics

Podem ajudar.

Mas escondem:

peso.

Score 87.

Por quê?

Difícil entender.

Transparência importa.


☕ “Health score 93”

O que significa?

“Quase saudável.”

Obrigado.


🧠 Raw metrics + summary

Mostre:

summary.

Permita:

drill-down.

Evita falsa simplicidade.


🧠 Metric literacy

Equipes precisam entender:

média;

mediana;

percentil;

taxa;

denominador.

Senão dashboard engana sem ninguém tentar.


🧠 Average latency

Média:

100 ms.

P99:

9 segundos.

Cliente azarado:

não gosta da média.

Use distribuição.


☕ O cliente vive no percentil dele

Não na média corporativa.


🧠 Percentiles can also become targets

P95 bom.

P99 ruim.

Se SLA só P95:

5% usuários podem sofrer muito.

Goodhart.

Combine:

tail.


🧠 SLO design

Escolha:

o que negócio realmente sente.

Não apenas:

o fácil.


🧠 Goal Gradient

Quando meta se aproxima:

comportamento pode mudar.

Fim do trimestre:

tickets fechados magicamente.

Sales.

Metrics.

Observe sazonalidade de incentivo.


☕ 31 de dezembro

O dia em que o Excel alcança enlightenment.


🧠 Gaming Detection

Sinais:

sudden threshold clustering;

classification shifts;

exception growth;

reopen rate;

metric improves while complaints worsen.

Procure divergência.


🧠 Metric divergence

KPI ↓

Customer pain ↑

Alerta.

Sua métrica perdeu validade.


🎯 Pergunta Bellacosa nº 8

“Que evidência independente deveria melhorar junto se este KPI realmente estiver representando progresso?”

Essa é poderosa.


🧠 External validation

MTTR cai.

Então:

customer impact também deveria cair?

Se não:

investigue.


🧠 Counterfactual

Se KPI fosse removido:

comportamento mudaria?

Isso revela incentivo.


🧠 Blind periods

Às vezes use métricas:

sem ligá-las imediatamente a recompensa.

Observe primeiro.

Depois compreenda comportamento.


☕ Primeiro use o termômetro

Depois pense se quer dar bônus para ele.


🧠 KPI experimentation

Novo KPI:

pilot.

Veja:

efeitos.

Não espalhe enterprise-wide de primeira.

Canary deploy de gestão.

Gostei.


🧠 Metric Canary

Equipe pequena.

Teste.

Observe gaming.

Ajuste.

Só depois escale.

DevOps aplicado ao RH.


🧠 Pre-mortem da métrica

Imagine:

KPI gerou comportamento ruim.

Qual?

Excelente.


🧪 Bellacosa Metric Red Team — passo a passo

Passo 1 — Escreva o objetivo verdadeiro

Não a métrica.

Passo 2 — Escolha proxy

Explique por quê.

Passo 3 — Imagine gaming

Como bater sem melhorar?

Passo 4 — Crie guardrail

Counter-metric.

Passo 5 — Defina scope

Numerador/denominador.

Passo 6 — Teste em pequena escala

Observe.

Passo 7 — Compare com outcomes independentes

Cliente.

Qualidade.

Passo 8 — Revise incentivos

Bônus?

Ranking?

Passo 9 — Versione definição

Não mude silenciosamente.

Passo 10 — Mate a métrica quando perder utilidade

Sim.


📋 Checklist anti-Goodhart

[ ] Qual objetivo real estamos tentando melhorar?

[ ] Esta métrica é outcome ou proxy?

[ ] Como alguém pode bater a meta sem melhorar o objetivo?

[ ] Existe incentivo financeiro ou reputacional ligado?

[ ] O numerador está claro?

[ ] O denominador está claro?

[ ] Exceções podem ser manipuladas?

[ ] A definição mudou recentemente?

[ ] Existe counter-metric?

[ ] Um indicador independente confirma a melhora?

[ ] O KPI está gerando comportamento defensivo?

[ ] Pessoas estão escondendo problemas?

[ ] Estamos premiando activity em vez de outcome?

[ ] A métrica ainda ajuda alguma decisão?

[ ] Podemos removê-la?

🧠 Metric lifecycle

Nasce.

Ajuda.

Vira target.

É otimizada.

Perde validade.

Precisa:

revisão.

Esse ciclo deveria ser esperado.


☕ Nenhum KPI recebe aposentadoria

Mas alguns merecem.


🧠 Metric Entropy

Com o tempo:

contexto muda.

Tecnologia muda.

Processo muda.

Métrica antiga representa cada vez menos.

Review periódico.


🧠 Dashboard Archaeology

Indicador:

“Number of tape mounts.”

Talvez importante em 1994.

Em 2026:

por que ainda está no executive scorecard?

Contexto evolui.


☕ Alguns KPIs viram fóssil

Bonitos.

Históricos.

Não operacionais.


🧠 Metrics and culture

Uma organização revela:

o que realmente valoriza

pelaquilo que:

mede;

premia;

pune.

Não pelo manifesto na parede.


🧠 “Quality First”

Mas bônus:

delivery date.

Mensagem real:

delivery date.


☕ Incentivo fala mais alto que slogan

Sempre.


🧠 Principal-Agent Problem fecha o circuito

Principal diz:

“quero qualidade.”

Agent recebe:

KPI de prazo.

Agent entrega:

prazo.

Principal reclama:

qualidade.

Talvez agent executou perfeitamente:

o sistema de incentivo.


🧠 Goodhart’s Law não absolve indivíduos

Fraude continua fraude.

Manipulação deliberada:

accountability.

Mas muitas distorções são:

comportamento racional permitido.

Então corrija:

métrica.


🧠 Just Culture

Pergunte:

o comportamento estava sendo incentivado?

Se sim:

sistema participa.


☕ Se todos encontram o mesmo atalho

talvez o atalho esteja no desenho da estrada.


🧠 Goodhart em governance

Auditoria exige:

100% controls tested.

Equipe executa testes superficiais.

Coverage:

100%.

Effectiveness:

incerta.

Mais importante:

quality of control.


🧠 Control Testing Depth

Sample.

Evidence.

Outcome.

Não apenas:

checkbox.


🧠 Compliance as target

Certification vira objetivo.

Empresa otimiza:

passar auditoria.

Security real?

Talvez.

Audit success é proxy.


☕ ISO não instala patch sozinho

Nem SOC report.


🧠 Audit Theater

Documentação perfeita.

Operação paralela:

fora do processo.

Goodhart + Need for Control.


🧠 Shadow IT

Processo oficial muito rígido.

Métrica:

100% compliant.

Pessoas criam:

processo invisível.

Dashboard:

100%.

Risco:

incerto.


🧠 Measure reality, not just official process

Gemba.

Observe.

Logs.


🧠 Goodhart and innovation

Meta:

número de ideias.

Hackathons.

Ideias crescem.

Implementação?

Baixa.

Medimos:

activity.


☕ 300 ideias no portal

Zero em produção.

Innovation KPI verde.


🧠 Outcome metrics

Revenue.

Customer adoption.

But attribution difficult.

Então precisamos:

combinação.


🧠 Metric uncertainty

Admita:

métrica é aproximação.

Não trate:

como verdade.

Isso reduz fetichização.


☕ KPI com margem de erro mental

Boa ideia.


🧠 Confidence in metrics

Talvez classifique:

High confidence.

Medium.

Low.

Assim evita decisões fortes em dados fracos.


🧠 Data quality

Garbage in.

Dashboard out.

Se dados errados:

meta pior.


☕ Um gráfico elegante não purifica dado ruim

Infelizmente.


🧠 Goodhart + Data Quality

Se KPI tem consequência:

pessoas podem melhorar:

input.

Ou melhorar:

seleção do input.

Audit.


🧠 Independent source

Quando importante:

validate.


🧠 Goodhart in incident classification

Uma prática:

se severity afeta performance,

tenha:

criteria objective.

Cross-review.

Mas não totalmente rígido.

Context.


🧠 Incident severity calibration

Periodicamente compare:

similar events.

Consistência.

Evita drift.


☕ P1 inflaciona

ou deflaciona

dependendo do bônus.

Economia chega na War Room.


🧠 Rewarding honesty

Talvez premie:

early reporting.

Near miss detection.

Agora métrica pode incentivar:

transparência.

Goodhart não é apenas problema.

Você pode usar:

incentivos para o bem.


🧠 Positive Goodhart?

Não é termo formal aqui.

Mas ideia:

desenhe métrica para aproximar comportamento desejável.

Nunca perfeito.


☕ O objetivo não é não ter incentivo

É ter incentivo menos burro.


🧠 SLO example

Queremos:

cliente conseguir pagar.

KPI:

payment success rate.

Muito próximo do outcome.

Mais difícil de game sem realmente melhorar.

Quanto mais próxima a métrica do objetivo:

menor espaço.


🧠 But still possible

Excluir transações difíceis.

Então guardrails.


🧠 Denominator integrity

Defina:

all valid attempts.

Audite.


🧠 Customer journey metrics

End-to-end.

Muito melhores que:

component uptime.


☕ Meça a viagem

não apenas se o motor estava ligado.


🧠 Goodhart and observability

Golden signals:

latency;

traffic;

errors;

saturation.

Úteis porque:

cada uma cobre parte.

Mas cliente outcome continua.


🧠 Metric stack

Business

Payment success.

Service

Error rate.

Component

CPU.

Cada nível.

Não substitua.


🧠 Correlation layers

Se business cai:

component metric pode ajudar diagnosticar.

Não use component health como:

business truth.


🧠 COBOL rookie takeaway

Quando alguém disser:

“Precisamos aumentar produtividade.”

Não pergunte apenas:

qual meta?

Pergunte:

“Como saberemos que produtividade realmente melhorou?”

Talvez:

mais features?

menos lead time?

mesma qualidade?

Defina.


☕ Não deixe “produtividade” virar:

“mais tickets.”

A menos que realmente seja isso.


🧠 Developer metrics

Boas avaliações:

contextual.

Code quality.

Collaboration.

Delivery.

Learning.

Hard to quantify.

Sim.

Realidade é inconveniente.


🧠 Metrics should inform conversations

Não substituir conversas.

Excelente princípio.


☕ Dashboard abre reunião

Não encerra discussão.


🧠 Doctor Who view

Doctor olha para painel da TARDIS.

Um indicador:

verde.

Outro:

vermelho.

Companion:

— Qual importa?

Doctor:

— Depende de onde queremos chegar.

Esse é Goodhart.

Uma métrica só faz sentido:

em relação a um objetivo.


👻 Easter Egg nº 3 — Chameleon Circuit KPI

TARDIS possui Chameleon Circuit quebrado.

KPI:

NUMBER OF TIMES
TARDIS LOOKS LIKE
A POLICE BOX:
100%

Gerente:

— Excelente consistência visual.

Doctor:

— Era para ela mudar de forma.

KPI perfeito.

Sistema quebrado.

Goodhart definitivo.


🧠 Metric versus purpose

Nunca esqueça:

a TARDIS não existe para:

ser cabine azul.

É meio.

Não objetivo.

Seu KPI também.


🧬 Regeneração organizacional

Uma organização madura contra Goodhart:

trata métricas como aproximações;

explica seu objetivo;

usa outcomes sempre que possível;

combina indicadores;

cria guardrails;

red-team metrics;

não pune transparência;

versiona definições;

mede efeitos comportamentais;

e remove KPIs que perderam utilidade.

Principalmente:

ela entende:

um número não é a realidade. É uma janela para a realidade. E quando começamos a recompensar a janela, alguém eventualmente aprende a pintar uma paisagem bonita no vidro.


📓 Diário do Doctor

Se guardar algumas ideias desta viagem, guarde estas:

Goodhart’s Law é popularmente resumida como: quando uma medida vira meta, tende a deixar de ser uma boa medida.

O problema nasce porque métricas normalmente são proxies para objetivos mais complexos.

Quando bônus, ranking ou contratos dependem do proxy, comportamento começa a otimizar o proxy.

Principal-Agent Problem explica por que agentes podem racionalmente seguir o KPI e não o objetivo real.

Moral Hazard pode permitir que o custo da otimização local recaia em outro time.

Zero-Risk Bias torna metas como zero incidente especialmente sedutoras.

MTTR, velocity, story points, code coverage, ticket count e deployment frequency são úteis — mas perigosos quando transformados em score simplista.

Use outcome metrics, leading indicators e guardrails juntos.

Pergunte como uma pessoa inteligente poderia bater a meta sem produzir o resultado desejado.

Uma métrica vermelha honesta vale mais que um dashboard verde fabricado.

Métricas devem informar julgamento, não substituí-lo.

E principalmente:

se você recompensa o número, prepare-se para descobrir que pessoas, processos e máquinas são extraordinariamente criativos em melhorar números.


🕰️ De volta às 08:14

Dashboard:

P1:
0

Nosso jovem pergunta:

— Quantos clientes foram impactados?

Silêncio.

Abrem outro relatório.

CUSTOMER IMPACT EVENTS:
7

— Então zero P1 não significa zero problema.

— Não.

Ele pergunta:

— Por que medimos P1?

— Porque queremos acompanhar grandes incidentes.

— Ótimo.

— Então?

— Vamos continuar medindo.

Pausa.

— Só não vamos fingir que é a mesma coisa que experiência do cliente.

Criam:

CUSTOMER IMPACT MINUTES

junto com:

P1.

Agora duas perspectivas.


🔧 Três meses depois

Mudam KPI de suporte.

Antes:

TICKETS CLOSED

Agora:

FIRST CONTACT RESOLUTION
+
REOPEN RATE
+
CUSTOMER SATISFACTION

Ticket count continua disponível.

Mas não como:

única meta.

Comportamento muda.

Menos fechamento prematuro.

Menos reabertura.

Curiosamente:

número de tickets fechados por dia cai.

O gerente pergunta:

— A produtividade piorou?

Nosso jovem responde:

— Depende daquilo que estamos chamando de produtividade.

Excelente.


🥚 Easter Egg final

Na manhã seguinte aparece:

BELLACOSA.BIAS(GOODHART)

Dentro:

       IF MEASURE BECOMES TARGET
           PERFORM CHECK-FOR-GAMING
       END-IF.

       IF KPI-IS-GREEN
           PERFORM CHECK-REAL-OUTCOME
       END-IF.

       IF METRIC-IMPROVES
          AND CUSTOMER-WORSENS
           PERFORM QUESTION-THE-METRIC
       END-IF.

       IF BONUS-DEPENDS-ON-KPI
           PERFORM EXPECT-BEHAVIOR-CHANGE
       END-IF.

Comentário:

* THE DASHBOARD
* IS NOT PRODUCTION.

Outro:

* COUNTING WORK
* IS NOT THE SAME
* AS CREATING VALUE.

Outro:

* A GREEN KPI
* CAN HIDE
* A RED CUSTOMER.

Mais um:

* MEASUREMENTS
* ARE SENSORS,
* NOT REALITY.

E naturalmente:

* THE TARDIS
* IS 100% A POLICE BOX
* AND THAT IS ACTUALLY
* A FAILURE METRIC.

Nosso jovem fecha o membro.

Pouco depois recebe um pedido:

— Precisamos dobrar o número de deployments.

Ele pergunta:

— Por quê?

— Empresas DevOps maduras fazem muitos deployments.

— Queremos mais deployments ou queremos entregar valor mais rápido com menos risco?

Silêncio.

— Não é a mesma coisa?

Ele sorri.

— Se fosse...

Pausa.

— não precisaríamos deste artigo.

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

No quadro da War Room fica:

A métrica é um mapa. A meta é o destino. O desastre começa quando começamos a dirigir para deixar o mapa bonito em vez de chegar ao lugar certo.

E talvez essa seja a essência de Goodhart’s Law:

não pare de medir. Apenas nunca esqueça que, no momento em que uma medida passa a decidir dinheiro, carreira, reputação ou sucesso, ela deixa de ser uma observadora inocente e passa a alterar o próprio sistema que deveria observar.

☕🌀

Next stop: Campbell’s Law — quando indicadores usados para controle social e tomada de decisão sofrem pressão crescente para serem corrompidos, distorcendo exatamente o processo que deveriam monitorar.

domingo, 12 de fevereiro de 2012

Recency Bias: Doctor Who, COBOL e o Dia em que o Incidente de Ontem Virou a Verdade de Hoje

 

Bellacosa Mainframe e a recency bias

☕ Um Café no Bellacosa Mainframe

Recency Bias: Doctor Who, COBOL e o Dia em que o Incidente de Ontem Virou a Verdade de Hoje

Uma viagem pela TARDIS dos incidentes para entender por que acontecimentos recentes podem pesar mais que todo o histórico — e como isso distorce diagnósticos, prioridades e decisões em sistemas críticos

07:58.

Segunda-feira.

Primeiro café.

Produção aparentemente tranquila.

Na sexta-feira anterior, porém, o mundo quase acabara.

Ou pelo menos parecia.

Uma região CICS havia apresentado lentidão.

A fila MQ crescera.

Clientes reclamaram.

A War Room ficara aberta por quatro horas.

Finalmente descobriram:

ROOT CAUSE:
MQ CONSUMER STALLED

O incidente foi resolvido.

Post-mortem marcado.

Fim de semana.

Segunda-feira.

08:03.

Novo alerta:

PAYMENT RESPONSE TIME
ABOVE BASELINE

O operador olha.

— MQ.

Nosso jovem programador COBOL pergunta:

— Já verificou?

— Não precisa.

— Como assim?

— É igual sexta.

08:05.

Outro alerta:

TRANSACTION TIMEOUT RATE: +180%

DBA entra.

— O que temos?

— MQ de novo.

08:07.

Middleware é acionado.

08:09.

Alguém sugere reiniciar consumer.

Nosso jovem programador olha para o dashboard:

MQ QUEUE DEPTH: NORMAL

Mas encontra:

DB2 LOCK WAIT: +720%

Ele pergunta:

— E esses locks?

O operador responde:

— Deve ser consequência.

— De quê?

— Do MQ.

— Mas o MQ está normal.

Silêncio.

VWORP.

VWORP.

VWORP.

A TARDIS materializa-se ao lado da impressora.

A porta abre.

O Doctor sai.

Olha para o gráfico.

Depois para o operador.

— Qual foi a causa do incidente anterior?

— MQ.

— Quando?

— Sexta.

— E quantos incidentes semelhantes vocês tiveram no último ano?

Silêncio.

Alguém abre o histórico.

ULTIMOS 120 INCIDENTES DE LENTIDÃO

DB2:        46
APLICAÇÃO:  31
REDE:       17
MQ:         14
STORAGE:     8
OUTROS:      4

O Doctor aponta.

— Então MQ representa 14 casos.

— Sim.

— E porque aconteceu sexta-feira...

Pausa.

— hoje vocês decidiram tratá-lo como se representasse cento e vinte?

Silêncio.

Nosso programador sorri.

O Doctor continua:

— O passado recente tem uma habilidade curiosa.

— Qual?

Fingir que é o passado inteiro.

Bem-vindo ao:



Recency Bias

Ou:

Viés de Recência

A tendência de dar peso excessivo a informações, eventos ou experiências recentes ao tomar decisões, subestimando dados mais antigos — mesmo quando o histórico completo é mais representativo.

Em linguagem Bellacosa:

“Aconteceu ontem, então deve estar acontecendo de novo.”


🌀 A TARDIS dos incidentes já tem um bestiário respeitável

Nossa viagem até aqui encontrou:

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

Normalization of Deviance — desvios viram rotina.

Hindsight Bias — depois do incidente tudo parece óbvio.

Confirmation Bias — buscamos evidências para aquilo em que já acreditamos.

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

Groupthink — grupos convergem cedo demais.

Authority Gradient — hierarquia pode transformar dúvida em silêncio.

Plan Continuation Bias — continuamos mesmo quando deveríamos parar.

Alarm Fatigue — alertas demais viram ruído.

Automation Bias — confiamos demais na máquina.

Drift Into Failure — sistemas derivam lentamente para a borda.

Diffusion of Responsibility — todos veem e ninguém assume.

Normalcy Bias — esperamos que tudo volte ao normal.

Survivorship Bias — estudamos apenas quem sobreviveu.

Base Rate Neglect — ignoramos a frequência real dos eventos.

Availability Heuristic — aquilo que lembramos facilmente parece mais provável.

Outcome Bias — resultado bom parece provar boa decisão.

Overconfidence Bias — acreditamos que sabemos mais do que realmente sabemos.

Planning Fallacy — subestimamos tempo, esforço e complexidade.

Sunk Cost Fallacy — custos passados influenciam decisões futuras.

Status Quo Bias — manter parece naturalmente mais seguro.

Present Bias — o conforto de hoje pesa mais que o custo de amanhã.

Optimism Bias — acreditamos que o resultado provavelmente será favorável.

Action Bias — agir parece melhor que esperar.

Omission Bias — não agir pode parecer menos culpável.

Loss Aversion — perder dói mais do que ganhar alegra.

Framing Effect — a maneira de apresentar a informação muda a decisão.

Agora o cérebro faz outro truque:

ele pega o que aconteceu recentemente e aumenta artificialmente sua importância.


🧠 O que é Recency Bias?

Imagine dez eventos.

A B C D E F G H I J

O evento J aconteceu ontem.

Nossa mente tende a lembrar melhor dele.

Quando pergunta:

“O que costuma acontecer?”

podemos responder usando:

J.

Mesmo que:

A até I

contem história diferente.

Recency Bias é essencialmente um problema de peso temporal.

Eventos recentes recebem peso maior que sua representatividade real.


☕ Bellacosa Mainframe: “foi DB2 da última vez”

Incidente de ontem:

Db2 lock.

Hoje:

timeout.

Especialista:

— É Db2.

Por quê?

— Ontem foi.

Isso é hipótese razoável para começar?

Sim.

É diagnóstico?

Não.

Recency Bias aparece quando:

a proximidade temporal é tratada como evidência causal.


🧠 Recency Bias versus Availability Heuristic

Os dois são próximos.

Mas não exatamente iguais.

Availability Heuristic

Algo parece mais provável porque vem facilmente à memória.

Pode ser recente, dramático, famoso ou emocional.

Recency Bias

Algo recebe peso extra especificamente porque aconteceu recentemente.

Todo Recency Bias pode tornar algo cognitivamente disponível.

Mas nem toda Availability Heuristic é recência.

Exemplo:

um acidente aéreo famoso de vinte anos atrás pode ser muito disponível sem ser recente.


👻 Easter Egg nº 1 — o Dalek de ontem

Companion:

— Doctor, há um barulho metálico atrás daquela porta.

— O que acha que é?

— Dalek.

— Por quê?

— Vimos um ontem.

— E antes de ontem?

— Cybermen.

— E na semana passada?

— Uma máquina de venda automática.

Doctor:

— Talvez devêssemos abrir a porta antes de declarar guerra interplanetária.

Recency Bias.


🧠 O cérebro gosta de atualizar rapidamente

Isso não é inteiramente ruim.

Se o ambiente mudou ontem, dados recentes podem ser mais relevantes.

Exemplo:

nova versão implantada.

Novo comportamento aparece.

Nesse caso:

últimas horas podem dizer mais que últimos cinco anos.

Ou seja:

recência pode ser sinal legítimo.

O problema é usar recência automaticamente.

Precisamos perguntar:

o sistema mudou de regime?


📊 Regime Change

Imagine histórico:

2024–2025:
DB2 causa 40% dos incidentes

Após migração de 2026:
MQ causa 55%

Agora histórico antigo talvez seja menos útil.

Recency Bias seria:

usar os últimos dois casos apenas.

Mas usar dados recentes após mudança estrutural pode ser correto.

A pergunta:

houve mudança que torna o passado menos representativo?


☕ Versão nova muda base rate

Deploy de nova arquitetura na semana passada.

Desde então:

quatro falhas de MQ.

Talvez isso seja sinal.

Não porque são recentes apenas.

Mas porque:

compartilham uma mudança causal recente.

Essa distinção é importante.


🧠 Recência precisa de contexto

Pergunte:

  • versão mudou?

  • volume mudou?

  • configuração mudou?

  • fornecedor mudou?

  • tráfego mudou?

  • arquitetura mudou?

Se sim:

recent data ganha relevância racional.

Se não:

talvez estejamos só impressionados pelo último incidente.


📈 Base Rate Neglect volta imediatamente

Último incidente:

rede.

Histórico:

rede em 5%.

Recency Bias:

“é rede de novo.”

Base Rate Neglect:

esquece os 5%.

Os dois juntos transformam:

um evento recente

em:

probabilidade imaginária.


🧠 Bayesian update bem feito

O correto não é ignorar o evento recente.

É atualizar.

Antes:

rede 5%.

Novo evento recente de rede após mudança de firewall:

isso pode aumentar probabilidade.

Mas precisa haver conexão.

Em linguagem Bellacosa:

HISTÓRICO
+
MUDANÇA RECENTE
+
EVIDÊNCIA ATUAL
=
HIPÓTESE ATUALIZADA

Não:

ACONTECEU ONTEM
=
É ISSO HOJE

⚓ Recency Bias + Anchoring Bias

Segunda-feira.

Primeiro comentário:

“Igual sexta.”

Agora temos âncora.

A recência fornece conteúdo.

Anchoring prende investigação.


🔎 Confirmation Bias entra depois

Equipe procura:

timeouts;

retries;

qualquer mensagem MQ.

Ignora:

DB2 lock wait.

Agora a história recente começou a recriar a si mesma.


👥 Groupthink

Todos participaram do incidente de sexta.

Todos lembram.

Uma memória coletiva forte surge.

Um fala:

— MQ.

Outro:

— Também acho.

Terceiro:

— Parece mesmo.

Agora a sala inteira está investigando sexta-feira em plena segunda-feira.


🪜 Authority Gradient

O veterano que resolveu sexta diz:

— É MQ.

A frase possui força adicional porque:

ele estava certo recentemente.

O júnior pensa:

“Ele acabou de resolver exatamente isso.”

E cala.

Recency Bias amplifica autoridade recente.


🏆 Hot Hand Effect

Existe um conceito relacionado:

Hot Hand Fallacy.

A ideia de acreditar que alguém em sequência de sucessos continuará acertando porque está “quente”.

Em operação:

especialista acertou últimos três RCA.

Então:

“Se ele disse storage, deve ser storage.”

Talvez.

Mas acertos recentes podem gerar confiança excessiva.

Overconfidence entra.


🧠 Outcome Bias + Recency

Última ação funcionou.

Restart MQ.

Resultado bom.

Agora novo incidente:

restart MQ.

O resultado recente pesa.

Outcome Bias interpreta ação como correta.

Recency Bias traz essa solução para o topo da mente.

Action Bias executa.

Excelente combo.


☕ Runbook escrito pelo último incidente

Isso acontece muito.

Incidente A.

Pós-mortem.

Criamos dez controles específicos para A.

Incidente B vem de outro lugar.

Mas nossa organização está preparada brilhantemente para repetir A.

Isso é:

fighting the last war.


🧠 Fighting the Last War

Expressão usada para descrever organizações que se preparam excessivamente para o conflito anterior.

Em TI:

último incidente foi certificado.

De repente:

todos os checks são de certificado.

Próximo:

storage.

Depois storage vira obsessão.

Precisamos aprender:

classes de falha, não apenas instâncias.


🧩 Instance versus Pattern

Incidente recente:

MQ consumer parou.

Instance.

Pattern maior:

dependência downstream sem capacidade de auto-recovery.

Se aprendermos só:

“monitorar consumer X”

protegemos um caso.

Se aprendermos:

“detectar perda de consumo em qualquer downstream”

protegemos uma classe.

Isso reduz Recency Bias.


🧠 Availability Heuristic novamente

Incidentes recentes também são mais fáceis de lembrar porque:

estão emocionalmente vivos.

Logo Recency Bias e Availability frequentemente se misturam.

A defesa:

histórico estruturado.


💾 Mainframe adora histórico

Temos ferramentas excelentes:

SMF.

RMF.

Db2 statistics.

CICS statistics.

MQ metrics.

Scheduler history.

Syslog.

Use.

A memória humana não deveria competir sozinha contra SMF.


☕ O SMF não tem memória afetiva

Operador:

— Tenho certeza que isso começou depois da última mudança.

SMF:

“Começou três semanas antes.”

Obrigado, SMF.


📊 Rolling Windows

Uma boa prática:

compare janelas.

Última hora.

24h.

7 dias.

30 dias.

90 dias.

Isso mostra se evento recente é:

anomalia;

tendência;

padrão.


🧠 Uma janela só cria uma narrativa

Se dashboard mostra apenas:

15 minutos,

você vê ruído.

Se mostra:

1 ano,

pode esconder incidente atual.

Então:

use múltiplas escalas temporais.


📈 Short-term versus Long-term View

Exemplo:

LAST 30 MIN:
CPU +20%

Parece grave.

LAST 30 DAYS:
same pattern every Monday 08:00

Talvez normal.

Ou inverso:

TODAY:
CPU 82%

Parece normal.

6 MONTH TREND:
55 → 82%

Drift.

A escala temporal muda conclusão.


🌀 Drift Into Failure e Recency Bias

Drift é lento.

Recency Bias olha recente.

Isso pode fazer equipe perder tendência longa.

Exemplo:

última semana estável.

Conclusão:

tudo bem.

Mas seis meses:

margem caiu 40%.

Recência pode esconder deterioração estrutural.


🧠 Normalcy Bias

Últimos dias foram tranquilos.

Então:

sistema está saudável.

Mas tranquilidade recente não apaga sinais estruturais.

Normalcy Bias usa recência favorável para reforçar expectativa de continuidade.


🔔 Alarm Fatigue

Últimos cem alertas eram falsos positivos.

Hoje alerta real.

Recency Bias:

os últimos eram falsos, este também deve ser.

Alarm Fatigue + Recency.

Perigoso.


🧠 Automation Bias

Ferramenta de RCA foi correta nos últimos cinco incidentes.

Equipe aumenta confiança.

Novo caso:

ferramenta erra.

A sequência recente criou confiança excessiva.

Automation Bias + Hot Hand + Recency.


💻 COBOL e o último bug

Você corrigiu três S0C7 causados por campo packed inválido.

Quarto S0C7 aparece.

Você pensa:

packed inválido.

Excelente hipótese inicial.

Mas dump mostra:

overlay.

Se insiste no padrão recente:

Recency Bias.


🧠 Pattern Recognition é bom

Precisamos ser justos.

Especialistas sobrevivem graças a reconhecimento de padrões.

A meta não é ignorar experiência recente.

É:

tratar experiência recente como hipótese prioritária, não como exclusão das outras.


🎯 Pergunta Bellacosa nº 1

Quando alguém disser:

“É igual ao último incidente.”

Pergunte:

“O que exatamente é igual?”

Sintoma?

Métrica?

Causa?

Contexto?


🎯 Pergunta Bellacosa nº 2

Outra:

“O histórico de 100 casos concorda com os últimos dois?”


🎯 Pergunta Bellacosa nº 3

Outra:

“O ambiente mudou recentemente a ponto de justificar dar mais peso aos dados novos?”

Excelente.


🎯 Pergunta Bellacosa nº 4

E:

“Estamos vendo tendência ou apenas uma sequência curta?”


🧪 Como combater Recency Bias

Passo 1 — Consulte histórico antes de concluir

Não apenas memória.


Passo 2 — Use múltiplas janelas temporais

Agora.

Dia.

Semana.

Mês.

Ano.


Passo 3 — Separe incidente recente de padrão histórico

Documente.


Passo 4 — Verifique mudanças de regime

Versão?

Volume?

Arquitetura?


Passo 5 — Use base rates

Sempre.


Passo 6 — Compare assinatura técnica

Não sensação.


Passo 7 — Procure contraexemplos

Casos recentes diferentes.


Passo 8 — Evite alterar controles apenas pelo último incidente

Generalize.


Passo 9 — Use revisão periódica

Não apenas post-mortem imediato.


Passo 10 — Deixe a evidência nova atualizar, não apagar, o histórico

Essa é a chave.


📊 Incident Distribution Board

Em uma War Room:

SYMPTOM:
Timeout

LAST INCIDENT:
MQ

LAST 30:
DB2 12
APP 8
MQ 4
NETWORK 3
OTHER 3

CURRENT EVIDENCE:
DB2 lock ↑
MQ normal

Excelente.

A recência ficou visível.

Mas não dominante.


🧠 Weighted History

Nem sempre todos os dados históricos devem ter peso igual.

Dados de cinco anos atrás podem ser pouco relevantes.

Podemos dar mais peso a dados recentes de forma controlada.

O problema é dar:

100% ao último caso.


☕ Uma espécie de média móvel cognitiva

Pense:

histórico inteiro.

Mais peso recente.

Mas não zero para passado.

Quase como uma média móvel.

O cérebro faz isso intuitivamente.

Engenharia precisa calibrar.


📉 Exponential Decay — conceito útil

Em alguns modelos, dados antigos recebem peso progressivamente menor.

Isso pode ser válido.

Mas o fator de decaimento deve refletir quanto sistema muda.

Se arquitetura é estável:

histórico antigo ainda importa.

Se mudou drasticamente:

recente pesa mais.


🧠 Change Rate determines Memory Length

Regra interessante:

quanto mais rápido o sistema muda, menor pode ser a meia-vida do histórico.

Em uma aplicação COBOL estável há 20 anos:

dados antigos podem continuar relevantes.

Em serviço recém-reescrito:

últimos meses importam muito.


🧪 Post-change Baseline

Após grande mudança:

crie novo baseline.

Não misture cegamente histórico pré e pós mudança.

Isso reduz confusão.


🧠 Base Rate precisa ter versão

Taxa-base de:

v1.

Pode não ser taxa-base de:

v2.

Mantenha contexto de release.


☕ Bellacosa Mainframe: antes e depois do upgrade

Antes:

DB2 CONTENTION: 5%

Depois de upgrade/configuração:

DB2 CONTENTION: 22%

Agora os casos recentes realmente sinalizam mudança.

Recency Bias?

Não necessariamente.

Talvez novo regime.

Investigue.


🧠 Statistical Process Control

Uma ideia útil da qualidade:

distinguir:

variação comum

de:

mudança de processo.

Se últimos pontos saem do comportamento esperado:

talvez houve mudança real.

Isso é melhor que:

“parece diferente.”


📈 Control Charts no espírito

Você não precisa aplicar controle estatístico formal em tudo.

Mas pense:

o novo valor está dentro da distribuição histórica?

Se não:

talvez recente seja importante.


🧠 Framing Effect temporal

Nosso capítulo anterior retorna.

Escolher:

última semana

ou:

último ano

é framing.

Quem escolhe a janela pode alterar a narrativa.

Dashboard temporal também enquadra.


🎯 Pergunta Bellacosa nº 5

“Por que estamos olhando justamente este período?”

Se resposta:

porque mostra o que queremos,

temos problema.


👥 Gestão e performance

Recency Bias aparece fortemente em avaliações de pessoas.

Funcionário teve ótimo ano.

Errou último mês.

Avaliação:

desempenho ruim.

Ou inverso.

Últimos acontecimentos pesam demais.

Isso pode distorcer gestão.


🧠 Performance Review

Use registros ao longo do período.

Não memória de dezembro.

A mesma lógica da War Room.


💰 Investimentos e mercados

Investidor vê mercado subir últimos meses.

Pensa:

continuará.

Ou queda recente:

tudo está ruim.

Recency Bias influencia finanças há muito tempo.

Sistemas complexos têm a mesma psicologia.


🧠 Forecasting

Últimos dois projetos atrasaram.

Gestor aumenta todas estimativas dramaticamente.

Talvez correto.

Mas precisamos verificar:

foi nova realidade?

Ou eventos específicos?

Recency não deveria substituir reference class.


📊 Planning Fallacy + Recency

Curiosamente podem apontar em sentidos diferentes.

Último projeto foi rápido.

Equipe:

próximo também.

Planning Fallacy.

Recency reforça otimismo.

Último projeto foi terrível.

Equipe infla tudo.

Pode supercorrigir.


🧠 Overreaction

Recency Bias pode gerar:

overcorrection.

Um incidente ocorre.

Criamos quarenta controles.

Depois outro tipo de falha aparece porque processo ficou pesado demais.

Aprenda proporcionalmente.


🔐 Segurança: depois do ransomware

Empresa sofre ransomware.

Agora todo orçamento vai para ransomware.

Mas:

IAM;

fraude interna;

supply chain;

backup

também existem.

Evento recente extremamente traumático pode dominar risco corporativo.

Availability + Recency.


🧠 Risk Portfolio

Gestão de risco precisa olhar:

portfólio.

Não apenas último desastre.


☕ “Security by headline”

Sai notícia de ataque X.

Segunda-feira:

— Precisamos comprar ferramenta X!

Talvez.

Mas compare com threat model real.

Notícia recente não é automaticamente prioridade local.


🤖 IA e Recency Bias de contexto

Há uma analogia interessante.

Se você alimenta um sistema de IA com os últimos cinco incidentes e pergunta:

“Qual causa provável?”

o contexto recente pode dominar resposta.

Se histórico completo não foi recuperado:

a ferramenta pode reforçar recência.


🧠 RAG e temporal bias

Busca sem equilíbrio pode recuperar documentos recentes por relevância ou popularidade.

Talvez correto.

Mas pode esconder casos antigos importantes.

Um bom sistema de RCA deve considerar:

similaridade;

recência;

frequência;

mudança de versão.


🎯 IA: pergunta Bellacosa

“Essa hipótese está alta porque os dados recentes justificam ou porque o contexto fornecido só contém casos recentes?”

Excelente.


🧠 Freshness versus Representativeness

Duas propriedades diferentes:

freshness — quão novo é.

representativeness — quão bem representa a população.

Novo não significa representativo.

Antigo não significa irrelevante.


📚 História operacional é memória externa

Organizações precisam externalizar memória.

Senão dependem de:

quem estava no último incidente.

Isso aumenta recency.

Uma base histórica bem catalogada reduz.


🧠 Post-mortems estruturados

Classifique:

sintoma;

causa;

versão;

sistema;

impacto;

timestamp;

fix.

Agora comparação objetiva fica possível.


💾 Knowledge Graph dos incidentes

Imagine grafo:

TIMEOUT
 ├─ DB2 LOCK
 ├─ MQ
 ├─ NETWORK
 └─ APP

Cada causa com:

frequência;

recência;

versão.

Isso é quase uma vacina tecnológica contra Recency Bias.


🧠 Recency-aware, not recency-blind

A meta não é remover recência.

É incorporá-la de forma explícita.

Exemplo:

HISTORICAL FREQUENCY: 12%
LAST 30 DAYS: 35%
POST-RELEASE: 48%

Agora sabemos:

algo mudou.


☕ Isso é muito melhor que:

“Ultimamente parece que MQ está dando mais problema.”

Transforme “parece” em série temporal.


📊 Trend Detection

Métrica:

12% → 15% → 25% → 35%.

Agora temos tendência.

Recência ganhou suporte.


🧠 Seasonality

Outro detalhe.

Problemas podem ser sazonais.

Fim do mês.

Black Friday.

Fechamento.

Se incidente recente ocorreu no fechamento:

talvez não represente semana normal.

Contexto temporal importa.


📅 Day-of-week effect

Segunda 08:00 pode ter padrão diferente de domingo 03:00.

Base rates temporais.

Recency sem segmentação engana.


🧠 Contextual History

Compare:

mesma hora;

mesmo volume;

mesmo ciclo;

mesma versão.

Isso melhora investigação.


🎯 Pergunta Bellacosa nº 6

“Estamos comparando com qualquer histórico ou com histórico realmente comparável?”

Boa.


🧪 War Room anti-Recency Bias

Um procedimento simples:

  1. anote última causa conhecida;

  2. anote top causas históricas;

  3. anote mudanças recentes;

  4. compare sinais atuais;

  5. mantenha ao menos 3 hipóteses.

Isso reduz fixação.


🧠 Three-Hypothesis Rule

Durante os primeiros minutos:

não tenha uma hipótese.

Tenha três.

Exemplo:

H1 DB2
H2 MQ
H3 APPLICATION

Com evidências.

Isso combate:

Recency;

Anchoring;

Confirmation.


🔬 Hypothesis Scoreboard

DB2
BASE: HIGH
CURRENT EVIDENCE: STRONG

MQ
RECENT INCIDENT: YES
CURRENT EVIDENCE: WEAK

APP
BASE: MEDIUM
CURRENT EVIDENCE: MEDIUM

Agora MQ não ganha só porque está fresco na memória.


🧠 Decision checkpoints

A cada 10 minutos:

reordene.

Não preserve ranking antigo por orgulho.


🧠 Recency Bias em post-mortem

Último incidente grave domina backlog.

Todas ações priorizadas nele.

Mas talvez problemas recorrentes menores causem mais impacto anual.

Faça análise periódica agregada.


📊 Pareto de incidentes

Uma vez por mês:

causas.

horas perdidas.

clientes.

custos.

Talvez descubra:

incidente épico = 4h.

Problema banal recorrente = 200h/ano.

Recency faz épico parecer prioridade.

Dados mostram outra coisa.


☕ Drama versus impacto acumulado

O incidente com diretor na War Room é memorável.

O job que atrasa 10 minutos todo dia não.

Mas:

10 min × 250 dias = 41 horas.

Memória gosta de drama.

Operação precisa gostar de soma.


🧠 Present Bias + Recency

O recente também é temporalmente próximo.

Isso pode amplificar foco curto prazo.

Long-term improvement perde espaço.


🌀 Drift e incidentes pequenos

Pequenos problemas recentes podem parecer irrelevantes.

Mas série longa mostra crescimento.

Ou um grande incidente recente pode desviar atenção do drift.

Por isso análise de tendência é essencial.


🧠 Loss Aversion

Uma perda recente dói.

Então organização pode reagir exageradamente para impedir repetição.

Isso é compreensível.

Mas talvez crie investimento desproporcional.


💥 Scar Tissue Architecture

Existe um fenômeno divertido de chamar:

arquitetura de tecido cicatricial.

Cada incidente deixa um remendo.

Depois de vinte:

sistema virou coleção de traumas históricos.

Alguns controles são necessários.

Outros são cicatrizes do último susto.


☕ “Por que existe esse IF?”

— Incidente de 2004.

Outro:

— E esse?

— Incidente de 2007.

Outro:

— E isso aqui?

— Ninguém sabe.

Recency desaparece com o tempo, mas o código fica.

Por isso documente racional.


🧠 Institutional Memory precisa de meia-vida inteligente

Não esquecer rápido demais.

Nem preservar tudo para sempre.

Revise controles.

Ainda são necessários?

Condição mudou?


🧪 Sunset Review

Controle criado após incidente:

revisar em 6 meses.

Pergunte:

ainda necessário?

Funcionou?

Criou side effect?

Isso evita reação recente virar complexidade eterna.


📋 Checklist anti-Recency Bias

[ ] Estou dando peso demais ao último incidente?

[ ] Qual é o histórico completo?

[ ] Qual é a taxa-base?

[ ] O sistema mudou recentemente?

[ ] Os eventos recentes formam uma tendência real?

[ ] Estamos comparando o mesmo contexto?

[ ] Qual é a assinatura técnica atual?

[ ] Quais sinais contradizem o caso anterior?

[ ] O dashboard mostra mais de uma janela temporal?

[ ] Estamos supercorrigindo pelo último desastre?

[ ] Existe impacto acumulado maior que o incidente recente?

[ ] O controle criado para o último caso generaliza?

[ ] Dados antigos ainda representam o sistema atual?

[ ] Estamos confundindo freshness com representatividade?

🧪 Passo a passo para combater Recency Bias

Passo 1 — Pare de confiar apenas na memória

Use histórico.


Passo 2 — Compare janelas

Curta.

Média.

Longa.


Passo 3 — Verifique mudanças estruturais

Release.

Configuração.

Volume.


Passo 4 — Use base rates

Antes do caso recente.


Passo 5 — Segmente histórico

Contexto semelhante.


Passo 6 — Tenha hipóteses alternativas

Pelo menos três.


Passo 7 — Compare assinatura

Sinais, não sensação.


Passo 8 — Procure tendências

Não sequências pequenas.


Passo 9 — Revise controles após o trauma passar

Evite overreaction.


Passo 10 — Atualize crença proporcionalmente à evidência

Nem ignore recente.

Nem esqueça o passado.


🧬 Regeneração organizacional

Uma organização madura contra Recency Bias:

mantém histórico estruturado;

usa tendências;

versiona baselines;

compara períodos;

registra mudanças de regime;

analisa Pareto mensal;

evita hiperreagir ao último incidente;

e revisa medidas tomadas no calor da crise.

Principalmente:

ela aprende a perguntar:

“Isso está acontecendo mais agora ou apenas aconteceu há pouco?”

Essa diferença parece pequena.

É enorme.


📓 Diário do Doctor

Se guardar algumas ideias desta viagem, guarde estas:

Recency Bias é a tendência de dar peso excessivo a acontecimentos recentes.

O último incidente não representa automaticamente a distribuição inteira.

Recency Bias e Availability Heuristic frequentemente trabalham juntos.

Base rates ajudam a impedir que dois casos recentes virem uma falsa regra geral.

Mudanças de arquitetura podem tornar dados recentes realmente mais importantes — mas isso precisa ser demonstrado.

Múltiplas janelas temporais ajudam a distinguir ruído, sazonalidade, tendência e mudança de regime.

Anchoring e Confirmation Bias podem transformar o último incidente na causa do próximo antes mesmo da investigação começar.

Um grande incidente recente pode esconder problemas menores, recorrentes e mais caros no longo prazo.

Controles criados após um incidente devem atacar classes de falha, não apenas reproduzir a cicatriz daquele caso.

E principalmente:

O acontecimento mais recente merece atenção. Não merece automaticamente o cargo de representante oficial de toda a história.


🕰️ De volta às 08:03

Primeiro alerta.

PAYMENT RESPONSE TIME ABOVE BASELINE

Operador:

— MQ de novo.

Nosso programador responde:

— Pode ser.

Abre o histórico.

DB2: 38%
APP: 26%
MQ: 12%
NETWORK: 14%
OTHER: 10%

Depois:

LAST INCIDENT:
MQ

Depois:

CURRENT:
MQ DEPTH NORMAL
DB2 LOCK WAIT +720%

Ele diz:

— MQ entra na lista porque foi recente.

— Mas?

— Os dados atuais não combinam.

DBA investiga.

Encontra uma transação longa segurando locks.

Resolve.

08:31.

Serviço normal.

O operador olha.

— Se tivéssemos reiniciado MQ...

— Teríamos perdido tempo.

— Então nunca devemos usar o incidente anterior?

O Doctor responde:

— Claro que devem.

— Então qual é a regra?

— O passado recente pode fazer uma pergunta.

Pausa.

— Não pode responder sozinho.

Boa.


🥚 Easter Egg final

Na manhã seguinte aparece:

BELLACOSA.BIAS(RECENCY)

Dentro:

       IF LAST-INCIDENT = CURRENT-HYPOTHESIS
           PERFORM CHECK-HISTORY
       END-IF.

       IF RECENT-EVENTS > EXPECTED
           PERFORM CHECK-REGIME-CHANGE
       END-IF.

       IF MEMORY-SAYS 'IT-IS-THE-SAME'
           PERFORM COMPARE-SIGNATURE
       END-IF.

Comentário:

* RECENT IS NOT THE SAME AS REPRESENTATIVE.

Outro:

* THE LAST INCIDENT GETS A VOTE.
* NOT A VETO.

Outro:

* HISTORY NEEDS VERSION CONTROL TOO.

E naturalmente:

* BAD WOLF HAPPENED RECENTLY.
* THAT DID NOT MAKE EVERYTHING BAD WOLF.

Nosso jovem fecha o membro.

Pouco depois alguém diz:

— Os últimos dois jobs falharam por espaço. Aposto que este também.

Ele pergunta:

— Dataset usage?

— 42%.

— Storage alerts?

— Nenhum.

— Então talvez os dois últimos estejam gritando mais alto do que os dados atuais.

Abre o joblog.

S0C7.

Dado inválido.

Nenhum espaço.

Nenhum storage.

Apenas o cérebro tentando usar ontem para economizar pensamento hoje.

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

No quadro da War Room fica uma última frase:

O passado recente é excelente para levantar hipóteses. O histórico completo é melhor para dar proporção. E o presente, no fim, ainda precisa fornecer evidência.

☕🌀

Next stop: Representativeness Heuristic — quando algo “tem cara” de um padrão conhecido e começamos a tratá-lo como pertencente àquele padrão, mesmo quando os números contam outra história.

sábado, 11 de fevereiro de 2012

☕💣🍧 O DIA EM QUE O MAINFRAME ENTROU EM OVERHEAT: KAKIGŌRI, O SISTEMA DE RESFRIAMENTO OFICIAL DO VERÃO JAPONÊS

 

Bellacosa Mainframe e a raspadinha de verao kakigori

☕💣🍧 O DIA EM QUE O MAINFRAME ENTROU EM OVERHEAT: KAKIGŌRI, O SISTEMA DE RESFRIAMENTO OFICIAL DO VERÃO JAPONÊS

Se existe uma cena que aparece em praticamente todo anime de verão, ela não envolve batalhas épicas, viagens no tempo ou invasões alienígenas.

Ela envolve gelo.

Muito gelo.

Uma montanha colorida de gelo raspado coberta por xaropes vibrantes, leite condensado, frutas e ingredientes misteriosos que fazem qualquer brasileiro perguntar:

— Isso é sobremesa ou um experimento científico?

Estamos falando do lendário Kakigōri (かき氷), uma das tradições mais antigas, amadas e refrescantes do Japão.

Mas o que pouca gente sabe é que essa aparentemente simples sobremesa possui uma história que atravessa imperadores, samurais, tecnologia, festivais e até alguns dos momentos mais importantes dos animes românticos.

Prepare seu café gelado porque hoje vamos investigar o sistema de refrigeração mais famoso da cultura japonesa.


O que é Kakigōri?

A tradução é simples:

  • Kaki (かき) = raspar

  • Gōri (氷) = gelo

Literalmente:

"Gelo raspado."

Mas chamar Kakigōri apenas de gelo raspado é o mesmo que chamar um IBM z16 de "computador grande".

Tecnicamente correto.

Mas criminosamente simplificado.

O Kakigōri é uma verdadeira instituição cultural japonesa.


A origem que vem da época dos imperadores

A história do Kakigōri é muito mais antiga do que a maioria imagina.

Os primeiros registros aparecem durante o Período Heian (794–1185).

Nessa época não existiam geladeiras.

Muito menos freezers.

Então como eles conseguiam gelo?

Simples.

Durante o inverno, blocos naturais de gelo eram armazenados em cavernas especiais chamadas:

Himuro (氷室)

Esses depósitos preservavam o gelo durante meses.

O problema?

Era extremamente caro.

Apenas nobres e membros da corte imperial tinham acesso.

Na prática, comer Kakigōri no século IX era equivalente a possuir um datacenter particular.


O doce mais exclusivo do Japão antigo

Um famoso texto chamado "Makura no Sōshi" (O Livro do Travesseiro), escrito pela dama da corte Sei Shōnagon, descreve uma sobremesa feita de gelo raspado servido com calda doce.

Esse é considerado um dos registros mais antigos do Kakigōri.

Ou seja:

Antes de existir anime.

Antes de existir samurai.

Antes de existir café.

Já existia alguém feliz comendo gelo raspado.


A revolução tecnológica do gelo

Durante séculos o Kakigōri foi um luxo.

Tudo mudou no século XIX.

Com a modernização do Japão e a chegada das tecnologias de refrigeração, o gelo começou a se tornar acessível.

Foi o equivalente culinário da popularização dos computadores.

De repente aquilo que era privilégio da elite tornou-se disponível para todos.

O Kakigōri saiu dos palácios.

E invadiu as ruas.


O sistema de cooling oficial do verão japonês

O verão japonês é famoso por ser quente e extremamente úmido.

Temperaturas acima de 35°C não são raras.

A sensação térmica pode parecer ainda pior.

Foi nesse ambiente que o Kakigōri virou uma necessidade nacional.

Ao estilo Bellacosa Mainframe:

CPU TEMPERATURE: CRITICAL
MEMORY TEMPERATURE: CRITICAL
OPERATOR TEMPERATURE: CRITICAL

ACTION REQUIRED:
LOAD KAKIGORI IMMEDIATELY

O segredo que quase ninguém percebe

Existe uma diferença enorme entre o gelo comum e o gelo utilizado nos melhores Kakigōris.

Os estabelecimentos tradicionais utilizam gelo congelado lentamente.

Isso cria cristais maiores e mais uniformes.

O resultado?

Uma textura extremamente macia.

Tão macia que muitos japoneses dizem que parece neve.

É praticamente o SSD NVMe dos gelos.


Os sabores mais famosos

Os iniciantes normalmente conhecem apenas:

  • Morango

  • Limão

  • Uva

Mas o Japão elevou a brincadeira para outro nível.

Entre os sabores mais populares encontramos:

Matcha

O favorito dos veteranos.

Possui sabor sofisticado e levemente amargo.


Azuki

Feijão doce.

Sim.

Feijão.

E surpreendentemente funciona.


Melão

Um clássico dos festivais.

Extremamente colorido.

Extremamente fotogênico.


Leite condensado

Conhecido como Condensed Milk Topping.

Os brasileiros normalmente se apaixonam imediatamente.


Hojicha

Chá torrado.

Muito popular entre adultos.


A grande fofoca dos animes românticos

Existe uma tradição não oficial dos roteiristas.

Sempre que um casal divide um Kakigōri, algo importante está prestes a acontecer.

Pode ser:

  • Uma declaração.

  • Um encontro.

  • Um momento emocional.

  • O início de um romance.

O Kakigōri virou uma ferramenta narrativa.

É quase um protocolo secreto.

Veteranos dos animes já reconhecem o padrão.


O easter egg escondido nas cores

Os xaropes possuem significados culturais curiosos.

Em muitos festivais:

  • Vermelho lembra verão e energia.

  • Azul transmite sensação de frescor.

  • Verde remete à natureza.

  • Amarelo sugere felicidade.

Por isso a escolha da cor frequentemente acompanha a personalidade dos personagens.

Diretores adoram fazer esse tipo de brincadeira visual.


O mistério do xarope azul

Aqui está uma curiosidade divertida.

Muitos japoneses afirmam que os xaropes coloridos possuem sabores muito parecidos.

A principal diferença é a cor.

Ou seja:

Parte da experiência acontece na mente.

É uma espécie de virtualização sensorial.

O sistema operacional do cérebro interpreta a cor e cria expectativas.


Kakigōri e os festivais de verão

Se existe um lugar onde o Kakigōri reina absoluto, é nos Matsuri.

Durante os festivais você encontra barracas vendendo:

  • Takoyaki

  • Yakisoba

  • Taiyaki

  • Chocolate banana

E quase sempre:

Kakigōri.

É praticamente obrigatório.

Um Matsuri sem Kakigōri seria como um ambiente z/OS sem JCL.

Tecnicamente possível.

Mas ninguém quer experimentar.


Os animes que transformaram Kakigōri em protagonista

Diversas obras utilizam o doce para criar cenas memoráveis:

  • Clannad

  • Air

  • Kanon

  • Toradora

  • Bunny Girl Senpai

  • Hyouka

  • Non Non Biyori

  • Ano Hana

  • The Melancholy of Haruhi Suzumiya

  • Summer Time Rendering

Em muitos casos o Kakigōri aparece exatamente nos momentos em que os personagens criam memórias que jamais esquecerão.


A curiosidade mais inesperada

Existe um dia oficial do Kakigōri no Japão.

Ele é celebrado em 25 de julho.

A escolha não foi aleatória.

Os caracteres utilizados para representar essa data podem ser interpretados como uma referência ao gelo.

Os japoneses realmente levam suas tradições a sério.


O paralelo definitivo com o Mainframe

Imagine um operador trabalhando em pleno verão.

O ar-condicionado apresenta falha.

O processador está em carga máxima.

O JES2 está congestionado.

O spool está cheio.

A temperatura da sala sobe.

Nesse momento surge um operador veterano trazendo um enorme Kakigōri.

Instantaneamente:

SYSTEM MESSAGE

CPU LOAD ........ NORMAL
OPERATOR STRESS .. REDUCED
AMBIENT COOLING .. RESTORED
ABEND RISK ....... MINIMAL

Problema resolvido.


Conclusão: o backup emocional do verão japonês

O Kakigōri é muito mais do que uma sobremesa.

Ele é uma memória coletiva.

Uma tradição que atravessou mais de mil anos.

Um símbolo de férias, amizade, festivais e juventude.

Talvez seja por isso que aparece tanto nos animes.

Porque sempre que um personagem segura um copo de Kakigōri, o espectador entende imediatamente o que está acontecendo.

Não é apenas um doce.

É um instante que será lembrado para sempre.

E assim como acontece nos melhores sistemas, algumas memórias não precisam ser armazenadas em fita, disco ou nuvem.

Elas ficam gravadas diretamente no coração.

Ou, pelo menos, em uma montanha gigantesca de gelo coberta por leite condensado.

☕💣🍧


sexta-feira, 10 de fevereiro de 2012

☕🔥 SQL QUERYING SKILL NO DB2 MAINFRAME — O FAROL QUE SEPARA “QUEM ESCREVE SQL” DE QUEM DOMINA O SISTEMA

 

Bellacosa Mainframe evoluindo skills em db2 

☕🔥 SQL QUERYING SKILL NO DB2 MAINFRAME — O FAROL QUE SEPARA “QUEM ESCREVE SQL” DE QUEM DOMINA O SISTEMA

Existe uma enorme diferença entre:

SELECT * FROM CLIENTE;

e realmente entender:

🔥 como o DB2 pensa.

E essa diferença muda completamente:

  • performance

  • custo

  • CPU

  • locking

  • concorrência

  • disponibilidade

  • tempo de resposta

Porque no universo IBM Mainframe…

SQL não é apenas linguagem.

🔥 SQL é engenharia operacional.

E a imagem do “farol SQL” mostra isso perfeitamente.

Ela representa uma jornada:

  • iniciante

  • intermediário

  • avançado

que no mundo DB2 for z/OS pode literalmente separar:

  • sistemas estáveis
    de

  • ambientes entrando em colapso silenciosamente.


☕🔥 O FAROL É UMA ANALOGIA PERFEITA PARA O DB2

Pouca gente percebe isso.

Mas DB2 em Mainframe funciona exatamente como um grande sistema de navegação corporativa.


☕ O DB2 precisa guiar:

  • milhões de queries

  • milhares de transações

  • workloads concorrentes

  • aplicações CICS

  • batch COBOL

  • APIs

  • analytics

sem falhar.


☕ Bellacosa Mainframe Analysis™

O SQL Developer não escreve apenas consultas.

🔥 Ele influencia diretamente a saúde do ambiente z/OS inteiro.


☕🔥 NÍVEL BEGINNER — “APRENDENDO A FALAR COM O DB2”

Aqui nasce a maioria dos desenvolvedores.


☕ Conceitos básicos:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • GROUP BY

  • ORDER BY

  • JOINs


☕ Parece simples…

mas já existem armadilhas perigosas.


☕ Exemplo clássico

SELECT *
FROM CLIENTES

☕ Em tabela pequena?

Ok.


☕ Em tabela DB2 corporativa com bilhões de linhas?

🔥 desastre potencial.


☕ O MAINFRAME ENSINA UMA LIÇÃO BRUTAL

Toda query custa recursos.


☕ Recursos significam:

  • CPU

  • I/O

  • bufferpool

  • locks

  • sort

  • memória


☕🔥 QUERY WRITING — O “COBOL MENTAL” DO SQL

Aqui começa a maturidade.


☕ Bons desenvolvedores aprendem:

✅ evitar SELECT *
✅ filtrar corretamente
✅ usar índices
✅ reduzir scans
✅ controlar joins


☕ Porque DB2 NÃO “adivinha intenção”.

Ele segue:
🔥 access paths.


☕🔥 DATA UNDERSTANDING — O SEGREDO QUE MUITA GENTE IGNORA

Essa talvez seja a parte mais importante da imagem.


☕ O problema raramente é apenas SQL.

Frequentemente é:

🔥 modelo de dados ruim.


☕ Exemplo clássico

Campos:

CHAR(500)

para dados minúsculos.


☕ Resultado?

  • desperdício

  • I/O maior

  • cache pior

  • performance degradada


☕ Bellacosa Mainframe Analysis™

Modelagem ruim no DB2 vira:
🔥 dívida técnica por décadas.


☕🔥 INTERMEDIATE — QUANDO O SQL COMEÇA A VIRAR ENGENHARIA

Agora entramos no território dos profissionais perigosos.


☕ Execution Model

Pouca gente entende o pipeline interno do DB2.


☕ Uma query passa por:

PARSING
 ↓
OTIMIZAÇÃO
 ↓
ACCESS PATH
 ↓
EXECUÇÃO

☕ O otimizador DB2 é extremamente sofisticado.


☕ Mas depende de:

  • estatísticas

  • índices

  • cardinalidade

  • distribuição de dados


☕🔥 RUNSTATS — O “ALIMENTO” DO OTIMIZADOR

Sem estatísticas boas:

🔥 o optimizer fica “cego”.


☕ Resultado?

  • table scans gigantes

  • CPU absurda

  • planos ruins


☕ Isso derruba produção REAL.


☕🔥 SYNCHRONISATION — O “TRÂNSITO” DAS TRANSAÇÕES

Agora entramos numa das áreas mais críticas do DB2.


☕ Concorrência.


☕ Milhares de usuários acessando simultaneamente.


☕ Problemas clássicos:

  • deadlocks

  • lock escalation

  • timeout

  • contenção


☕ Bellacosa Mainframe Analysis™

DB2 é praticamente:
🔥 controle aéreo de transações financeiras.


☕ Tudo precisa coexistir sem colisão.


☕🔥 LOCKING — O “RACF” DOS DADOS

O DB2 protege integridade via locking.


☕ Exemplo:

UPDATE CONTA
SET SALDO = SALDO - 100

☕ Enquanto isso outro processo pode tentar alterar a mesma linha.


☕ Sem controle?

🔥 corrupção de dados.


☕ O DB2 leva ACID MUITO a sério.


☕🔥 VIEWS, CTEs E STORED PROCEDURES — O “ABSTRACTION LAYER”

Agora chegamos no SQL mais sofisticado.


☕ Views

Abstração lógica.


☕ CTEs

Queries organizadas e reutilizáveis.


☕ Stored Procedures

Lógica próxima do banco.


☕ Isso reduz:

  • tráfego

  • latência

  • complexidade


☕ Mainframe sempre valorizou:

🔥 processamento perto dos dados.


☕🔥 ADVANCED — O NÍVEL “DB2 WHISPERER”

Agora entramos na elite.


☕ Aqui o profissional entende:

  • EXPLAIN PLAN

  • access path

  • index strategy

  • partitioning

  • concurrency

  • internals


☕ Ele para de perguntar:

“a query funciona?”

e começa perguntar:

“quanto ela custa?”

☕🔥 EXPLAIN PLAN — O “RAIO-X” DO DB2

Ferramenta obrigatória.


☕ Ela mostra:

  • scans

  • joins

  • sorts

  • index usage

  • estimated cost


☕ Bellacosa Mainframe Analysis™

EXPLAIN é como:
🔥 um IPCS da query.


☕🔥 INDEXING — A ARTE QUE SALVA OU DESTRÓI PERFORMANCE

Índice é maravilhoso…

até virar excesso.


☕ Muitos índices causam:

  • INSERT lento

  • UPDATE pesado

  • manutenção absurda


☕ Poucos índices causam:

🔥 scans infernais.


☕ O segredo é equilíbrio.


☕🔥 CONCURRENCY ISSUES — O “INFERNO INVISÍVEL”

Sistemas não caem apenas por CPU.


☕ Muitas vezes o problema é:

🔥 contenção.


☕ Exemplo:

10 mil usuários esperando lock.


☕ O ambiente parece “lento”…

mas na verdade está:

  • bloqueado

  • serializado

  • congestionado


☕🔥 MODEL & SYSTEM THINKING — O NÍVEL ARQUITETO

Aqui mora o verdadeiro especialista.


☕ Ele entende:

talvez o problema não seja SQL.


☕ Talvez seja:

  • arquitetura

  • modelagem

  • distribuição

  • workflow

  • volume

  • design transacional


☕ Isso é MUITO Bellacosa Mainframe.

Porque Mainframe sempre pensou:
🔥 sistema inteiro.


☕🔥 O DB2 NÃO É “SÓ BANCO”

Ele é:

  • plataforma transacional

  • motor financeiro

  • sistema crítico

  • infraestrutura operacional


☕ Grandes bancos dependem disso diariamente.


☕ PIX.

☕ Cartão.
☕ Bolsa.
☕ Seguros.
☕ Governo.

Tudo passa por bancos de dados extremamente sofisticados.


☕🔥 O MAIOR ERRO DOS DESENVOLVEDORES MODERNOS

Achar que:

hardware resolve tudo

☕ Mainframe ensina exatamente o contrário.


☕ Eficiência importa.

Muito.


☕ Porque escala real é brutal.


☕🔥 CONCLUSÃO — SQL NÃO É SOBRE CONSULTAS… É SOBRE ENTENDER O COMPORTAMENTO DO SISTEMA

Qualquer pessoa aprende SELECT.

Mas poucos realmente entendem:

  • optimizer

  • locking

  • access path

  • cardinalidade

  • modelagem

  • concorrência

  • custo operacional

E talvez essa seja a maior verdade do DB2 for z/OS:

o melhor programador SQL não é o que escreve queries mais “bonitas”.

🔥 É o que consegue fazer bilhões de transações coexistirem sem o sistema sentir dor.

quinta-feira, 9 de fevereiro de 2012

😈 CAP Theorem explicado para quem já confiou em commit em duas fases

 


😈 CAP Theorem explicado para quem já confiou em commit em duas fases


00:00 — Introdução: quando a teoria virou dor real

Se você é mainframer e já confiou em Two-Phase Commit, já viveu o CAP Theorem antes dele ter nome.
A diferença é que, no mainframe, chamávamos isso de:

“Ou o dado está certo, ou o sistema fica em pé. Os dois ao mesmo tempo… depende.”

O Teorema CAP nasceu no mundo distribuído moderno, mas suas raízes estão lá atrás, nos tempos de IMS, CICS, DB2, sysplex e coordenação distribuída feita no braço.



1️⃣ O que é CAP (sem marketing)

CAP diz que, em um sistema distribuído, quando ocorre uma falha de rede, você só pode garantir duas das três propriedades:

  • C – Consistency (Consistência)
    Todos veem o mesmo dado ao mesmo tempo.

  • A – Availability (Disponibilidade)
    O sistema sempre responde.

  • P – Partition Tolerance (Tolerância a partições)
    O sistema continua funcionando mesmo com falhas de rede.

⚠️ Spoiler mainframer:
P não é opcional. Se existe rede, vai haver partição.


2️⃣ A tradução CAP → dialeto mainframe 🧠

CAPMainframe raiz entende como
ConsistencyCommit garantido, dado íntegro
AvailabilityRegião em pé, SLA preservado
PartitionLink caiu, LPAR isolada, XCF brigando

👉 CAP não é escolha ideológica.
É decisão de sobrevivência.


3️⃣ Two-Phase Commit: o trauma fundador 😵

Fase 1 – Prepare

  • Todos dizem: “posso gravar?”

  • Locks segurados

  • Esperança intacta

Fase 2 – Commit

  • Coordenador manda gravar

  • Um nó não responde…

  • Silêncio

  • Lock eterno

  • DBA acordado

😈 Easter egg:
Quem já viu in-doubt transaction sabe que CAP não é slide de PowerPoint.


4️⃣ Onde o CAP dói de verdade

🔥 Consistência vs Disponibilidade

  • Quer dado correto?
    → Pode ficar indisponível.

  • Quer sistema respondendo?
    → Pode responder com dado antigo.

No mainframe, a escolha histórica foi:

Consistência acima de tudo.

No mundo web:

Disponibilidade acima de tudo.


5️⃣ Por que P não se discute

Em ambiente distribuído:

  • Switch falha

  • Roteador reinicia

  • Zona cai

  • Cloud provider “pisca”

📌 Curiosidade:
No sysplex, a IBM passou décadas tentando domar P com hardware, coupling facility e engenharia absurda.

Mesmo assim… partição acontece.


6️⃣ Modelos modernos (com cheiro de legado)

CP – Consistent + Partition tolerant

  • DB2

  • Sistemas financeiros

  • Core banking

💬 “Se não gravar certo, melhor não gravar.”

AP – Available + Partition tolerant

  • Cassandra

  • DynamoDB

  • Sistemas de catálogo, feeds, logs

💬 “Mostra algo agora, conserta depois.”


7️⃣ Eventual Consistency: o nome chique do “daqui a pouco acerta”

Mainframer traduz:

“Batch de reconciliação”

  • Dados podem divergir temporariamente

  • Em algum momento, convergem

  • Desde que não falhe tudo 😈

📎 Easter egg:
Você já fez eventual consistency com VSAM + batch noturno e nem percebeu.


8️⃣ Passo a passo para decidir CAP na prática

1️⃣ O dado é financeiro ou regulatório?
→ C é obrigatório

2️⃣ O usuário pode esperar?
→ Talvez A não seja crítica

3️⃣ Se a rede cair, pode parar tudo?
→ Se não, aceite inconsistência temporária

4️⃣ Existe reconciliação posterior?
→ Batch, eventos, compensação

5️⃣ Quem assume o erro?
→ Sistema ou negócio?


9️⃣ Guia de estudo para mainframers inquietos 📚

Conceitos

  • CAP Theorem

  • PACELC (CAP com latência)

  • Eventual Consistency

  • Sagas (compensação)

Ferramentas e paralelos

  • XA / 2PC → Transaction Coordinator

  • Kafka → MQ + replay

  • Sagas → Rollback manual versão cloud

  • Observabilidade → SMF espiritual


🔟 Aplicações práticas no mundo híbrido

  • Integrar DB2 com microservices

  • Decidir quando expor APIs síncronas

  • Projetar sistemas resilientes

  • Evitar 2PC em cloud (sim, evite!)

  • Atuar como arquiteto de verdade, não só operador

🎯 Mainframer que entende CAP vira arquiteto respeitado.


1️⃣1️⃣ Comentário final (02:17 da manhã)

CAP não é teoria acadêmica.
É a explicação formal da dor que você já sentiu.

Se você já:

  • Perdeu noite por commit travado

  • Desconfiou de dado “meio gravado”

  • Escolheu derrubar tudo para não corromper

Então parabéns.
Você praticou CAP antes de virar hype.

🖤 El Jefe Midnight Lunch conclui:
Cloud é só o mainframe que esqueceu suas lições.

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