☕ 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

domingo, 15 de agosto de 2010

SMP/E for z/OS Workshop : BUILDMCS, LINK MODULE e LINK LMODS

 

Bellacosa Mainframe apresenta SMP/E buildmcs link lmods e module

SMP/E for z/OS Workshop

BUILDMCS, LINK MODULE e LINK LMODS

Quando o SMP/E deixa de ser manutenção e vira engenharia de produto

Até agora, no mundo SMP/E, falamos muito de rotina operacional:
RECEIVE, APPLY, ACCEPT, RESTORE.
O famoso arroz com feijão do dia a dia.

Mas existe um outro SMP/E.
Menos usado.
Mais poderoso.
Mais perigoso se mal compreendido.

Hoje entramos no território de product build, onde aparecem três comandos que não são para iniciantes:

  • BUILDMCS

  • LINK MODULE

  • LINK LMODS

Aqui o SMP/E deixa de ser só manutenção e passa a ser engenharia reversa, migração e reconstrução de produtos.


SMP/E e a visão estrutural do z/OS

O SMP/E enxerga o z/OS como uma hierarquia:

  • 🔹 Elementos simples (SRC, MAC, MOD, PARM)

  • 🔹 Objetos intermediários (OBJ, módulos)

  • 🔹 Estruturas complexas (LMODs)

  • 🔹 Bibliotecas do sistema (target libraries)

Tanto o APPLY quanto os processos de geração de produto fazem a mesma coisa no fundo:

Pegam módulos, macros, source e dados
e combinam tudo para gerar load modules e bibliotecas executáveis

O segredo está em como o SMP/E entende essa estrutura:
👉 entries e subentries no CSI


Revisão rápida das principais subentries (a base de tudo)

🔹 DISTLIB=

Aponta para a distribution library
(cópia oficial, aceita, segura)

🔹 FMID=

Define o nível funcional

Quem é o dono original do elemento

🔹 RMID / UMID=

Definem o nível de serviço

Última substituição e atualizações

🔹 SYSLIB=

Usado por SRC, MAC, DATA, HFS
Define o DDNAME da target library

🔹 LMOD=

Usado em MODULE entries
Direciona o SMP/E para a estrutura do load module

Sem entender isso, BUILDMCS vira magia negra.


Distribution Zone: conteúdo sem estrutura

Um ponto crítico que muita gente erra:

Na DZONE não existe estrutura de LMOD

Na distribution zone:

  • Existem MOD entries

  • Não existem LMOD= subentries

  • O foco é conteúdo, não link-edit

A estrutura só nasce no target, durante APPLY, GENERATE ou LINK.


BUILDMCS – o “clonar produto” do SMP/E

O que é o BUILDMCS?

O BUILDMCS analisa um target zone ou distribution zone
e gera um SYSMOD funcional completo, contendo:

  • ++FUNCTION

  • ++MOD, ++MAC, ++SRC, ++PARM, ++HFS

  • ++JCLIN completo

  • FROMDS apontando para as DLIBs

📦 Resultado:

Um SYSMOD portátil, capaz de reinstalar um produto inteiro em outro ambiente SMP/E


Para que isso existe no mundo real?

Cenários clássicos:

  • Migração de produto entre ambientes

  • Criação de novo CSI

  • Consolidação de sistemas

  • Produto sem mais mídia oficial

  • Ambientes isolados (sem internet, sem Shopz)

BUILDMCS cria uma imagem funcional completa do produto, incluindo:

  • Função

  • Serviço

  • Usermods já aplicados


O que o BUILDMCS NÃO faz

🚫 Não altera o ambiente original
🚫 Não aplica nem aceita nada
🚫 Não “adivinha” dependências externas

Ele fotografa o estado atual do produto.


Como o BUILDMCS funciona por dentro

1️⃣ Analisa o zone (T ou D)
2️⃣ Reconstrói MCS a partir do CSI
3️⃣ Usa FROMDS para apontar para DLIBs
4️⃣ Gera SYSMOD superseding
5️⃣ Grava tudo no SMPPUNCH

Depois disso:

RECEIVE APPLY ACCEPT

em outro ambiente.


Relatórios gerados pelo BUILDMCS

BUILDMCS não é silencioso. Ele gera:

📄 Function Summary Report

  • FMIDs processados

  • SYSMODs substituídos

📄 Entry Summary Report

  • Todos os elementos do FMID

  • MODs, LMODs, DDDEFs

📄 Subentry Summary Report

  • Detalhe fino de cada entry

Se você não leu esses relatórios, você não sabe o que copiou.


⚠️ Restrições do BUILDMCS (a parte que cai em produção)

BUILDMCS não é para todo produto.

Problemas aparecem quando existem:

❌ Load modules compartilhados

Um LMOD com módulos de mais de um produto

❌ Elementos comuns

Mesmo nome e tipo fornecido por produtos diferentes

❌ VERSION, ASSEM, PREFIX

Essas operações não são recriadas

❌ Informações ausentes no Target Zone

  • LEPARM

  • ALIAS

  • DALIAS

Resultado?
👉 SYSMOD gerado incompleto ou incorreto


LINK MODULE – resolvendo dependência entre target zones

Agora imagine isso:

  • Produto A em TZONE1

  • Produto B em TZONE2

  • Um LMOD precisa de módulos dos dois

Sem reinstalar nada.

👉 LINK MODULE resolve isso


O que o LINK MODULE faz?

  • Reexecuta o link-edit

  • Inclui módulos faltantes

  • Atualiza ambos os target zones

  • Cria relacionamento cruzado (TIEDTO)

Tudo isso sem APPLY, sem ACCEPT.


Como o SMP/E documenta isso?

Após o LINK MODULE:

  • XZMODP no LMOD que foi relinkado

  • XZLMODP nos módulos envolvidos

  • TIEDTO nos dois target zones

Isso garante que o SMP/E:

  • Saiba da dependência

  • Avise (ou relinke automaticamente) no futuro


XZLINK – avisar ou agir?

No TIEDTO ZONE:

  • XZLINK(DEFERRED)
    👉 Apenas avisa possível inconsistência

  • XZLINK(AUTOMATIC)
    👉 SMP/E relinka automaticamente

Escolha errada aqui = surpresa em manutenção futura.


LINK LMODS – o REPORT CALLIBS que deu certo

O LINK LMODS substitui o antigo REPORT CALLIBS.

Ele:

  • Identifica LMODs por nome ou CALLIBS

  • Localiza todos os módulos

  • Executa link-edit direto nas target libraries

  • Tem CHECK mode

  • Tenta recuperação automática (compress + retry)

É APPLY sem SYSMOD.


Resumo Bellacosa Mainframe

ComandoPapel
BUILDMCSClona um produto
LINK MODULEResolve dependência entre zones
LINK LMODSRelinka LMODs diretamente

Frase final (estilo Bellacosa)

RECEIVE instala mídia.
APPLY constrói código.
ACCEPT oficializa.
RESTORE ensina humildade.
BUILDMCS revela quem realmente entende SMP/E.

No próximo módulo, entramos em LIST e REPORT — onde o SMP/E finalmente começa a contar a verdade sobre o seu sistema.

sábado, 14 de agosto de 2010

☕🔥 JCL & Produção Batch Mainframe — a engenharia silenciosa que move bilhões

 

Bellacosa Mainframe apresenta JCL Job Control Language


☕🔥 JCL & Produção Batch Mainframe — a engenharia silenciosa que move bilhões 


Se você já otimizou STEP para caber na janela, já analisou RC 0004 com cara de 0012, já salvou processamento crítico com um COND= bem colocado, então este texto não é introdutório.
É JCL raiz, técnico, com cheiro de CPD, café requentado e responsabilidade financeira.


🕰️ Origem & História — por que o JCL ainda governa o mundo

O JCL (Job Control Language) nasce junto com o conceito de processamento em lote nos grandes centros de dados, quando:

  • Processar tudo “online” era inviável

  • O custo de CPU precisava ser controlado

  • O erro precisava ser detectável, tratável e auditável

Enquanto linguagens vêm e vão, o JCL ficou porque:

  • É determinístico

  • É declarativo

  • É governável

  • É auditável

Verdade histórica:

Toda fintech moderna ainda depende de batch — só não admite.


🏦 Por que bancos, telecom e gigantes globais usam Mainframe

Empresas que processam milhões de transações críticas exigem:

  • Alta disponibilidade (24x7)

  • Integridade absoluta

  • Escalabilidade previsível

  • Segurança nativa

  • Throughput sob pico

A Plataforma IBM Mainframe entrega:

  • Sysplex

  • Parallel Sysplex

  • z/OS

  • DB2, CICS, MQ

  • RACF, SMF, RMF

🔥 El Jefe truth:

Cloud escala. Mainframe sustenta.


🧠 JCL não é script — é contrato operacional

JCL define:

  • O que roda

  • Quando roda

  • Com quais recursos

  • Com quais dados

  • O que acontece se falhar

Ele não executa lógica de negócio.
Ele orquestra o sistema operacional.

📌 Exemplo clássico:

//STEP01 EXEC PGM=PROG01,COND=(4,LT)
//DD01  DD DSN=BASE.DADOS.ENTRADA,DISP=SHR

Comentário ácido:

JCL errado não falha — impacta.


⚙️ Funcionamento do Processamento Batch

Fluxo real:

  1. Job submetido

  2. JES valida sintaxe

  3. Initiator seleciona

  4. Recursos alocados

  5. Programas executam

  6. RC avaliados

  7. Próximo STEP decide

  8. Output gerado

  9. SLA confirmado ou perdido

🔥 Veterano sabe:

O problema raramente está no STEP que abendou.


🧩 Ecossistema Operacional — as ferramentas de poder

🧑‍💻 TSO — o shell do z/OS

  • Execução direta

  • Diagnóstico rápido

  • REXX, CLIST, comandos

Curiosidade:

Quem domina TSO resolve problema sem ticket.


🗂️ ISPF/PDF — produtividade industrial

  • Editor poderoso

  • Gestão de datasets

  • Browse inteligente

  • Macros

🔥 Easter egg:

PF7 e PF8 são memória muscular.


📊 SDSF — o raio-X da produção

  • Jobs

  • STCs

  • Spool

  • Syslog

  • Comandos

📌 Uso clássico:

SDSF DA / ST / H

Verdade dura:

SDSF é onde a verdade aparece.


🧪 JCL na prática — decisões de veterano

COND vs IF/THEN/ELSE

  • COND = simples e perigoso

  • IF/THEN = legível e controlável

🔥 Regra de produção:

COND errado roda STEP que não deveria.


Alocação de Recursos

  • DISP

  • SPACE

  • UNIT

  • VOL

Fofoquice técnica:

DISP=SHR mal usado já derrubou banco.


Tratamento de Erros

  • RC esperado ≠ sucesso

  • RC aceitável ≠ erro

  • Abend ≠ falha total

📌 Exemplo:

// IF (STEP01.RC <= 4) THEN

🛠️ Utilitários do Sistema — os bastidores

  • IEBGENER

  • IDCAMS

  • SORT / ICETOOL

  • IEBCOPY

  • DFSORT

🔥 Veterano:

Quem domina utilitário domina batch.


🧠 Lógica Estruturada aplicada ao Batch

Mesmo sem “programar”:

  • Sequência

  • Decisão

  • Repetição (simulada)

  • Modularização por STEP

Comentário ácido:

JCL ruim é código espaguete sem goto.


🧨 Atividades Operacionais & de Análise

Produção batch exige:

  • Leitura de mensagens

  • Análise de dumps

  • Correlação entre jobs

  • Impacto em cadeia

  • Comunicação com negócio

🔥 Verdade cruel:

Produção não tem replay.


🥚 Easter Eggs & Curiosidades do Batch

  • Todo ambiente tem um job “imortal”

  • Sempre existe um dataset “temporário” de 10 anos

  • O maior medo é:

    “Rodou fora da janela…”

  • RC 0000 nem sempre é vitória


☕🔥 Conclusão — Manifesto El Jefe Batch

JCL não é:

  • Legado morto

  • Linguagem simples

  • Detalhe operacional

JCL é:

  • Coluna vertebral do processamento corporativo

  • Contrato de execução

  • Instrumento de controle de risco

☕🔥 Quem domina JCL,
não escreve jobs —
governa o processamento de dados.

Se quiser, posso:

  • Criar labs de produção real

  • Montar checklist de análise de jobs

  • Criar guia JCL para veteranos

  • Produzir versão acadêmica ou institucional

  • Montar trilha Batch + JCL + SDSF + RACF

É só chamar.

sexta-feira, 13 de agosto de 2010

☕ Lei da Responsabilidade

 

Bellacosa Mainframe e a lei da responsabilidade

Lei da Responsabilidade

ou: quem deu o SUBMIT é dono do JOB

Vou falar em primeira pessoa, porque essa lei eu não aprendi em livro — eu aprendi na marra, entre JCL mal formatado, JOB em ABEND e decisões da vida que também não tinham //SYSOUT=* pra revisar depois.


📜 Origem – de onde vem essa lei?

A Lei da Responsabilidade nasce da mesma matriz que:

  • o estoicismo (assuma o que depende de você),

  • a ética clássica,

  • e o famoso “cada ação gera consequência”.

No Japão, ela conversa muito bem com conceitos como giri (dever moral), sekinin (責任 – responsabilidade) e até com o mottainai: não desperdiçar oportunidades nem ações.

No mainframe?
Ela está implícita desde o primeiro dia:

“Quem submeteu o JOB é responsável pelo resultado.”

Simples. Brutal. Justo.


🧠 O que essa lei significa?

Significa entender que:

  • escolhas têm efeitos,

  • omissões também são escolhas,

  • e não existe rollback da vida.

Na TI e na vida:

  • Se deu certo → mérito.

  • Se deu errado → aprendizado (ou ABEND).

Culpar:

  • o sistema,

  • o colega,

  • o tempo,

  • o governo,

  • Mercúrio retrógrado,

é só uma forma elegante de rodar em WAIT indefinido.


🖥️ Tradução Bellacosa Mainframe

  • Você escreveu o JCL → você testa.

  • Você abriu a regra no RACF → você responde.

  • Você fez o DEPLOY sexta à noite → você não some.

Na vida:

  • Escolheu o caminho → sustente.

  • Falou → arque.

  • Prometeu → cumpra.

Responsabilidade é ownership, não culpa.


🛠️ Como praticar no dia a dia

  • Pare de terceirizar decisões.

  • Pare de dizer “não tive escolha”.

  • Tenha coragem de dizer: “fui eu”.

Dica prática:

Antes de qualquer decisão, pergunte:
“Eu topo lidar com a consequência disso?”

Se a resposta for não, não submeta o JOB.


🥚 Easter eggs & curiosidades

  • Em japonês corporativo, assumir erro rápido aumenta confiança, não diminui.

  • Em times maduros, quem assume falhas vira referência.

  • No mainframe, os melhores profissionais são os que dizem:
    “deixa comigo” — e ficam até resolver.


☕ Fofoquices do El Jefe

Já vi muito “senior” desaparecer quando o batch estourou.
E já vi muito “junior” crescer porque ficou até o último IEC999I virar sucesso.

Responsabilidade constrói reputação silenciosamente.


🧭 Como entender de verdade

Não confunda responsabilidade com peso.
Ela é liberdade com consciência.

Quando você assume:

  • ganha autonomia,

  • ganha respeito,

  • ganha paz.


🌏 Importância para a vida (e para o Japão)

No Japão, responsabilidade mantém:

  • confiança social,

  • eficiência coletiva,

  • harmonia (wa).

Na vida:

  • ela te tira do modo vítima,

  • te coloca no modo autor da própria história.


🧠 Conclusão Bellacosa

A Lei da Responsabilidade é simples:

Você é o operador do seu próprio sistema.
Se der ABEND, analisa, corrige e segue.

Sem drama.
Sem desculpa.
Sem RESET.


E agora me diga…
você anda assumindo seus JOBs ou só reclamando do spool?

quinta-feira, 12 de agosto de 2010

Uma tarde passeando por Leiria

Bellacosa Mainframe uma tarde de passeio por Leiria

☕ Um Café no Bellacosa Mainframe

🏰 Uma Tarde Passeando por Leiria

Peixinhos no ribeirão, um velho avião entre as árvores e os pequenos encontros de uma cidade descoberta a pé

O Barbinha tinha apenas dois anos quando fomos passar alguns dias em Leiria, Portugal.

Não me lembro daquela viagem por causa de um único grande acontecimento. Pelo contrário. Quando penso em Leiria, surgem pequenos fragmentos, quase como fotografias espalhadas sobre uma mesa.

Foram vários pequenos encontros com a cidade.

Caminhamos bastante.

Em determinado momento estávamos em um parque observando aquelas curiosas ilusões de óptica que transformavam um simples passeio em brincadeira. Em outro, encontramos algo completamente inesperado: um velho avião militar, aparentemente perdido entre as árvores.

Era justamente esse tipo de coisa que me fazia parar.

— Mas o que diabos esse avião está fazendo aqui?

E lá ia eu investigar, olhar, fotografar e guardar mais uma pequena peça daquela viagem.

Também encontramos o ribeirão atravessando a cidade, em alguns pontos disciplinado por antigas obras hidráulicas. Havia comportas que pareciam pertencer a outra época, testemunhas de uma Leiria que existia muito antes de nossa caminhada.

E naturalmente havia o grande sentinela da cidade:



o Castelo de Leiria.

Dominando a paisagem do alto, ele parecia acompanhar nossas andanças enquanto descobríamos as ruas lá embaixo.

Também conhecemos a histórica fábrica de papel, outro daqueles lugares onde gosto de imaginar quantas pessoas passaram, trabalharam e viveram antes de nós.

Mas o vídeo desta postagem registra algo muito mais simples.

Estamos apenas caminhando.

Paramos junto à água e ficamos vendo os peixinhos nadando no rio ou ribeirão.

Só isso.

Nenhuma grande atração turística.

Nenhum acontecimento extraordinário.

Um casal, uma criança de dois anos e alguns peixinhos.

Depois continuamos andando pela cidade.

Hoje percebo que justamente esses pequenos momentos acabaram se tornando uma das partes mais interessantes da viagem. Monumentos podem permanecer durante séculos. Podemos voltar e fotografar novamente o castelo, procurar a velha fábrica ou reencontrar aquelas comportas.

Mas aquele Barbinha de dois anos existe apenas naquele instante.



O menino cresceu.

Nós seguimos nossos caminhos.

A cidade mudou.

Até o sujeito segurando a câmera já não é exatamente o mesmo.

Por isso gosto tanto desses vídeos aparentemente banais.

Naquele momento eu estava simplesmente filmando alguns peixinhos durante uma caminhada por Leiria.

Dezesseis anos depois, percebo que estava fazendo outra coisa.

Estava guardando tempo.

E talvez seja exatamente para isso que servem essas pequenas crônicas perdidas pelo Bellacosa Mainframe: permitir que, muitos anos depois, alguém encontre novamente um velho avião entre as árvores, escute a água passando pelas comportas e veja um garotinho de dois anos descobrindo os peixinhos de um ribeirão português.

Bellacosa Mainframe — onde até uma caminhada aparentemente comum pode permanecer executando na memória por décadas.

-----------------------------------------------------------------------------------


Uma tarde passeando por Leiria


Estamos passeando por um parque delicioso, aproveitando as margens deste ribeirão cheio de patinhos, como bom maníaco por fotos. Nao podia deixar de capturar este pequeno momento.



Esta cidade tem muitos encantos a serem descobertos, possui um  castelo, uma antiga fabrica de papel (parece que foi a primeira de Portugal), um parque com avião militar, roda d'agua e o patinhos. Muitos patinhos nadando tranquilamente pela ribeira.

quarta-feira, 11 de agosto de 2010

A Rainha que Reinou Depois de Morta — Inês de Castro e o dia em que Portugal transformou um assassinato político em uma história de amor gótica

 


☕ Um Café no Bellacosa Mainframe

A Rainha que Reinou Depois de Morta — Inês de Castro e o dia em que Portugal transformou um assassinato político em uma história de amor gótica

👑 Um príncipe apaixonado, uma galega inconveniente, quatro assassinos, uma guerra civil, um cadáver supostamente coroado e seis séculos de portugueses perguntando: “mas ela foi mesmo rainha?”

Há histórias que começam como romance.

Há histórias que começam como crise política.

Há histórias que começam com alguém tomando uma decisão administrativa tão ruim que, algumas décadas depois, já existe guerra civil, cadáver desenterrado, vingança real e poetas escrevendo sobre o assunto.

Inês de Castro conseguiu as três coisas.

E talvez nenhuma personagem represente tão bem uma característica fascinante da história portuguesa: a capacidade de pegar uma tragédia política absolutamente brutal e transformá-la, geração após geração, numa das maiores histórias de amor do imaginário europeu.

Romeu e Julieta?

Bonitinhos.

Tristão e Isolda?

Respeitáveis.

Pedro e Inês?

Meu amigo...

Portugal colocou necromancia administrativa no backlog.

Porque a tradição popular diz que D. Pedro I de Portugal fez algo absolutamente cinematográfico: depois de tornar-se rei, mandou retirar do túmulo o cadáver da mulher que amava, vestiu-a como rainha, colocou-lhe uma coroa e obrigou os nobres portugueses a beijarem a mão da morta.

É uma imagem fantástica.

Também temos um pequeno problema:

provavelmente não aconteceu assim.

E justamente aí nossa história começa.


☕ Primeiro café: quem diabos era Inês de Castro?

Inês de Castro nasceu provavelmente por volta de 1320–1325, pertencendo à poderosa família galega dos Castro.

E aqui já precisamos desligar o modo:

PRINCESA BONITA
+
PRÍNCIPE APAIXONADO
=
TRAGÉDIA

A Península Ibérica medieval era um gigantesco banco de dados de famílias aristocráticas fazendo JOIN umas com as outras.

Casamento era política.

Amante podia ser política.

Filho era política.

Padrinho era política.

Até quem dormia no quarto ao lado podia acabar sendo política.

Inês chegou a Portugal no séquito de Constança Manuel, que se casaria com o infante D. Pedro, filho do rei D. Afonso IV.

E aí temos o primeiro problema de produção.

Pedro se apaixonou por Inês.

A dama de companhia da esposa.

Parabéns, Pedro.

Você conseguiu abrir um incidente antes mesmo do segundo ato.


👸 Constança: a personagem esquecida

Existe uma injustiça histórica enorme nessa história.

Todo mundo lembra:

Pedro ❤️ Inês

Quase ninguém lembra adequadamente da mulher que estava no meio:

Constança Manuel.

Pedro era casado com ela.

E segundo uma tradição bastante repetida, Constança percebeu perfeitamente o que estava acontecendo e tentou uma solução medieval extremamente inteligente: convidou Inês para madrinha de um de seus filhos.

Por quê?

Porque o parentesco espiritual criado pelo batismo poderia transformar a relação entre Pedro e Inês em algo religiosamente muito mais complicado.

Era basicamente:

IF PEDRO_LOVES_INES = TRUE
THEN
    CREATE CANONICAL_IMPEDIMENT
END-IF.

🤣

A Igreja teria sido utilizada como firewall matrimonial.

A estratégia, porém, não resolveu o problema.

Constança morreu em 1345.

E agora Pedro estava viúvo.


❤️ Pedro e Inês: agora começa o verdadeiro problema

Depois da morte de Constança, a relação deixou de ser apenas um escândalo conjugal.

Passou a ser um problema de Estado.

Pedro e Inês tiveram filhos.

E os irmãos de Inês — especialmente membros poderosos da família Castro — estavam envolvidos nas complicadíssimas disputas políticas de Castela.

Isso preocupava profundamente Afonso IV.

Imagine o dashboard do rei:

REINO DE PORTUGAL
STATUS: ESTÁVEL

HERDEIRO:
D. Pedro

AMANTE DO HERDEIRO:
Inês de Castro

FAMÍLIA DA AMANTE:
poderosa nobreza galego-castelhana

FILHOS:
sim

RISCO DE INTERFERÊNCIA CASTELHANA:
████████████████░░

A questão não era simplesmente:

“Papai não gosta da namorada do filho.”

Era:

“Se essa mulher adquirir posição legítima e seus filhos entrarem numa futura disputa sucessória, quais facções estrangeiras ganharão influência sobre Portugal?”

E isso, no século XIV, era assunto mortalmente sério.

Literalmente.


🏰 Coimbra entra no mapa

Inês passou parte de sua vida em Coimbra, e a tradição ligou definitivamente o casal à Quinta das Lágrimas.

Image

Image

Image

Image

Image

Image

Image

O lugar tornou-se parte física da lenda.

A famosa Fonte das Lágrimas acabou associada às lágrimas de Inês e ao sangue derramado em seu assassinato.

E aqui encontramos algo que apareceu repetidamente nas nossas conversas sobre mapas, rinocerontes e leões medievais:

memória não precisa apenas de fatos. Ela adora lugares.

Você mostra uma fonte e conta:

“Foi aqui.”

Depois outra geração repete.

Depois Camões escreve.

Depois aparecem pinturas.

Depois peças.

Depois romances.

Depois filmes.

Depois turistas.

Séculos depois, a paisagem e a história já estão fundidas.


⚔️ 7 de janeiro de 1355: alguém resolve o problema em produção

Afonso IV tomou a decisão extrema.

Inês deveria morrer.

Os nomes tradicionalmente associados à execução são:

Pêro Coelho, Álvaro Gonçalves e Diogo Lopes Pacheco.

Inês foi assassinada em Coimbra em 1355, por ordem régia.

E aqui precisamos destruir outra simplificação romântica.

Ela não morreu simplesmente porque:

“um rei cruel não permitiu o amor.”

A execução foi essencialmente uma decisão política de eliminação de risco dinástico.

Horrenda?

Sim.

Mas racional dentro da brutal lógica política medieval?

Também.

Afonso IV aparentemente considerou que manter Inês viva representava risco maior para a Coroa do que eliminá-la.

Executou:

DELETE FROM POLITICAL_RISK
WHERE NAME='INES_DE_CASTRO';

Retorno:

SQLCODE = -911

DEADLOCK DETECTED
TRANSACTION ROLLED BACK

Porque ele eliminou Inês.

Mas não eliminou Pedro.


😡 E Pedro ficou ligeiramente aborrecido

“Ligeiramente” no sentido medieval da palavra.

Pedro rebelou-se contra o pai.

Portugal entrou num conflito entre partidários do príncipe e forças do rei.

Foi necessária mediação para impedir que a situação degenerasse ainda mais.

Eventualmente houve reconciliação.

Afonso IV morreu em 1357.

E então ocorreu aquilo que provavelmente deve ter provocado uma sensação desagradável em algumas pessoas na corte:

SYSTEM MESSAGE

NEW USER LOGGED IN:

PEDRO_I

PRIVILEGES:
KING
ROOT
ADMIN

O namorado da mulher assassinada agora era rei de Portugal.

E tinha memória.


🩸 Pêro Coelho: você tem 1 mensagem não lida

Pedro procurou os homens envolvidos na morte de Inês.

Pêro Coelho e Álvaro Gonçalves acabaram capturados e executados.

Diogo Lopes Pacheco conseguiu escapar.

As crônicas posteriores descrevem punições particularmente brutais e ajudaram a criar a imagem de Pedro como o Justiceiro — ou, dependendo de como se interpreta seu comportamento, o Cruel.

E a tradição tornou a vingança ainda mais macabra dizendo que os corações dos assassinos foram arrancados, um pelo peito e outro pelas costas.

Aqui novamente precisamos separar:

DOCUMENTO
CRÔNICA
TRADIÇÃO
LITERATURA
LENDA

Na história medieval, essas camadas frequentemente acabam executando no mesmo address space.


👑 Então Inês tornou-se rainha?

Agora chegamos ao grande ABEND.

Em 1360, Pedro declarou que havia se casado secretamente com Inês anteriormente.

Se verdadeiro, isso mudava tudo.

Porque Inês não teria sido simplesmente amante do príncipe.

Teria sido:

esposa legítima de Pedro.

E consequentemente teria adquirido condição régia quando considerada retrospectivamente em relação ao futuro rei.

O problema?

A história do casamento secreto é controversa.

Pedro afirmou que aconteceu.

Mas surgiram dificuldades sobre data, circunstâncias e testemunhos.

É quase o equivalente medieval de:

PEDRO:
"Existe documentação."

AUDITOR:
"Pode apresentar?"

PEDRO:
"Bem..."

AUDITOR:
"Quando ocorreu?"

PEDRO:
"Não lembro exatamente."

AUDITOR:
🤨

E daí nasceu a expressão pela qual gerações conheceriam Inês:

a rainha depois de morta.


💀 E o cadáver coroado?

Aqui entramos definitivamente no território gótico.

A história popular afirma que Pedro mandou exumar Inês.

O cadáver teria sido vestido com roupas reais.

Colocaram uma coroa sobre sua cabeça.

Inês foi sentada no trono.

E membros da corte teriam sido obrigados a passar diante dela e beijar sua mão.

É uma cena extraordinária.

É macabra.

É romântica.

É absolutamente perfeita para cinema.

E não possui sustentação contemporânea sólida que permita tratá-la como fato histórico estabelecido.

A narrativa parece desenvolver-se posteriormente.

Mas perceba como ela é poderosa.

Dizer:

“Pedro declarou que havia casado secretamente com Inês.”

é burocracia.

Dizer:

“Pedro colocou o cadáver da mulher amada no trono e obrigou aqueles que a desprezaram a beijar sua mão.”

Agora temos uma história.

E histórias sobrevivem melhor que atas.


🧠 O text-to-image medieval atacou novamente

Voltamos ao nosso rinoceronte de Dürer.

A Europa precisava representar uma coisa difícil:

Pedro tornou Inês simbolicamente rainha depois da morte.

Como transformar uma abstração jurídica e política numa imagem?

Muito simples:

PROMPT:

"Dead Portuguese queen,
medieval throne,
royal crown,
terrified nobles,
gothic atmosphere,
dramatic lighting,
revenge,
14th century"

GENERATE.

🤣

E pronto.

A imagem é tão extraordinariamente boa que passa a competir com a história real.

Exatamente como o rinoceronte de Dürer.

A representação torna-se mais memorável que o objeto representado.


🪦 Mas Pedro fez algo absolutamente real — e monumental

Não precisamos do cadáver sentado no trono.

Pedro mandou construir para Inês um magnífico túmulo no Mosteiro de Alcobaça.

E mandou preparar também o próprio.

Os túmulos de Pedro e Inês estão entre as grandes obras da escultura funerária medieval portuguesa.

Ali o romance ganha pedra.

Literalmente.

Image

Image

Image

Image

Image

Image

Existe ainda a famosa associação à expressão:

“Até ao fim do mundo.”

Os túmulos foram dispostos de maneira que alimentou a tradição de que, no Juízo Final, ambos se levantariam e imediatamente se veriam.

É difícil encontrar uma solução arquitetônica mais portuguesa para um relacionamento complicado:

“Já que em vida deu errado, configuramos corretamente o resurrection boot sequence.”

🤣


📖 Camões entra no servidor

E então aparece o homem que ajudaria a tornar impossível separar Inês da identidade cultural portuguesa:

Luís de Camões.

Em Os Lusíadas, publicado em 1572, Camões incorporou a história de Inês à grande narrativa épica portuguesa.

É dali a célebre formulação:

“Aquela que depois de morta foi rainha.”

Pronto.

Acabou.

O incidente político de 1355 recebeu uma das melhores campanhas de marketing literário da história portuguesa.

A partir daí Inês não seria apenas personagem histórica.

Viraria mito nacional.


🎭 A Europa descobre Inês

E a história escapou de Portugal.

Ela virou teatro.

Poesia.

Ópera.

Pintura.

Romance.

Cinema.

Ballet.

Estudo histórico.

Turismo.

Cada época recompilou INES.CBL segundo seus próprios parâmetros.

O romantismo enxergou amantes separados pela tirania.

O nacionalismo encontrou uma grande tragédia portuguesa.

Artistas encontraram a rainha cadáver.

Historiadores encontraram uma crise dinástica.

Turistas encontraram Coimbra e Alcobaça.

E os portugueses encontraram uma frase maravilhosa:

“Agora é tarde. Inês é morta.”

Embora a história da própria expressão seja mais complicada que sua associação popular à personagem, ela acabou definitivamente incorporada ao universo inesiano.


🇵🇹 E aqui entra uma coisa que me fascina em Portugal

Conversávamos anteriormente sobre como o ponto de vista altera personagens históricos.

D. Maria I pode ser “a Louca” numa tradição e “a Piedosa” em outra.

D. João VI pode ser caricatura tropical ou um monarca enfrentando uma situação geopolítica quase impossível.

Pombal pode ser modernizador ou déspota.

Garibaldi pode ser libertador ou destruidor de um mundo político.

E Inês também muda dependendo da lente.

Pela lente romântica:

uma mulher assassinada porque amava o homem errado.

Pela lente política:

uma integrante de poderosa família galega cuja proximidade ao herdeiro português criou um problema dinástico.

Pela lente de Afonso IV:

risco de Estado.

Pela lente de Pedro:

esposa assassinada.

Pela literatura:

rainha depois de morta.

Pela cultura popular:

a mulher que governou um reino como cadáver.

Todas estão olhando para a mesma pessoa.

Mas nenhuma está vendo exatamente a mesma Inês.


🧩 O NULL histórico

E aqui nossa conversa sobre mapas antigos volta pela porta dos fundos.

História possui NULL.

Não sabemos exatamente algumas coisas.

Não sabemos com absoluta segurança todos os detalhes da relação.

O casamento secreto permanece problemático.

A coroação póstuma tornou-se lendária.

Os discursos atribuídos às personagens foram embelezados.

As motivações foram simplificadas.

Mas humanos detestam:

VALUE = UNKNOWN

Então preenchemos.

Cartógrafos colocavam monstros.

Escultores inventavam leões.

Dürer colocou placas de armadura num rinoceronte.

E gerações posteriores colocaram uma coroa sobre o cadáver de Inês.

Não necessariamente porque alguém desejasse falsificar deliberadamente a história.

Mas porque a imagem dizia perfeitamente aquilo que a cultura queria transmitir:

vocês recusaram reconhecê-la enquanto estava viva; Pedro obrigou o reino a reconhecê-la depois da morte.

Historicamente duvidoso.

Simbolicamente perfeito.


👑 E talvez seja por isso que Inês venceu

Afonso IV venceu em 1355.

Ele ordenou sua morte.

Inês morreu.

Politicamente, problema resolvido.

Só que...

seis séculos depois estamos falando de quem?

Inês.

A maioria das pessoas conhece Inês de Castro muito melhor que os conselheiros que recomendaram sua morte.

O rei tentou remover uma pessoa do tabuleiro político.

A literatura respondeu:

DELETE INES

e a cultura portuguesa retornou:

ERROR:

RECORD IS REFERENCED
BY FOREIGN KEY:

MEMORIA_NACIONAL

🤣🤣🤣

Não pode apagar.


☕ O Café Bellacosa

E talvez seja justamente isso que torna Inês tão fascinante.

A história factual já seria extraordinária:

um príncipe português apaixona-se por uma dama galega; o relacionamento ameaça o equilíbrio dinástico; o rei manda assassiná-la; o príncipe rebela-se; torna-se rei; vinga sua morte; afirma ter se casado secretamente com ela; concede-lhe monumental sepultura.

Já bastava.

Mas a memória humana respondeu:

Não.

Precisamos de mais.

Então colocou Inês num trono.

Vestiu o cadáver.

Pôs uma coroa.

Abriu as portas do salão.

Mandou entrar a nobreza.

E fez todos beijarem a mão da mulher que haviam permitido matar.

Talvez nunca tenha acontecido.

Mas existe uma razão pela qual essa versão sobreviveu.

Porque ela contém uma espécie de justiça narrativa que a história real raramente oferece.

Em vida, Inês não conseguiu reconhecimento.

Morta, tornou-se rainha.

Afonso IV possuía soldados.

Pedro possuía a Coroa.

Camões possuía palavras.

E a memória coletiva portuguesa possuía algo ainda mais poderoso:

seiscentos anos para reescrever a interface.


🖥️ $HASP395 INES JOB ENDED

//INES     JOB  'PORTUGAL'
//LOVE     EXEC PGM=PEDRO
//POLITICS EXEC PGM=AFONSOIV
//MURDER   EXEC PGM=COIMBRA
//REVENGE  EXEC PGM=PEDROI
//LEGEND   EXEC PGM=CULTURE
//POETRY   EXEC PGM=CAMOES

IEF142I LOVE     - RC=00
IEF142I POLITICS - RC=08
IEF142I MURDER   - RC=00
IEF142I REVENGE  - RC=04
IEF142I LEGEND   - RC=00
IEF142I POETRY   - RC=00

$HASP395 INES ENDED

RETENTION PERIOD:
FOREVER

E talvez a melhor ironia seja esta:

Inês de Castro nunca precisou realmente sentar-se morta num trono.

A lenda fez algo muito maior.

Colocou-a num lugar do qual nenhum rei português poderia posteriormente expulsá-la:

a memória.

☕👑💀🇵🇹

E assim uma mulher assassinada em Coimbra em 1355, vítima de uma decisão brutal de segurança dinástica, tornou-se aquilo que seus assassinos provavelmente mais desejavam impedir:

uma personagem impossível de remover da história de Portugal.

terça-feira, 10 de agosto de 2010

Plan Continuation Bias: Doctor Who, COBOL e o Dia em que Todo Mundo Sabia que Deveria Parar — Mas Continuou Mesmo Assim

Bellacosa Mainframe e o plan cotinuation bias

☕ Um Café no Bellacosa Mainframe

Plan Continuation Bias: Doctor Who, COBOL e o Dia em que Todo Mundo Sabia que Deveria Parar — Mas Continuou Mesmo Assim

Uma viagem pela TARDIS dos incidentes para entender por que equipes continuam executando planos que já deixaram de fazer sentido

02:41.

Madrugada de implantação.

Café número cinco.

Mudança prevista para terminar à 01:30.

Ainda não terminou.

O rollback continua possível.

Pelo menos tecnicamente.

Mas ninguém quer pronunciá-lo em voz alta.

Na tela:

MIGRATION STATUS
------------------------------
STEP 01  OK
STEP 02  OK
STEP 03  OK
STEP 04  OK
STEP 05  WARNING
STEP 06  DELAYED
STEP 07  NOT STARTED

WINDOW REMAINING: 00:49

O gerente pergunta:

— Quanto falta?

Especialista:

— Pouco.

— Quanto é pouco?

— Mais dois passos.

Nosso programador COBOL iniciante olha para o relógio.

Depois para um log.

RECONCILIATION WARNING
UNMATCHED RECORDS: 184

Pergunta:

— Não deveríamos voltar?

O especialista responde:

— Depois de chegar até aqui?

O gerente concorda.

— Se fizermos rollback agora, perdemos toda a madrugada.

Outro analista:

— Vamos terminar. Falta pouco.

O jovem olha novamente para os 184 registros.

Agora são 247.

Ninguém parece interessado.

Porque o grupo já investiu:

quatro horas;

uma janela;

uma dúzia de profissionais;

aprovação;

planejamento;

pressão;

expectativa.

Parar agora parece derrota.

VWORP.

VWORP.

VWORP.

A TARDIS materializa-se no canto da sala.

O Doctor sai.

Olha para o relógio.

Olha para os registros divergentes.

Olha para a equipe.

— Por que vocês continuam?

O gerente responde:

— Porque estamos quase terminando.

O Doctor observa o painel.

— Essa resposta fala sobre o passado.

Silêncio.

— Eu perguntei por que o próximo passo ainda é a melhor decisão.

Eis nosso monstro da semana:


Plan Continuation Bias

Ou:

Viés de Continuação do Plano

A tendência de persistir em um plano originalmente razoável mesmo depois que novas informações mostram que ele deveria ser revisado, interrompido ou abandonado.


🌀 Nossa TARDIS já está ficando cheia de monstros

Até aqui encontramos:

Swiss Cheese Model — várias barreiras podem falhar.

Normalization of Deviance — desvios repetidos começam a parecer normais.

Hindsight Bias — depois do desastre, tudo parece óbvio.

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

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

Groupthink — consenso social elimina divergência.

Authority Gradient — alguém percebe o risco, mas não consegue contrariar quem possui mais autoridade.

Agora temos:

Plan Continuation Bias

E ele é especialmente perigoso porque costuma aparecer depois de todos os outros.

A equipe já:

escolheu um plano;

investiu recursos;

criou expectativas;

obteve aprovações;

está sob pressão;

e quer terminar.

Então a capacidade de dizer:

“Precisamos parar”

começa a desaparecer.


🧠 O que exatamente é Plan Continuation Bias?

Plan Continuation Bias descreve a tendência de continuar seguindo um plano mesmo quando as circunstâncias que justificavam aquele plano mudaram.

Inicialmente:

PLANO A
faz sentido.

Depois surgem novas informações:

RISCO NOVO
TEMPO MENOR
SINAL ANORMAL
PREMISSA INVALIDADA

Mas a mente continua:

PLANO A
porque já começamos.

Esse é o ponto crítico.

O plano deixou de ser tratado como hipótese operacional.

Virou compromisso psicológico.


✈️ A aviação conhece muito bem esse problema

O conceito é bastante discutido em fatores humanos na aviação.

Um voo aproxima-se do destino.

Meteorologia piora.

Combustível diminui.

Pista complica.

Alternativa existe.

Mas quanto mais próximo o avião chega do pouso, maior pode ser a pressão psicológica para concluir a aproximação original.

O plano era:

pousar aqui.

Novos dados podem exigir:

arremeter.

Ou:

alternar.

Mas continuar parece emocionalmente mais natural.

Em aviação, isso se relaciona fortemente com situações conhecidas como get-there-itis: a pressão para chegar ao destino planejado apesar da mudança das condições.

Agora substitua:

avião → sistema;

pouso → go-live;

alternativa → rollback.

Pronto.

Estamos numa War Room.


☕ Bellacosa Mainframe: “já estamos com 90%”

Uma das frases favoritas do Plan Continuation Bias:

“Já fizemos 90%.”

Parece argumento forte.

Mas não responde à pergunta correta.

A pergunta correta é:

“Com o que sabemos agora, executar os 10% restantes ainda é a melhor decisão?”

O esforço passado não pode mudar o risco futuro.

Se os últimos 10% podem destruir produção, os primeiros 90% são irrelevantes para essa decisão.


💸 Sunk Cost entra pela porta dos fundos

Plan Continuation Bias frequentemente caminha ao lado do famoso:

Sunk Cost Fallacy.

Custos afundados.

Imagine:

projeto já consumiu R$ 50 milhões.

Nova análise mostra que continuar provavelmente consumirá mais R$ 30 milhões sem benefício proporcional.

Alguém diz:

— Não podemos parar depois de gastar cinquenta milhões.

Mas os cinquenta já foram gastos.

Não voltarão.

A pergunta racional deveria ser:

“Vale a pena gastar os próximos trinta?”

Em incidentes:

“Já passamos quatro horas nessa implantação.”

Essas quatro horas já foram gastas.

A pergunta é:

“A próxima hora ainda faz sentido?”


🧠 O passado não deveria votar sobre o próximo passo

Essa frase merece destaque:

O passado explica como chegamos aqui. Não deveria decidir sozinho para onde vamos.

Cada ponto de decisão deveria considerar:

estado atual;

informação atual;

risco atual;

opções atuais.

Mas humanos carregam o investimento anterior.

Emoção chama isso de:

“Não desperdiçar.”

Engenharia deveria perguntar:

“Qual é o menor risco daqui para frente?”


👻 Easter Egg nº 1 — O corredor interminável

Imagine Doctor Who.

O Doctor e seus companions estão correndo por um corredor.

Companion:

— Estamos correndo há vinte minutos.

Doctor:

— Sim.

— Não deveríamos voltar?

— Não! Já corremos vinte minutos nesta direção.

Isso seria obviamente absurdo.

Se descobrirmos que o monstro está na frente, o fato de termos corrido vinte minutos não é argumento para continuar.

Mas em projetos e mudanças fazemos exatamente isso.

Com PowerPoint.


🧲 Anchoring Bias encontra Plan Continuation Bias

Plano original:

realizar migração Big Bang.

Isso vira âncora.

Depois surgem problemas.

A equipe continua interpretando tudo em torno da premissa:

a migração acontecerá hoje.

Não pergunta:

“Ainda deveria?”

Pergunta apenas:

“Como conseguimos terminar?”

Percebe a diferença?

A própria existência do plano passou a ser tratada como fato.


🔎 Confirmation Bias ajuda a manter o plano vivo

A equipe quer continuar.

Então começa a valorizar:

  • etapas que funcionaram;

  • métricas positivas;

  • evidências de progresso.

E minimizar:

  • warnings;

  • diferenças;

  • atrasos;

  • riscos.

Exemplo:

18 VALIDAÇÕES OK
2 WARNINGS

Alguém:

— Dezoito deram certo.

Excelente.

Mas e se um dos dois warnings for crítico?

Quantidade de indicadores verdes não anula semanticamente um vermelho.


👥 Groupthink aumenta a pressão

Gerente:

— Acho que devemos continuar.

Especialista:

— Também.

Outro:

— Já chegamos longe demais.

Agora o analista que pensa em rollback observa:

todo mundo concordando.

Ele começa a duvidar.

Groupthink transforma persistência em consenso.


🪜 Authority Gradient fecha a armadilha

Agora imagine que o diretor está presente.

— Precisamos concluir hoje.

O júnior pensa:

“Deveríamos rollbackar.”

Mas não fala.

Ou fala suavemente:

— Talvez fosse interessante considerar...

Ninguém reage.

Continuação.

Temos:

PLAN CONTINUATION BIAS
+
GROUPTHINK
+
AUTHORITY GRADIENT
=
“VAMOS SÓ TERMINAR”

Esse trio merece respeito.


🧀 E o Swiss Cheese?

Cada decisão de continuar pode abrir mais um buraco.

Exemplo:

barreira 1:

janela operacional.

Ultrapassada.

barreira 2:

reconciliação.

Incompleta.

barreira 3:

validação.

Parcial.

barreira 4:

rollback.

Cada vez menos tempo.

barreira 5:

equipe.

Cansada.

Os buracos começam a se alinhar.

Observe que o acidente talvez não tenha uma decisão absurda.

Tenha apenas várias decisões individualmente compreensíveis de:

“mais um pouco.”


🚨 O perigo do “mais um passo”

Essa frase é irmã de:

“Só mais cinco minutos.”

“Vamos terminar esta etapa.”

“Já que chegamos até aqui...”

“Rollback agora seria pior.”

Às vezes são verdadeiras.

Mas precisam de evidência.

Não podem virar reflexo.


⏳ A janela operacional muda a qualidade da decisão

Imagine uma mudança entre:

00:00 e 04:00.

À 00:30, rollback possui três horas disponíveis.

Às 03:40, faltam vinte minutos.

Mesmo se o estado técnico fosse idêntico, o risco operacional mudou.

Logo:

um plano pode ser bom às 00:30 e ruim às 03:40.

Decisão precisa considerar tempo.

Tempo não é apenas relógio.

É parte do sistema.


🧠 Fadiga muda tudo

Às 01:00:

equipe fresca.

Às 05:00:

mesma equipe?

Biologicamente, não.

Cansaço afeta:

atenção;

memória;

decisão;

comunicação;

tempo de reação.

Plan Continuation Bias frequentemente ocorre justamente quando equipes estão mais cansadas.

Ou seja:

quanto mais precisamos reavaliar,

menos capacidade temos de reavaliar.

Maravilhoso.


💤 Easter Egg nº 2 — RC=00 às 04:59

Existe uma lei informal da operação:

um job que termina às 01:00 com RC=00 é agradável.

Um job que termina às 04:59 com RC=00, cinco minutos antes da abertura, recebe tratamento religioso.

Ninguém quer olhar demais.

Mas talvez seja justamente quando deveríamos.


🔥 Escalation of Commitment

Outro conceito relacionado é escalation of commitment.

A pessoa ou organização continua investindo numa decisão ruim porque já está comprometida com ela.

Exemplo:

projeto atrasado.

Mais dinheiro.

Continua atrasado.

Mais equipe.

Mais consultoria.

Mais integração.

Agora parar fica ainda mais doloroso.

Então continua.

Cada investimento aumenta pressão psicológica para justificar os anteriores.

É uma espiral.


🧮 Um programa não conhece sunk cost

COBOL não pensa:

IF HORAS-GASTAS > 8
    CONTINUE-POR-ORGULHO
END-IF.

Seria um código curioso.

O sistema responde apenas ao estado presente.

Nós é que carregamos a história emocional do esforço.


💻 Exemplo COBOL: conversão de arquivo

Imagine uma migração.

Arquivo antigo:

100 milhões de registros.

Conversão inicia.

Depois de 85 milhões:

erros começam.

INVALID-DATE COUNT: 3

Continua.

90 milhões:

INVALID-DATE COUNT: 21

Continua.

95 milhões:

INVALID-DATE COUNT: 842

Alguém:

— Já processamos 95%.

Outro:

— Não faz sentido voltar.

Pergunta correta:

por que os erros estão crescendo?

Talvez os últimos 5% contenham dados históricos com formato diferente.

Talvez continuá-los cause milhares de corrupções.

95% completo não transforma os últimos 5% em seguros.


📈 Tendência importa mais que fotografia

Outro aprendizado.

Não olhe apenas:

ERROR COUNT = 842

Olhe:

85% → 3
90% → 21
95% → 842

Isso é uma tendência explosiva.

O estado está mudando.

Uma decisão baseada em dados de 85% já pode estar inválida.


🧠 Plano precisa ter hipóteses explícitas

Antes da mudança:

PREMISSA 1:
reconciliação ficará em zero.

PREMISSA 2:
tempo por etapa <= 30 min.

PREMISSA 3:
rollback disponível até 03:00.

PREMISSA 4:
erros críticos = zero.

Agora se uma premissa quebra:

reavaliar.

Isso é muito melhor que:

“vamos vendo.”

Porque define antecipadamente quando o plano deixa de ser o plano.


🛑 Abort Criteria

Uma ferramenta extraordinária:

critérios de aborto.

Antes de começar, defina:

ABORT IF:
- divergence > 0
- elapsed > X
- rollback margin < Y
- severity 1 condition appears
- validation Z fails

Por que antes?

Porque durante execução estaremos emocionalmente envolvidos.

Critérios definidos antes funcionam como proteção contra nosso eu futuro.


🚦 GO / HOLD / ROLLBACK

Talvez o mundo não precise ser apenas:

GO / NO-GO.

Podemos ter:

GO
Continuar.

HOLD
Parar temporariamente e investigar.

ROLLBACK
Retornar.

ABORT
Encerrar plano.

“HOLD” é especialmente útil.

Pessoas resistem menos a uma pausa que a um abandono definitivo.

E às vezes vinte minutos de HOLD evitam quatro horas de incidente.


🧠 Precommitment novamente

No episódio anterior vimos precommitment.

Aqui ele se torna central.

Antes:

“Se restarem menos de 45 minutos de rollback, voltamos.”

Durante:

03:16.

Faltam 44 minutos.

Sem debate emocional.

Rollback.

Claro que realidade pode exigir exceção.

Mas agora exceção precisa ser justificada.

Não continuidade.


🔄 Inverta o ônus da prova

Isso é poderoso.

Quando condição crítica ocorre, mude:

de:

“Por que deveríamos parar?”

para:

“O que prova que é seguro continuar?”

Essa inversão muda completamente a War Room.

Em condição normal:

continuação é default.

Após trigger crítico:

pausa é default.

Precisamos de evidência para retomar.


🕰️ Checkpoints obrigatórios

Plan Continuation Bias prospera quando um fluxo segue continuamente.

Crie checkpoints:

STEP 1
↓
CHECKPOINT

STEP 2
↓
CHECKPOINT

STEP 3
↓
CHECKPOINT

Em cada checkpoint:

  • premissas ainda válidas?

  • tempo restante?

  • riscos novos?

  • rollback ainda possível?

  • próximo passo ainda faz sentido?

Isso força reflexão.


☕ Bellacosa Mainframe: “checkpoint cognitivo”

Mainframeiro entende checkpoint.

Programas batch longos usam checkpoints para evitar reprocessamento completo.

Então por que decisões humanas não?

Imagine:

COGNITIVE CHECKPOINT
------------------------------
OBJECTIVE STILL VALID? Y/N
ASSUMPTIONS VALID? Y/N
NEW RISKS?          Y/N
ROLLBACK POSSIBLE?  Y/N
CONTINUE?           Y/N

Simples.

Mas poderoso.


🔁 Restart também pode ser armadilha

No mainframe adoramos restart.

Job abenda.

Corrige.

Restart.

Excelente.

Mas cuidado.

Talvez a melhor decisão não seja restartar do ponto de falha.

Talvez dados anteriores tenham ficado inconsistentes.

Plan Continuation Bias pode aparecer assim:

“Só precisamos restartar.”

Pergunta:

o estado anterior ainda é confiável?

Restart pressupõe integridade do checkpoint.

Valide.


🧩 O problema do “quase pronto”

“Quase pronto” não possui valor técnico universal.

Um processo pode estar:

99% completo;

e ainda ser 0% utilizável.

Exemplo:

migração financeira.

99,9% das contas migradas.

0,1% incorretas.

Pode ser inaceitável.

Percentual de progresso e percentual de segurança são coisas diferentes.


🧠 Completion Bias

Existe ainda uma tendência humana a gostar de completar tarefas.

Checklist quase terminado incomoda.

Queremos fechar.

Isso pode contribuir para continuar.

Último item.

Só falta um.

Mas o último pode ser exatamente:

validação crítica.

Não pule porque o cérebro quer o check verde.


📋 Checklist não é videogame

Checklist serve para controle.

Não para obter 100% de achievements.

Se item crítico falha, a meta não é marcar rapidamente.

É entender.


🚨 “Production is waiting”

Outra pressão:

produção esperando.

Usuários esperando.

Executivos esperando.

Mercado esperando.

Isso cria sensação de urgência.

Mas existe uma diferença entre:

urgência operacional

e

pressa cognitiva.

Urgência exige rapidez.

Pressa elimina pensamento.


🔎 O que mudou desde que o plano foi aprovado?

Pergunta extremamente útil:

“O que mudou desde a decisão original?”

Talvez:

volume;

dados;

horário;

infraestrutura;

dependência;

equipe;

risco;

rollback.

Se alguma condição mudou materialmente, decisão anterior precisa ser revalidada.


🧠 Decisão antiga não é autorização eterna

Change aprovado terça-feira.

Execução sábado.

Durante execução surge condição nova.

A aprovação não cobre automaticamente realidade desconhecida.

Governança não deveria dizer:

“Está aprovado, continue.”

Deveria dizer:

“Está aprovado dentro destas premissas.”

Se premissas mudam:

novo julgamento.


🏦 Em sistemas financeiros

Imagine batch de fechamento.

Processamento começou.

Diferença contábil aparece.

Mas fechamento precisa terminar até 06:00.

Equipe continua para “não perder janela”.

Agora talvez complete dentro do horário.

Com números errados.

O KPI foi cumprido.

A realidade não.


🔐 Em segurança

Migração de firewall.

Algumas regras não funcionam.

Equipe libera bypass temporário.

Agora está quase concluído.

Alguém percebe exposição.

Resposta:

— Terminamos primeiro e corrigimos amanhã.

Plan Continuation Bias.

Normalization of Deviance pode vir amanhã:

“Esse bypass ficou funcionando, nunca aconteceu nada...”

Olha nossos monstros se reproduzindo.


☁️ Cloud e deploy automatizado

Pipeline:

BUILD       OK
UNIT TEST   OK
DEPLOY      OK
SMOKE TEST  WARNING
TRAFFIC     25%

Equipe:

— Build e deploy deram certo.

Mas smoke test avisou.

O pipeline está dizendo:

pare.

Automação pode fornecer checkpoint objetivo.

Não transforme warning em decoração.


🤖 IA e agentes

Agora um exemplo moderno.

Agente recebe plano:

  1. consultar dados;

  2. gerar mudança;

  3. executar;

  4. validar.

Se durante passo 2 dados contradizem premissas, um agente mal projetado pode continuar porque seu workflow original manda.

Isso é quase um Plan Continuation Bias artificial.

Sistemas agentes precisam:

  • replanejamento;

  • condições de parada;

  • avaliação intermediária;

  • rollback;

  • confidence thresholds.

A mesma teoria aparece em humanos e máquinas.


🧠 O plano é uma hipótese sobre o futuro

Essa definição é maravilhosa:

Um plano é apenas uma hipótese sobre como o futuro deveria acontecer.

Ele diz:

Se fizermos A, depois B, provavelmente chegaremos a C.

Mas o futuro responde.

Se aparece:

D;

E;

Z;

o plano precisa aprender.

Não veneramos planos.

Usamos planos.


🗺️ Mapas não são território

O plano é mapa.

Produção é território.

Se o mapa diz:

existe ponte.

E você chega e a ponte caiu...

não avance com o carro porque:

“mas está desenhada no mapa.”

Atualize o plano.


👨‍💻 Dica para programador COBOL iniciante

Quando executar atividade longa, não pense apenas:

“Qual é o próximo passo?”

Pergunte periodicamente:

“Ainda devemos estar fazendo esta atividade?”

Essa pergunta é muito mais madura.

É possível executar perfeitamente um plano que não deveria mais existir.


🧪 Como detectar Plan Continuation Bias

Escute frases:

“Já chegamos até aqui.”

“Agora falta pouco.”

“Não podemos jogar tudo fora.”

“Só mais uma tentativa.”

“Vamos terminar e corrigir depois.”

“Rollback agora vai parecer ruim.”

“Já gastamos demais para parar.”

“Diretoria espera conclusão hoje.”

Acenda uma luz amarela.

Não significa que continuar seja errado.

Significa que motivos psicológicos podem estar substituindo razões técnicas.


🎯 Pergunta Bellacosa nº 1

Quando alguém disser:

“Já investimos muito.”

Pergunte:

“Se estivéssemos começando agora, com as informações atuais, escolheríamos continuar?”

Essa pergunta é brutalmente poderosa.

Se resposta:

“não”...

talvez sunk cost esteja dirigindo.


🎯 Pergunta Bellacosa nº 2

Outra:

“O que precisaríamos ver para parar?”

Se resposta for:

“Nada.”

Problema.

Você não possui plano.

Possui compromisso incondicional.


🎯 Pergunta Bellacosa nº 3

E outra:

“Qual é nosso último ponto seguro de retorno?”

Todo profissional precisa saber.

Não descubra depois que passou.


🧠 Point of No Return

Algumas mudanças possuem ponto após o qual rollback fica:

impossível;

caro;

arriscado.

Esse ponto precisa ser explicitamente identificado.

Exemplo:

00:00 START
01:00 SAFE ROLLBACK
02:00 SAFE ROLLBACK
02:30 LAST SAFE ROLLBACK
03:00 FORWARD FIX ONLY

Às 02:25:

decisão crítica.

Não simplesmente:

“mais cinco minutos.”


🛑 Last Safe Moment

Um conceito muito útil:

último momento seguro para decidir.

Não confunda com último momento possível.

Você pode tecnicamente decidir às 02:59.

Mas talvez isso deixe um minuto de rollback.

Imprudente.


🧯 Forward Fix também pode ser âncora

Às vezes rollback é realmente pior.

Então seguimos com forward fix.

Tudo bem.

Mas precisamos saber:

por que?

Não porque:

“já estamos aqui.”

Mas porque:

“dados atuais mostram que forward fix possui risco menor que rollback.”

Essa é engenharia.


📊 Decision Log

Registre:

02:15
Issue: reconciliation divergence
Decision: HOLD

02:27
Cause identified: duplicate restart marker
Decision: fix and rerun validation

02:42
Validation clean
Decision: GO

Isso cria aprendizado.

Também revela quando decisões foram tomadas apenas por pressão.


🧠 Post-mortem sem Hindsight Bias

Depois que tudo dá errado, parecerá óbvio que deveríamos ter parado.

Cuidado.

Nosso velho Hindsight Bias retorna.

Pergunte:

“No momento da decisão, quais sinais estavam disponíveis?”

Talvez continuar fosse razoável às 02:00.

Irrazoável às 03:00.

Não pinte toda timeline com conhecimento posterior.


🔬 O momento de virada

Em post-mortem, procure:

quando continuar deixou de ser a melhor opção?

Esse é um ponto fascinante.

Não necessariamente quando incidente começou.

Pode ser quando:

premissa quebrou;

rollback ficou apertado;

warning apareceu;

validação falhou.

Essa é a fronteira decisória.


🧠 Decision Inertia

Mesmo quando percebemos que contexto mudou, pode existir inércia decisória.

Plano já está em movimento.

Parar exige ação.

Continuar exige apenas não interromper.

Isso cria assimetria.

É psicologicamente mais fácil:

não fazer nada e continuar.

Por isso triggers automáticos ajudam.


🚦 Default seguro

Imagine:

falhou validação crítica.

Pipeline automaticamente:

STATUS: HOLD

Agora alguém precisa autorizar continuar.

Muito melhor que pipeline continuar automaticamente e alguém precisar correr para pará-lo.

Design de defaults importa.


🧀 Uma nova fatia de queijo

Podemos criar uma barreira específica:

FATIA:
STOP CONDITIONS

Buracos possíveis:

  • critérios vagos;

  • sem autoridade para parar;

  • sinais não monitorados;

  • pressão gerencial;

  • rollback não testado.

Novamente, teoria encontra operação.


👥 Incident Commander como guardião do replanejamento

Durante crise, Incident Commander pode perguntar periodicamente:

“Objetivo ainda é o mesmo?”

“Plano ainda é válido?”

“Estamos continuando por evidência ou inércia?”

Isso é função poderosa.

Não apenas coordenar tarefas.

Coordenar decisão.


🪫 Energia organizacional também acaba

Depois de seis horas:

atenção cai.

Paciência cai.

Qualidade de comunicação cai.

Talvez decisão correta seja trocar equipe.

Handover.

Outro turno.

Fresh eyes.

Persistir com as mesmas pessoas porque:

“elas conhecem o problema”

pode ser útil.

Ou pode perpetuar tunnel vision.


👀 Fresh Eyes

Uma pessoa nova pergunta:

— Por que continuamos?

E ninguém consegue responder sem dizer:

“Porque começamos.”

Isso é diagnóstico.

Fresh eyes quebram Plan Continuation Bias.


🔁 Rotate the skeptic

Durante operação longa, designe alguém periodicamente para perguntar:

“Deveríamos continuar?”

Não precisa executar.

Seu papel é desafiar continuidade.

É quase um Devil’s Advocate temporal.


📋 Checklist anti-Plan Continuation Bias

Antes de seguir:

[ ] As premissas originais continuam válidas?

[ ] Alguma condição material mudou?

[ ] Ainda temos margem segura para rollback?

[ ] Estamos dentro da janela planejada?

[ ] Os warnings estão estáveis ou crescendo?

[ ] Estamos confundindo progresso com segurança?

[ ] Continuar é melhor que rollback ou apenas menos doloroso?

[ ] Se começássemos agora, escolheríamos este plano?

[ ] O que faria a equipe parar?

[ ] Essa condição já aconteceu?

Se a última resposta for sim...

talvez a decisão já esteja tomada.

Estamos apenas evitando admiti-la.


🧬 Regeneração organizacional

Depois de identificar Plan Continuation Bias, uma organização madura cria:

critérios de aborto;

checkpoints;

last safe moment;

decision logs;

HOLD automático;

rollback testado;

precommitment;

fresh eyes;

autoridade de STOP;

reavaliação explícita.

E muda a linguagem.

De:

“precisamos terminar”

para:

“precisamos escolher o menor risco a partir daqui.”

Isso é maturidade operacional.


📓 Diário do Doctor

Se guardar algumas ideias desta viagem, guarde estas:

Plan Continuation Bias é a tendência de continuar um plano mesmo quando novas informações indicam que ele deveria ser reconsiderado.

Progresso passado não prova que continuar é correto.

Custos já gastos não deveriam decidir investimentos futuros.

“Quase pronto” não significa “seguro”.

Tempo e fadiga mudam o contexto.

Planos precisam de critérios explícitos de parada.

Rollback precisa ser tratado como opção legítima, não como fracasso.

Checkpoints forçam reavaliação.

O plano é uma hipótese, não uma promessa.

Pergunte o que mudou desde a decisão original.

E principalmente:

Continuar porque ainda faz sentido é engenharia. Continuar porque já começamos é psicologia.


🕰️ De volta às 02:41

Nosso programador olha novamente:

UNMATCHED RECORDS: 247

Agora:

UNMATCHED RECORDS: 391

Ele respira.

Authority Gradient ainda existe.

Groupthink ainda ronda.

Mas ele aprendeu.

— Solicito HOLD.

O gerente olha.

— Agora?

— Sim.

— Falta pouco.

— Justamente. Nosso último ponto seguro de rollback é 03:00. Temos dezenove minutos. Os registros divergentes estão aumentando.

Silêncio.

O Doctor sorri ao fundo.

O especialista pergunta:

— Qual recomendação?

— Parar, entender a divergência e decidir em dez minutos. Se não explicarmos, rollback.

O gerente olha para o relógio.

— HOLD.

Todos param.

Investigação.

Descobrem que o próximo passo transformaria os registros inconsistentes em estado definitivo.

Rollback executado às 02:56.

Produção anterior restaurada.

Mudança adiada.

Às 03:11, ambiente está estável.

Ninguém gosta.

A madrugada inteira “foi perdida”.

O gerente suspira:

— Trabalhamos cinco horas e voltamos ao ponto de partida.

O Doctor responde:

— Não.

— Como não?

— À meia-noite vocês tinham um sistema funcionando e uma hipótese.

Aponta para os logs.

— Agora têm um sistema funcionando e conhecimento.

Pausa.

— Isso é progresso.

O gerente pensa.

Nosso programador bebe o café já frio.

Talvez tenha gosto de vitória.

Ou de café às três da manhã.

É difícil distinguir.


🥚 Easter Egg final

Na manhã seguinte aparece um membro novo:

BELLACOSA.BIAS(TARDIS)

Dentro:

       IF PLAN-IS-WORKING
           CONTINUE
       ELSE
           PERFORM REASSESS
       END-IF.

       IF ONLY-REASON = 'WE-CAME-THIS-FAR'
           PERFORM STOP-AND-THINK
       END-IF.

Comentário:

* THE DESTINATION DOES NOT MAKE THE ROAD SAFE.

Outro:

* TURNING BACK IS ALSO A DECISION.

E finalmente:

* SOMETIMES THE FASTEST WAY FORWARD
* IS TO STOP.

Nosso programador fecha o membro.

Horas depois alguém pergunta sobre a implantação cancelada:

— Deu errado?

Ele pensa alguns segundos.

Responde:

— Não exatamente.

— Como assim?

— Descobrimos que daria errado antes de cruzar o ponto onde não dava mais para voltar.

A pessoa parece decepcionada.

Nenhum desastre.

Nenhuma manchete.

Nenhuma madrugada heroica recuperando produção.

Apenas uma mudança interrompida.

Isso não rende histórias espetaculares.

Mas talvez seja exatamente o tipo de história que sistemas críticos precisam produzir com mais frequência.

A TARDIS desaparece ao longe.

VWORP.

VWORP.

VWORP.

No quadro da War Room fica escrita uma última pergunta:

“Se ainda não tivéssemos começado, escolheríamos continuar agora?”

Se a resposta for não...

talvez seja hora de parar.

☕🌀

Next stop: Alarm Fatigue — quando o sistema grita tantas vezes que, no dia em que realmente precisa ser ouvido, ninguém mais presta atenção.

 

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