Translate

sexta-feira, 14 de agosto de 2015

📚 O Grande Bestiário da Fantasia : Volume VIII Warhammer Fantasy

 

Bellacosa Mainframe e o grande bestiario da fantasia parte viii

☕ Um Café no Bellacosa Mainframe

📚 O Grande Bestiário da Fantasia

Das Revistas Pulp aos Animes Modernos

Volume VIII

Warhammer Fantasy

Quando a Fantasia Descobriu que Nem Sempre o Bem Vence

"Conan mostrou que o mundo era perigoso. Dungeons & Dragons permitiu que qualquer pessoa explorasse esse mundo. Warhammer Fantasy deu um passo além: mostrou que talvez não existisse um lado realmente bom. A partir dali, a fantasia ficou velha, cansada, suja, brutal... e incrivelmente fascinante."


☕ Bellacosa Time Machine

Destino: Nottingham, Inglaterra

Ano: 1983

A chuva cai sobre as ruas inglesas.

Dentro de uma pequena empresa chamada Games Workshop, um grupo de designers trabalha cercado por miniaturas, livros de história, mapas medievais, tintas e dados.

O objetivo?

Criar um jogo de batalhas.

Nada muito diferente de tantos outros.

Mas...

Enquanto desenham cavaleiros, orcs e magos...

Uma pergunta muda tudo.

"E se nenhum reino fosse realmente seguro?"

Essa simples ideia criaria um dos universos mais influentes da fantasia moderna.


O Mundo Antes de Warhammer

No início da década de 1980.

Grande parte da fantasia ainda seguia um padrão.

Existiam:

o herói.

o vilão.

o reino.

o dragão.

a princesa.

Tudo relativamente organizado.

Warhammer olhou para isso.

E respondeu:

"Não."


A Europa Medieval de Verdade

Os criadores estudavam História.

Não apenas mitologia.

Mas também:

guerras religiosas.

peste negra.

fome.

mercenários.

caça às bruxas.

Inquisição.

Sacro Império Romano.

Guerras Hussitas.

Guerra dos Cem Anos.

Resultado?

O cenário parecia...

real.


O Velho Mundo

Em vez de criar um planeta completamente estranho.

Os autores reinterpretaram a Europa.

Nascia:

The Old World

O Império.

Bretonnia.

Kislev.

Tilea.

Estalia.

Norsca.

Cada região lembrava uma cultura histórica.

Sem ser uma cópia literal.


O Império

Claramente inspirado no Sacro Império Romano-Germânico.

Cidades enormes.

Política complicada.

Eleições.

Nobreza.

Mercadores.

Religião.

Corrupção.

Nada era simples.


Bretonnia

Inspirada nas lendas arturianas.

Cavaleiros.

Feudos.

Castelos.

Honra.

Mas...

Por trás do brilho...

Existia desigualdade.

Camponeses miseráveis.

Nobres privilegiados.

Warhammer adorava destruir idealizações.


Kislev

Mistura de Rússia e Polônia medieval.

Frio.

Neve.

Cavalaria.

Sobrevivência.

Sempre na fronteira.

Sempre lutando.


O Caos

Então surge a maior inovação.

Chaos.

Não era apenas um exército.

Era um conceito.

O Caos representa:

corrupção.

ambição.

medo.

violência.

desespero.

excesso.

mudança.

Qualquer pessoa.

Qualquer reino.

Pode cair.

Ninguém está protegido.


Os Quatro Deuses

Cada divindade representa um aspecto extremo da natureza.

Khorne

Guerra.

Sangue.

Combate.


Nurgle

Doença.

Putrefação.

Resistência.


Tzeentch

Mudança.

Manipulação.

Conhecimento.


Slaanesh

Excesso.

Prazer.

Obsessão.

Nenhum deles é simplesmente "o mal".

Cada um simboliza forças levadas ao extremo.

Essa ambiguidade tornou o universo muito mais complexo.


Orcs Diferentes

Os orcs de Warhammer não são cópias de Tolkien.

São violentos.

Mas...

Também caóticos.

Brigam entre si.

Improvisam.

Vivem para lutar.

Possuem humor.

Até certo ponto...

São assustadoramente divertidos.


Os Skaven

Talvez uma das maiores invenções da fantasia.

Homens-rato.

Vivendo sob cidades.

Sociedade baseada em:

traição.

paranoia.

experimentos.

tecnologia insana.

Nenhuma raça parecia igual.


Os Anões

Também mudaram.

Não eram apenas ferreiros.

Viviam presos ao passado.

Guardavam livros de ofensas.

Juramentos.

Ressentimentos.

Honra.

Cada derrota precisava ser lembrada.


Os Elfos

Elegantes.

Mas arrogantes.

Divididos.

Imperfeitos.

Nada de povos perfeitos vivendo felizes para sempre.


A Magia É Perigosa

Aqui encontramos outra revolução.

Magia não é apenas energia.

Ela vem do...

Caos.

Quanto mais poderosa.

Maior o risco.

O mago pode:

enlouquecer.

explodir.

invocar demônios.

abrir portais.

Perder o controle.

Lembra Berserk?


A Guerra Nunca Acaba

Em muitos mundos.

Existe uma guerra.

Em Warhammer...

Existe apenas guerra.

Paz é intervalo.

Nada mais.


O Visual

Armaduras enormes.

Martelos gigantes.

Catedrais móveis.

Canhões.

Bandeiras.

Crânios.

Velas.

Livros.

Correntes.

Tudo exagerado.

Tudo barroco.

Tudo excessivo.

É impossível confundir Warhammer com qualquer outro universo.


O Grimdark

Foi aqui que surgiu um conceito importantíssimo.

Grimdark.

Um mundo onde:

não existem finais felizes garantidos.

o bem pode perder.

o herói pode morrer.

a corrupção vence.

a esperança custa caro.

Décadas depois.

Essa palavra definiria um gênero inteiro.


O Japão Observa Novamente

Durante os anos 1980.

Artistas japoneses conhecem RPGs ocidentais.

Miniaturas.

Livros ilustrados.

Revistas.

Concept arts.

Entre eles.

Um jovem desenhista chamado...

Kentaro Miura.


Berserk

Observe:

armaduras.

demônios.

corrupção.

igrejas.

gigantes.

guerra.

mercenários.

monstros grotescos.

A influência medieval europeia é evidente, combinada com referências vindas da arte fantástica, da literatura e de RPGs ocidentais. Miura transformou esse conjunto em uma linguagem própria e inconfundível.


Dark Souls

Hidetaka Miyazaki também bebe dessa tradição.

Ruínas.

Cavaleiros decadentes.

Maldição.

Silêncio.

Armaduras gigantes.

Castelos destruídos.

Narrativa ambiental.

É impossível compreender Dark Souls sem conhecer essa genealogia da fantasia.


Goblin Slayer

Agora tudo começa a fazer sentido.

Goblin Slayer não nasceu do nada.

Ele é descendente direto de décadas de evolução.

Howard.

Frazetta.

D&D.

Warhammer.

Berserk.

Cada geração adicionou uma camada.

Goblin Slayer herdou:

o perigo.

a logística.

a brutalidade.

a necessidade de planejamento.

E principalmente...

a ideia de que goblins não são inimigos descartáveis.

São uma ameaça real.


Easter Egg do Bellacosa Mainframe

Imagine um auditor entrando no Império.

Pergunta:

— Existe documentação da infraestrutura?

O engenheiro responde:

— Existia.

Antes da última invasão do Caos.

Enquanto isso...

Um programador COBOL olha para um sistema de cinquenta anos.

Sorri discretamente.

"Eles também perderam a documentação..."


Curiosidades Que Pouca Gente Conhece

⚔ O universo nasceu para um jogo de miniaturas

Antes dos romances e videogames, Warhammer Fantasy foi criado para representar batalhas entre exércitos montados e pintados pelos próprios jogadores.


🎨 O visual mistura História e exagero

As armaduras e armas têm inspiração em períodos reais da Europa, mas foram ampliadas para criar uma identidade visual única e imediatamente reconhecível.


🐀 Os Skaven tornaram-se uma marca registrada

A ideia de uma civilização subterrânea de homens-rato conspirando contra o mundo influenciou diversas obras posteriores.


📚 Os romances expandiram enormemente o cenário

Com o passar dos anos, escritores desenvolveram personagens, cidades e eventos que transformaram Warhammer em um universo literário tão rico quanto o de muitas séries de fantasia.


🌑 Grimdark virou um gênero

O termo passou a ser usado para descrever histórias em que moralidade é ambígua, violência tem consequências e esperança nunca é garantida.


Quando a Fantasia Perdeu a Inocência

Se Robert E. Howard colocou lama nas botas do herói, Warhammer colocou o mundo inteiro sob uma tempestade permanente.

Aqui, não existem reinos perfeitos nem profecias capazes de garantir um final feliz. Reis podem enlouquecer. Magos podem destruir aquilo que tentam proteger. Heróis envelhecem, impérios entram em decadência e monstros não esperam educadamente a vez de atacar.

Warhammer Fantasy mostrou que um universo fantástico podia ser tão complexo, contraditório e cruel quanto a própria História humana. Essa visão influenciou romances, RPGs, videogames e mangás, preparando o terreno para a explosão da Dark Fantasy nas décadas seguintes.

No próximo volume, nossa máquina do tempo viajará para o Japão de 1989. Lá encontraremos um jovem artista que absorveu décadas de influências vindas de Howard, Frazetta, Dungeons & Dragons, Heavy Metal e Warhammer, transformando tudo isso em uma obra única.

Seu nome era Kentaro Miura.

E sua criação mudaria para sempre a maneira como o mundo entende a fantasia sombria.

Berserk estava prestes a nascer.


☕ Um Café no Bellacosa Mainframe

📚 O Grande Bestiário da Fantasia

Das Revistas Pulp aos Animes Modernos

Uma viagem pelas raízes da fantasia moderna: mitologia, revistas pulp, Robert E. Howard, Conan, Frank Frazetta, RPG, quadrinhos europeus, Dark Fantasy, MMORPGs e a chegada dos grandes animes de fantasia.

17 capítulos disponíveis.

I
As origens

Volume I — Antes de Conan

Uma viagem às raízes da fantasia: Gilgamesh, Beowulf, sagas nórdicas, mitologias antigas, Lord Dunsany, William Morris e Edgar Rice Burroughs.

Ler o Volume I ↗
II
O criador

Volume II — Robert E. Howard

A vida do escritor de Cross Plains que criou Conan, Kull, Solomon Kane, Bran Mak Morn e estabeleceu as fundações da Sword and Sorcery.

Ler o Volume II ↗
III
Era Hiboriana

Volume III — O Universo Conan

A engenharia da Era Hiboriana: reinos, povos, religiões, mapas, civilizações e o primeiro grande world building da fantasia moderna.

Ler o Volume III ↗
IV
Arte fantástica

Volume IV — Frank Frazetta

Como a força, o movimento, as sombras e os monstros de Frazetta definiram visualmente a fantasia que conhecemos.

Ler o Volume IV ↗
V
RPG de mesa

Volume V — Dungeons & Dragons

Quando a fantasia deixou de ser apenas lida e passou a ser vivida por jogadores, mestres, guerreiros, magos e ladrões ao redor de uma mesa.

Ler o Volume V ↗
VI
Quadrinhos europeus

Volume VI — Métal Hurlant

A revista francesa que rompeu fronteiras entre fantasia, ficção científica, surrealismo e narrativa visual.

Ler o Volume VI ↗
VII
Fantasia adulta

Volume VII — Heavy Metal

Quando a fantasia europeia cruzou o Atlântico, ganhou novas vozes e conquistou a cultura pop mundial.

Ler o Volume VII ↗
VIII
Grimdark

Volume VIII — Warhammer Fantasy

O Velho Mundo, os Deuses do Caos, os Skaven e a fantasia sombria onde a vitória do bem nunca é garantida.

Ler o Volume VIII ↗
IX
Dark Fantasy

Volume IX — Berserk

Kentaro Miura reuniu séculos de fantasia, arte europeia, horror, tragédia e guerra em uma das obras mais influentes do mangá.

Ler o Volume IX ↗
X
D&D no Japão

Volume X — Record of Lodoss War

A campanha de RPG que virou romance, mangá e anime, criando uma ponte definitiva entre Dungeons & Dragons e a fantasia japonesa.

Ler o Volume X ↗
XI
Fantasia e humor

Volume XI — Slayers

Lina Inverse demonstrou que a fantasia podia rir dos próprios clichês sem abandonar magia, aventura, perigo e construção de mundo.

Ler o Volume XI ↗
XII
Magia e responsabilidade

Volume XII — Sorcerous Stabber Orphen

Um protagonista cínico, magos imperfeitos e um universo onde magia possui teoria, limites, custos e consequências humanas.

Ler o Volume XII ↗
XIII
Mundos persistentes

Volume XIII — Ultima Online, EverQuest e Ragnarok Online

Os MMORPGs transformaram a fantasia em mundos habitados 24 horas por dia, com guildas, mercados, guerras, profissões e comunidades reais.

Ler o Volume XIII ↗
XIV
Sociedade virtual

Volume XIV — Log Horizon

Um MMORPG deixa de ser apenas um jogo e se transforma em uma civilização com economia, leis, diplomacia, educação e governança.

Ler o Volume XIV ↗
XV
Realidade virtual

Volume XV — Sword Art Online

Quando um MMORPG deixou de ser apenas um mundo virtual e se tornou uma prisão onde perder a partida significava perder a própria vida.

Ler o Volume XV ↗
Capítulo especial

As Revistas Pulp

Weird Tales, Amazing Stories, Argosy, Black Mask e outras revistas que publicaram heróis, monstros, detetives e mundos que mudariam a cultura popular para sempre.

Ler o capítulo especial ↗
Ω
Conclusão da série

O Guia Definitivo da Evolução da Fantasia Moderna

O índice final da série, conectando todos os capítulos e revelando como mitologia, pulp, Conan, RPG, quadrinhos, games e animes fazem parte da mesma árvore genealógica.

Ler o guia definitivo ↗
A linhagem

Das tábuas de argila aos mundos virtuais

Mitologias Revistas Pulp Conan Frazetta D&D Quadrinhos Europeus Warhammer Berserk Animes MMORPGs Isekais

O Grande Bestiário da Fantasia
Uma jornada do papel barato das revistas pulp aos pixels brilhantes dos mundos virtuais.

Voltar ao topo ↑

quinta-feira, 13 de agosto de 2015

🏬 A Mercearia do Agnelo e o Portal para o Mundo Adulto

 


🏬 Crônica — A Mercearia do Agnelo e o Portal para o Mundo Adulto

Nos anos 1970, existia um tipo de magia que não vinha de desenho animado, nem de videogame — vinha das pequenas tarefas.
E para o pequeno Vagner, ir às compras era mais que responsabilidade: era aventura, era rito de passagem, era quase um “mini estágio” para a vida adulta.

Ser o filho mais velho significava ter missões:
– Buscar pão e leite na padaria.
– Comprar mantimentos na mercearia.
– E até a ousada e nada proibida tarefa de ir ao boteco comprar cigarros para os pais — coisa que hoje pareceria ficção científica, mas na época era normalíssimo.

E entre todas essas missões, havia um destino especial:



A Mercearia do Agnelo

Um templo do cotidiano.
Um portal para outro mundo.

A mercearia tinha um cheiro próprio, uma mistura de café moído, madeira antiga, açúcar cristalizado e conversa de vizinhança.
E logo na entrada, trono absoluto da experiência sensorial, estava a máquina de moer café dos Moinhos Tupã.

Aquilo não era uma máquina.
Era um dragão vermelho que cuspia aroma.
O café entrava em grãos, dançava lá dentro, e saía em forma de pó fresquinho, quente, quase vivo.
A mercearia inteira se impregnava daquele perfume.
Era a assinatura olfativa da infância.

Havia também os grãos a granel, expostos em urnas de madeira com tampa: feijão carioquinha com manchas desenhadas pelo universo, feijão preto da mitica feijoada, milho de pipoca parceira dos desenhos da tarde, amendoim sem casca para torrar,  arroz soltinho, canjica branquinha que parecia pérola — tudo vendido por medida e conversa.



E o bidon de óleo vegetal.
Meu Deus, aquilo era item de museu.
Um tonel metálico, com torneirinha e uma bomba manual. O Agnelo pegava a garrafa de 1 litro de coca-cola reusada para unidade de medida e servia um litro certinho, sem desperdiçar.
Era o pré-histórico do “refill sustentável”.



Mas nada, absolutamente nada, superava o baleiro.

Aquele baleiro de vidro grandalhão, giratório, hipnótico.
Cada compartimento guardava um tesouro:
bala de coco, balas de café, jujuba, hortelã, gominha, tutti fruti ,caramelo, puxa-puxa e a divina bala de doce de leite…
O giro do baleiro parecia magia negra da gula.
Um comando arcano, uma rotação e lá estava, a tentação escolhida pelo destino.



Além disso, havia as rifas.
Meu pai, o Wilson, vendia.
O Agnelo revendia.
E eu assistia, fascinado, sem entender muito, mas achando tudo chiquérrimo — uma mistura de comércio, confiança e esperança em ganhar um relógio, óculos de sol, isqueiro ou a mítica bicicleta.



O Caminho com a Sacolinha

Aos sete anos, eu caminhava pelo bairro carregando a pequena sacola de pano no braço, como se estivesse carregando a vida adulta embrulhada ali dentro.
Hoje parece absurdo, mas na época era simples, natural.
As ruas eram livres, sem paranoia.
Pais davam conselhos — não entrar em carro de estranho, não conversar demais — mas o bairro era território seguro.



Brincar na rua era difícil, pois vivíamos numa via movimentada, a rua Ultrecht via de ligação entre  a Estrada de Mogi das Cruzes e a Avenida São Miguel.
Mas caminhar até o comércio era tranquilo, quase meditativo. Encontrando colequinhas de escola, velhas senhoras que conheciam a vida de todos, senhoras que sabiam do segredo do universo e além.

Eu recebia o dinheiro, comprava o que precisava, conferia o troco direitinho (aprendizado vital) e voltava pra casa com a sensação de missão cumprida.

Mal sabia eu que essa habilidade simples — andar sozinho, comprar, conferir, conversar, negociar, observar — seria o primeiro passo para algo que mudaria meu futuro:

Trabalhar anos depois como office-boy na Avenida Paulista, o coração financeiro do Brasil. Mas isso é outra historia para outro dia.

Foi ali, na mercearia do Agnelo, que atravessei pela primeira vez o portal entre o mundo infantil e o adulto.

Uma travessia silenciosa, cotidiana, mas transformadora.
Cada compra era um savepoint do meu RPG da vida real.

E no fundo, quando hoje fecho os olhos, ainda ouço o barulho do Moinhos Tupã moendo café…
a trilha sonora perfeita da infância que me ensinou a caminhar sozinho.

O Agnelo além de mercearia do Bairro era o coração vivo dos acontecimentos, point de informação, mais bem informado que a CIA ou o KGB. Espaço sagrado que os homens da família Bellacosa matavam o bicho antes do tradicional Almoço de Domingo e discutiam sobre futebol, fazendo mesas, ou melhor, balcão redondo sobre os resultados da rodada.



segunda-feira, 10 de agosto de 2015

Juliana Cunha Confeiteira e seus doces deliciosos


Doces e sobremesas para qualquer evento


Alfajor




Bolo Loucuras de Brigadeiros




Bolo Tentação de Leite Ninho




Bolo Doce Pecado de Morango e Chocolate



Melhores momentos




Brigadeiros uma historia de amor.




Eu amo mesmo brigadeiros!





domingo, 9 de agosto de 2015

PLATOON Z/OS — A Patrulha que Entrou Frágil no Batch e Saiu Antifrágil

 

Bellacosa Mainframe e o platoon zos entnda vuca bani fragil antifragil e cisnes negros

☕ Um Café no Bellacosa Mainframe

PLATOON Z/OS — A Patrulha que Entrou Frágil no Batch e Saiu Antifrágil

Como resiliência, antifragilidade, VUCA, BANI e Cisnes Negros explicam a sobrevivência de sistemas que processam bilhões enquanto o mundo dorme

Às 02h17 da madrugada, o datacenter não parecia uma sala de computadores.

Parecia uma selva.

As luzes dos painéis piscavam como vaga-lumes eletrônicos. O ar-condicionado soprava com a insistência de um helicóptero distante. Nos monitores do NOC, milhares de jobs atravessavam o JES2 como pelotões marchando em direção a objetivos que nenhum deles compreendia completamente.

Cada JOB carregava sua missão.

Cada STEP tinha uma responsabilidade.

Cada dataset era uma caixa de munição que não podia desaparecer.

E cada return code poderia decidir quem continuaria avançando e quem ficaria abandonado no spool.

Naquela noite, um jovem programador COBOL chamado Charlie Bell recebeu sua primeira missão crítica em produção.

Seu supervisor apontou para a tela e disse:

— O fechamento bancário está atrasado.

Charlie olhou para o relógio.

02:18.

Depois olhou para o SDSF.

JOBNAME   STATUS   RC
PAYBATCH  ABEND    S0C7

O silêncio que se seguiu foi mais assustador do que qualquer alarme.

Havia uma coisa que Charlie ainda não sabia, mas aprenderia antes do amanhecer:

No mainframe, sobreviver a uma falha não é suficiente.
É preciso voltar melhor do que se entrou.


1. O primeiro inimigo: a fragilidade invisível

Charlie abriu o job log.

O programa havia processado 18 milhões de registros corretamente. No registro seguinte, encontrou um campo numérico contendo caracteres inválidos.

O código executou:

ADD WS-VALOR-ENTRADA TO WS-TOTAL.

Só que WS-VALOR-ENTRADA, definida como numérica, havia recebido:

00012A50

O resultado foi o inevitável:

S0C7 - DATA EXCEPTION

O programa morrera por causa de uma única letra.

Dezoito milhões de registros atravessaram o campo de batalha sem problemas. Bastou um registro contaminado para derrubar toda a unidade.

Aquilo era fragilidade.

Um sistema frágil pode funcionar por anos. Ele parece estável, eficiente e confiável. Mas sua estabilidade depende de uma condição perigosa:

Nada inesperado pode acontecer.

O programa de Charlie supunha que todos os registros seriam válidos.

Não havia:

  • validação antes do cálculo;

  • registro de rejeitados;

  • mecanismo de checkpoint;

  • possibilidade de continuar após um erro;

  • identificação rápida do registro causador;

  • estatística de qualidade da entrada.

Era como uma ponte de cristal sobre a qual passavam milhares de veículos todos os dias.

O fato de ainda não ter quebrado não significava que fosse forte.

Significava apenas que o golpe certo ainda não havia chegado.

Fragilidade no mundo COBOL

Para um programador iniciante, a fragilidade aparece em lugares aparentemente inocentes:

MOVE CAMPO-ALFANUMERICO TO CAMPO-NUMERICO.
READ ARQUIVO-CLIENTES.
PERFORM PROCESSAR-REGISTRO
    UNTIL WS-FIM-ARQUIVO = 'S'.

Os comandos não estão errados por si mesmos. O perigo está nas premissas escondidas.

O campo sempre será numérico?

O arquivo sempre existirá?

O READ sempre retornará 00?

A chave sempre será encontrada?

O volume sempre caberá no espaço alocado?

O programa sempre terminará dentro da janela?

A fragilidade é frequentemente uma coleção de frases começando com:

“Isso nunca acontece.”

No mainframe, “nunca” é apenas um incidente que ainda não recebeu número de chamado.


2. Frágil, robusto, resiliente e antifrágil

O comandante da madrugada, um veterano conhecido como Sargento Abend, aproximou-se da estação de Charlie.

Ele havia sobrevivido a migrações, conversões de moeda, bugs de ano bissexto, viradas de versão do Db2 e a três projetos anunciados como “o fim definitivo do mainframe”.

Apontou para o S0C7 e perguntou:

— O que você pretende fazer?

— Corrigir o dado e reiniciar o job.

— Isso é recuperação. Mas o que impedirá o próximo dado inválido?

Charlie ficou calado.

O Sargento Abend pegou um marcador e desenhou quatro palavras em um quadro:

FRÁGIL
ROBUSTO
RESILIENTE
ANTIFRÁGIL

Frágil: quebra com o choque

Um programa frágil funciona apenas enquanto o ambiente respeita suas expectativas.

Exemplo:

COMPUTE WS-MEDIA =
        WS-TOTAL / WS-QUANTIDADE.

Se WS-QUANTIDADE for zero, o programa poderá sofrer uma exceção.

O código pressupôs que sempre existiria pelo menos um item.

A entrada inesperada revelou a fragilidade.

Robusto: suporta o choque

Um sistema robusto possui força suficiente para permanecer praticamente inalterado.

Exemplo:

IF WS-QUANTIDADE NOT = ZERO
    COMPUTE WS-MEDIA =
            WS-TOTAL / WS-QUANTIDADE
ELSE
    MOVE ZERO TO WS-MEDIA
END-IF.

Agora o programa não quebra com a divisão por zero.

Ele suporta a condição adversa.

Mas apenas suportar não significa aprender.

Resiliente: sofre, recupera-se e retorna

Um sistema resiliente pode falhar parcialmente, mas possui meios de retornar ao serviço.

No batch, isso pode envolver:

  • checkpoint;

  • restart;

  • arquivos de controle;

  • commits intermediários;

  • GDGs;

  • cópias de segurança;

  • steps reiniciáveis;

  • datasets temporários preservados;

  • lógica para evitar duplicidade.

Um job resiliente não precisa reprocessar 18 milhões de registros porque falhou no registro 18.000.001.

Ele sabe onde estava.

Ele consegue retomar.

Antifrágil: melhora depois do choque

O antifrágil vai além.

Depois do S0C7, a equipe não apenas corrige o registro.

Ela transforma o incidente em uma melhoria permanente:

  1. cria validação de dados;

  2. isola registros inválidos;

  3. gera relatório de rejeitados;

  4. adiciona métricas;

  5. implementa checkpoint;

  6. revisa outros programas com o mesmo padrão;

  7. cria teste automatizado;

  8. documenta a causa;

  9. atualiza o runbook;

  10. monitora a qualidade da origem.

O próximo dado inválido não encontra o mesmo sistema.

Ele encontra um sistema que aprendeu.


3. A batalha entre voltar e evoluir

Resiliência e antifragilidade são parentes, mas não são gêmeas.

A resiliência diz:

“Fui atingido, mas consegui voltar.”

A antifragilidade diz:

“Fui atingido, descobri onde era vulnerável e transformei a cicatriz em blindagem.”

Imagine um CICS que sofre indisponibilidade porque uma região AOR atingiu seu limite de tarefas.

Uma resposta resiliente poderia ser:

  • reiniciar a região;

  • redirecionar transações;

  • restaurar o serviço;

  • limpar filas;

  • normalizar o processamento.

Excelente. O ambiente voltou.

Mas uma resposta antifrágil investigaria:

  • por que o MXT foi atingido;

  • quais transações ficaram suspensas;

  • se houve contenção de recursos;

  • se o tempo de resposta cresceu antes da falha;

  • se alertas poderiam ter sido disparados;

  • se o CPSM poderia distribuir melhor a carga;

  • se determinada transação deveria possuir limite próprio;

  • se os dados SMF já indicavam a aproximação do problema.

A recuperação devolve o sistema ao estado anterior.

O aprendizado muda o estado futuro.

No campo de batalha digital, uma tropa que apenas substitui soldados sem mudar sua estratégia continuará caindo no mesmo lugar.


4. O Cisne Negro entrou no CPD

Às 03h02, enquanto Charlie analisava o dump, o telefone da operação tocou.

Um sistema externo enviara um arquivo três vezes maior do que o habitual. Ninguém havia sido avisado. A campanha promocional que gerara o volume fora criada por uma área de negócios sem comunicação com a equipe técnica.

O arquivo maior provocou:

  • aumento do tempo de leitura;

  • crescimento de arquivos temporários;

  • pressão sobre sort work;

  • atraso nos jobs dependentes;

  • acúmulo de mensagens;

  • ultrapassagem da janela batch.

Para a equipe de operações, aquele aumento parecia um Cisne Negro.

Um evento inesperado, de alto impacto, fora do radar daquelas pessoas.

Mas havia uma sutileza.

Para a área de marketing, o crescimento não era imprevisível. A campanha havia sido planejada.

Isso ensina algo importante:

Um Cisne Negro depende também da perspectiva do observador.

O evento pode ser inesperado para o CPD e perfeitamente conhecido por outra área.

Muitos supostos eventos imprevisíveis são, na realidade, falhas de comunicação, governança ou observabilidade.

Depois do problema, todos dizem:

— Era evidente que o volume aumentaria.

Essa é a racionalização posterior.

Depois que o cisne aparece, parece fácil explicar por que ele sempre esteve ali.

O erro de tentar prever tudo

Não existe ferramenta capaz de prever cada:

  • crise;

  • falha;

  • ataque;

  • alteração regulatória;

  • comportamento de cliente;

  • ruptura de fornecedor;

  • crescimento inesperado;

  • defeito escondido.

Portanto, a estratégia madura não consiste apenas em tentar adivinhar o próximo evento.

Consiste em construir um ambiente capaz de:

  • absorver impactos;

  • limitar danos;

  • manter serviços essenciais;

  • recuperar dados;

  • alterar prioridades;

  • aprender rapidamente;

  • explorar oportunidades surgidas durante a crise.

No mainframe, isso significa projetar para o inesperado, e não apenas para o cenário ideal.


5. VUCA: a selva onde o mainframe opera

O pelotão de Charlie atravessava um ambiente VUCA.

VUCA significa:

V – Volatility     – Volatilidade
U – Uncertainty    – Incerteza
C – Complexity     – Complexidade
A – Ambiguity      – Ambiguidade

Volatilidade: o volume muda sem pedir licença

Hoje o sistema processa um milhão de transações.

Amanhã, quinze milhões.

Um PIX coletivo, uma promoção, uma mudança de tarifa ou uma crise pode alterar o comportamento do processamento em minutos.

No mainframe, a volatilidade afeta:

  • CPU;

  • MSU;

  • memória;

  • buffers;

  • filas;

  • conexões;

  • datasets;

  • sort work;

  • janela batch;

  • consumo de serviço externo.

Como reagir

O programador iniciante deve aprender a não construir programas limitados apenas ao volume atual.

Algumas perguntas úteis:

  • O contador suporta o crescimento?

  • O campo PIC é grande o suficiente?

  • O total pode ultrapassar o limite?

  • O arquivo poderá ter milhões de registros?

  • O processamento pode ser dividido?

  • Existe gargalo em operações repetitivas?

  • O programa grava DISPLAY para cada registro?

  • Há commits demais ou de menos?

Considere:

01 WS-CONTADOR PIC 9(05).

Esse contador suporta até 99.999.

Talvez funcione hoje.

Mas, se o arquivo crescer para 100.000 registros, o contador poderá sofrer truncamento ou comportamento inadequado, dependendo do uso.

Uma definição mais prudente poderia ser:

01 WS-CONTADOR PIC 9(09) COMP-5 VALUE ZERO.

Não se trata de tornar tudo gigantesco. Trata-se de dimensionar com consciência.


Incerteza: não sabemos exatamente o que virá

O requisito ainda pode mudar.

A origem do dado pode alterar o layout.

Uma API pode ficar indisponível.

O negócio pode criar uma nova categoria.

O programa iniciante costuma tentar eliminar toda incerteza antes de começar.

O profissional experiente aceita que parte dela continuará existindo.

Por isso, ele cria:

  • validações;

  • parâmetros;

  • tabelas de configuração;

  • mensagens claras;

  • códigos de retorno;

  • interfaces versionadas;

  • tratamento de exceções;

  • pontos de observação.

Um programa cheio de valores fixos é uma armadilha.

IF WS-LIMITE > 5000

Por que 5000?

Quem definiu?

Quando mudará?

Seria melhor manter o valor em uma tabela, arquivo de parâmetros ou mecanismo de configuração apropriado.

A incerteza não desaparece. Mas o custo de adaptação pode ser reduzido.


Complexidade: tudo está ligado a tudo

Charlie pensava que estava investigando apenas um programa COBOL.

Logo descobriu que o job dependia de:

  • arquivo vindo de Linux;

  • transferência por Connect:Direct;

  • catálogo de datasets;

  • SMS;

  • DFSORT;

  • programa COBOL;

  • tabela Db2;

  • fila MQ;

  • transação CICS;

  • API consumida por mobile banking;

  • relatório enviado para outro sistema.

O S0C7 era apenas o primeiro cadáver encontrado na selva.

Sistemas mainframe raramente existem sozinhos.

A complexidade nasce das interações.

Um programa pode estar correto isoladamente e ainda provocar um incidente quando combinado com:

  • volume;

  • concorrência;

  • locks;

  • ordem de execução;

  • formato de dados;

  • timezone;

  • encoding;

  • dependências externas.

Dica de sobrevivência

Mapeie o fluxo:

Origem
   ↓
Transferência
   ↓
Validação
   ↓
Programa COBOL
   ↓
Db2 / VSAM
   ↓
MQ
   ↓
CICS
   ↓
API
   ↓
Usuário

Quando você enxerga apenas seu código, cada falha parece misteriosa.

Quando enxerga o sistema inteiro, as pistas começam a falar.


Ambiguidade: o requisito possui duas interpretações

O analista escreveu:

“Clientes com saldo superior a R$ 10.000 recebem tratamento especial.”

Charlie perguntou:

— Saldo atual, saldo médio ou saldo disponível?

Ninguém soube responder.

A ambiguidade surge quando a mesma frase permite múltiplas interpretações.

No COBOL, ambiguidade de negócio é mais perigosa do que ambiguidade sintática.

O compilador rejeita um comando malformado.

Mas aceita perfeitamente uma regra de negócio incorreta.

IF SALDO-CLIENTE > 10000
    MOVE 'S' TO CLIENTE-ESPECIAL
END-IF.

O código compila.

O problema é que talvez ninguém saiba o que SALDO-CLIENTE realmente representa.

Como reduzir a ambiguidade

  • pergunte;

  • escreva exemplos;

  • defina casos-limite;

  • registre premissas;

  • confirme resultados esperados;

  • crie testes com valores próximos à fronteira.

Exemplo:

R$ 9.999,99  → Não especial
R$ 10.000,00 → Não especial
R$ 10.000,01 → Especial

Ou seria >= 10000?

Uma única condição pode alterar milhares de clientes.


6. BANI: quando a selva também entra na mente

Se VUCA descreve a natureza instável do ambiente, BANI ajuda a compreender como sistemas e pessoas reagem.

B – Brittle           – Frágil
A – Anxious           – Ansioso
N – Non-linear        – Não linear
I – Incomprehensible  – Incompreensível

Brittle: sólido por fora, quebradiço por dentro

O sistema de Charlie parecia confiável.

Executava havia 12 anos.

Mas dependia de:

  • um único especialista;

  • um layout não documentado;

  • espaço de disco calculado em 2018;

  • um programa sem testes automatizados;

  • uma PROC alterada manualmente;

  • um fornecedor externo sem acordo de volume.

Era um castelo pintado sobre vidro.

A fragilidade pode esconder-se atrás de anos de sucesso.

Quanto mais tempo um sistema funciona sem incidentes, maior pode ser a tentação de acreditar que ele é invulnerável.

Esse é o momento mais perigoso.


Anxious: todos recebem alarmes, ninguém sabe agir

Às 03h20, os grupos de mensagens explodiram.

URGENTE
CRÍTICO
PRIORIDADE MÁXIMA
PRECISAMOS DE POSIÇÃO
ALGUMA NOVIDADE?

A cada dois minutos alguém perguntava quando o problema seria resolvido.

A equipe precisava investigar, mas era interrompida por solicitações de atualização.

Isso é ansiedade operacional.

Um ambiente com alarmes demais produz cegueira.

Se tudo é crítico, nada é realmente priorizado.

A solução não é exigir que os profissionais “sejam mais fortes”.

É construir:

  • papéis claros;

  • canal único de comando;

  • periodicidade de atualização;

  • classificação de severidade;

  • runbooks;

  • observabilidade útil;

  • comunicação objetiva.

Em incidentes graves, uma pessoa deve investigar enquanto outra comunica.

Colocar o mesmo técnico para diagnosticar, corrigir, responder mensagens, participar de reunião e preencher planilha é transformar um problema técnico em colapso humano.


Non-linear: uma letra derrubou milhões de registros

O S0C7 nasceu de um caractere.

Uma única letra produziu impacto sobre milhões de transações.

Essa é a não linearidade:

Causa pequena
≠
Efeito pequeno

Outros exemplos:

  • um DDNAME incorreto impede um fechamento;

  • uma chave duplicada interrompe carga VSAM;

  • um lock esquecido bloqueia milhares de usuários;

  • um commit mal dimensionado degrada todo o Db2;

  • um DISPLAY dentro de loop lota o spool;

  • um campo aumentado quebra dezenas de programas;

  • uma condição > em vez de >= altera resultados financeiros.

Em sistemas não lineares, pequenas mudanças exigem respeito.

Nunca diga:

“É só uma linha.”

Uma linha pode ser a porta de entrada de um exército inteiro.


Incomprehensible: o sistema funciona, mas ninguém sabe por quê

O programa possuía 27 mil linhas.

Algumas rotinas eram chamadas por GO TO.

Havia COPYBOOKs dentro de COPYBOOKs.

Campos chamados:

WS-AUX1
WS-AUX2
WS-FLAG-X
WS-CONTROLE
WS-AREA

Ninguém sabia exatamente por que determinado trecho existia.

Mas todos tinham medo de removê-lo.

Esse é o território do incompreensível.

Não significa que o sistema seja mágico.

Significa que seu conhecimento foi perdido, fragmentado ou escondido.

Como lutar contra isso

  • nomes significativos;

  • documentação próxima ao código;

  • testes;

  • mapas de chamadas;

  • análise de impacto;

  • comentários úteis;

  • redução de duplicidade;

  • revisão periódica;

  • transferência de conhecimento.

Evite comentários como:

* MOVE O VALOR PARA WS-VALOR
MOVE VALOR-ENTRADA TO WS-VALOR.

O comentário apenas repete o código.

Prefira explicar a razão:

* Preserva o valor original porque a rotina de cálculo
* converte o campo para centavos e altera seu conteúdo.
MOVE VALOR-ENTRADA TO WS-VALOR-ORIGINAL.

O código mostra o que acontece.

O comentário deve explicar por quê.


7. Transformando o programa em um sobrevivente

O Sargento Abend pediu a Charlie que corrigisse o programa, mas proibiu uma solução limitada ao registro defeituoso.

A missão era torná-lo melhor.

Passo 1 — Verificar o FILE STATUS

Todo arquivo deveria possuir um campo de status.

SELECT ARQ-ENTRADA
    ASSIGN TO DDENTRA
    ORGANIZATION IS SEQUENTIAL
    FILE STATUS IS WS-FS-ENTRADA.
01 WS-FS-ENTRADA PIC XX VALUE SPACES.

Na abertura:

OPEN INPUT ARQ-ENTRADA

IF WS-FS-ENTRADA NOT = '00'
    DISPLAY 'ERRO OPEN DDENTRA. FILE STATUS: '
            WS-FS-ENTRADA
    MOVE 12 TO RETURN-CODE
    GOBACK
END-IF.

Nunca presuma que o arquivo abriu.

Pergunte ao sistema.

O FILE STATUS é a testemunha silenciosa de cada operação.


Passo 2 — Controlar corretamente o fim do arquivo

PERFORM LER-ENTRADA

PERFORM UNTIL WS-FIM-ARQUIVO = 'S'
    PERFORM PROCESSAR-REGISTRO
    PERFORM LER-ENTRADA
END-PERFORM.
LER-ENTRADA.
    READ ARQ-ENTRADA
        AT END
            MOVE 'S' TO WS-FIM-ARQUIVO
        NOT AT END
            ADD 1 TO WS-LIDOS
    END-READ

    IF WS-FS-ENTRADA NOT = '00'
       AND WS-FS-ENTRADA NOT = '10'
        DISPLAY 'ERRO READ. FILE STATUS: '
                WS-FS-ENTRADA
        MOVE 12 TO RETURN-CODE
        MOVE 'S' TO WS-FIM-ARQUIVO
    END-IF.

O status 10 normalmente indica fim lógico de arquivo em processamento sequencial.

O programa não deve tratar EOF como desastre.

O fim do arquivo não é um inimigo. É o ponto de extração da patrulha.


Passo 3 — Validar antes de calcular

IF CAMPO-VALOR NUMERIC
    MOVE CAMPO-VALOR TO WS-VALOR
    ADD WS-VALOR TO WS-TOTAL
    ADD 1 TO WS-PROCESSADOS
ELSE
    ADD 1 TO WS-REJEITADOS
    PERFORM GRAVAR-REJEITADO
END-IF.

A validação impede que um registro inválido derrube todo o pelotão.

Mas cuidado: NUMERIC precisa ser usado de acordo com a representação real do campo. Dados em formatos compactados, binários ou contendo sinal requerem entendimento do layout e do compilador.

Um bom programador não usa uma condição apenas porque ela parece correta.

Ele verifica como o dado está armazenado.


Passo 4 — Separar rejeição de falha estrutural

Nem todo erro de dado precisa encerrar o batch.

Podemos classificar:

Erro de registro

  • CPF inválido;

  • valor não numérico;

  • data impossível;

  • código desconhecido.

O programa pode rejeitar o registro e continuar, conforme a regra de negócio.

Erro estrutural

  • arquivo ausente;

  • LRECL incompatível;

  • falha de escrita;

  • tabela indisponível;

  • corrupção de dataset;

  • erro de autorização.

Esses casos podem exigir encerramento controlado.

O segredo é não tratar todos os problemas da mesma maneira.


Passo 5 — Criar resumo operacional

Ao terminar:

DISPLAY '--------------------------------'
DISPLAY 'RESUMO DO PROCESSAMENTO'
DISPLAY 'REGISTROS LIDOS       : ' WS-LIDOS
DISPLAY 'REGISTROS PROCESSADOS : ' WS-PROCESSADOS
DISPLAY 'REGISTROS REJEITADOS  : ' WS-REJEITADOS
DISPLAY '--------------------------------'

Isso melhora a observabilidade.

Entretanto, não faça DISPLAY de cada registro em produção sem necessidade. Milhões de mensagens podem inflar o spool, prejudicar performance e criar outro incidente.

A observabilidade deve iluminar.

Não incendiar a floresta.


8. Checkpoint e restart: ninguém deve atravessar a selva duas vezes

Reprocessar milhões de registros pode:

  • ultrapassar a janela;

  • duplicar atualizações;

  • consumir CPU;

  • gerar inconsistência;

  • atrasar sistemas dependentes.

Um mecanismo de checkpoint registra o progresso.

Pode armazenar:

  • número do último registro;

  • última chave;

  • posição lógica;

  • quantidade processada;

  • identificador do ciclo;

  • timestamp;

  • estado do processamento.

Exemplo conceitual:

JOB: PAYBATCH
CICLO: 20260729
ULTIMA-CHAVE: 000184725991
PROCESSADOS: 18000000
STATUS: EM-PROCESSAMENTO

Na retomada, o programa consulta o checkpoint e continua do ponto adequado.

Mas checkpoint exige cuidado.

O ponto salvo deve estar sincronizado com as atualizações realizadas.

Se o programa grava o checkpoint antes do commit, pode pular dados.

Se grava depois, pode reprocessar alguns registros.

Em Db2, a unidade de commit deve ser coerente com o registro de retomada.

Em VSAM e arquivos, talvez seja necessário usar arquivos de controle, marcações ou desenho específico de restart.

Resiliência não nasce de uma palavra.

Nasce de consistência entre:

Dados
Checkpoint
Commit
Saída
Estado

9. O perigo do herói único

Às 04h06, Charlie perguntou:

— Quem conhece a rotina de fechamento?

Responderam:

— O Nogueira.

— Onde ele está?

— Em férias, sem acesso ao celular.

A organização descobriu um ponto único de falha humano.

Sistemas robustos podem ser operados por equipes frágeis.

Isso ocorre quando:

  • só uma pessoa conhece a aplicação;

  • senhas dependem de um administrador;

  • o restart existe apenas na memória de alguém;

  • decisões não são documentadas;

  • não há substituição;

  • não existe treinamento cruzado.

A antifragilidade exige distribuir conhecimento.

Não significa que todos devem conhecer tudo.

Significa que nenhuma função crítica deveria depender exclusivamente da presença de uma pessoa.

O verdadeiro legado não é ser indispensável.

É construir algo que continue funcionando quando você não estiver na sala.


10. Pequenas falhas controladas evitam grandes derrotas

O pelotão decidiu criar exercícios periódicos.

Não esperaria a próxima madrugada crítica para descobrir se a recuperação funcionava.

Foram planejados testes de:

  • ausência de arquivo;

  • registro inválido;

  • dataset cheio;

  • duplicidade de chave;

  • timeout;

  • indisponibilidade de tabela;

  • falha após commit;

  • falha antes do checkpoint;

  • aumento de volume;

  • restart intermediário.

Essa prática se aproxima da engenharia do caos, desde que executada com limites e segurança.

O objetivo não é quebrar produção por diversão.

É criar perturbações controladas em ambientes adequados para descobrir fragilidades antes que o inimigo real as encontre.

Regra do estressor útil

Um estressor só fortalece quando:

  • o impacto é limitado;

  • existe observação;

  • ocorre aprendizado;

  • há tempo para recuperação;

  • ações corretivas são implementadas.

Falhar sem aprender não é antifragilidade.

É apenas desorganização.


11. Redundância: o que o corte de custos não enxerga

Um gerente pode olhar para dois caminhos de rede e perguntar:

— Por que pagamos por dois se usamos apenas um?

Pode olhar para dois especialistas e dizer:

— Por que duas pessoas conhecem o mesmo processo?

Pode olhar para capacidade ociosa e concluir:

— Estamos desperdiçando recursos.

Até o dia em que o caminho principal cai, o especialista adoece ou o volume dobra.

Redundância parece desperdício durante a normalidade.

Durante a crise, torna-se sobrevivência.

No mainframe, exemplos incluem:

  • múltiplas LPARs;

  • Parallel Sysplex;

  • caminhos redundantes;

  • replicação;

  • GDPS;

  • clusters MQ;

  • CICSplex;

  • cópias de segurança;

  • armazenamento espelhado;

  • profissionais treinados em mais de uma função.

Contudo, redundância precisa ser testada.

Um backup que nunca foi restaurado é apenas uma esperança armazenada.

Um site alternativo que nunca assumiu carga é apenas uma apresentação de PowerPoint.

Uma pessoa indicada como substituta, mas sem acesso nem treinamento, não é redundância.

É decoração organizacional.


12. O mainframe já é antifrágil?

Aqui existe uma curiosidade importante.

O IBM Z é reconhecido por recursos de disponibilidade, recuperação, particionamento, integridade e continuidade.

Mas isso não significa que qualquer aplicação executada nele seja automaticamente antifrágil.

Uma aplicação COBOL ruim continua ruim em um hardware excelente.

O mainframe pode oferecer:

  • isolamento;

  • logs;

  • segurança;

  • recuperação;

  • alta disponibilidade;

  • gerenciamento de workload;

  • consistência transacional.

Mas a aplicação ainda precisa utilizar esses recursos corretamente.

Um programa que ignora FILE STATUS, não verifica SQLCODE, não trata RESP do CICS e não possui restart pode transformar uma plataforma robusta em uma operação frágil.

A tecnologia oferece a fortaleza.

O código decide se a porta ficará aberta.


13. Easter egg: o soldado chamado RETURN-CODE

No fim de cada missão batch existe um pequeno mensageiro.

Ele se chama:

RETURN-CODE

Muitos iniciantes o tratam como detalhe.

Mas ele comunica ao JCL se a missão terminou com sucesso.

MOVE 0 TO RETURN-CODE.
MOVE 4 TO RETURN-CODE.
MOVE 8 TO RETURN-CODE.
MOVE 12 TO RETURN-CODE.

A interpretação exata depende dos padrões da organização, mas uma convenção comum é:

00 – Sucesso
04 – Alerta ou ocorrência não fatal
08 – Erro funcional
12 – Erro grave
16 – Falha crítica

O JCL pode decidir o próximo passo:

// IF (STEP01.RC = 0) THEN
//STEP02 EXEC PGM=PROXIMO
// ELSE
//ERRO   EXEC PGM=TRATAERR
// ENDIF

Esse é o easter egg: o humilde RETURN-CODE é o rádio pelo qual o programa COBOL informa ao comandante do batch se a unidade pode avançar.

Sem essa comunicação, o JCL pode continuar executando steps sobre dados incompletos.


14. A diferença entre sobreviver e aprender

Às 05h31, o programa corrigido começou a rodar.

O registro inválido foi separado.

O processamento continuou.

O resumo operacional mostrou:

REGISTROS LIDOS       : 24.813.407
REGISTROS PROCESSADOS : 24.813.406
REGISTROS REJEITADOS  : 1
RETURN-CODE            : 4

O job terminou.

Mas a missão ainda não.

Na manhã seguinte, a equipe realizou uma análise do incidente.

Não perguntou apenas:

— Quem colocou a letra no campo?

Perguntou:

  • Por que o dado inválido atravessou as validações anteriores?

  • Por que um registro derrubou o arquivo inteiro?

  • Por que não havia checkpoint?

  • Por que o aumento de volume não foi comunicado?

  • Por que os alertas não anteciparam o atraso?

  • Por que apenas uma pessoa conhecia o restart?

  • Que outros programas possuem o mesmo risco?

Essa mudança de perguntas separa uma cultura de culpa de uma cultura de aprendizado.

Encontrar um culpado pode encerrar uma reunião.

Encontrar a fragilidade pode evitar cem novos incidentes.


15. Manual de campo para o programador COBOL iniciante

Antes de considerar um programa pronto para atravessar a selva de produção, verifique:

Arquivos

  • todos possuem FILE STATUS;

  • OPEN, READ, WRITE, REWRITE e CLOSE são verificados;

  • EOF é tratado;

  • registros inválidos não provocam comportamento indefinido;

  • arquivos de saída possuem controle de criação;

  • layouts e LRECL estão documentados.

Dados

  • campos numéricos são validados;

  • tamanhos suportam crescimento razoável;

  • sinais e casas decimais estão corretos;

  • datas possuem validação;

  • valores-limite são testados;

  • conversões não provocam truncamento.

Processamento

  • loops possuem condição clara de término;

  • contadores não estouram;

  • divisões verificam zero;

  • erros são classificados;

  • mensagens permitem diagnosticar o problema;

  • dados sensíveis não aparecem no spool.

Recuperação

  • o job pode ser reiniciado;

  • o restart não duplica atualizações;

  • checkpoints são coerentes;

  • arquivos intermediários possuem política definida;

  • steps são idempotentes quando possível.

Idempotência significa que repetir uma operação produz o mesmo resultado final, sem duplicar efeitos indevidos.

Banco de dados

  • SQLCODE é verificado;

  • commits são dimensionados;

  • rollback é compreendido;

  • cursores são fechados;

  • deadlocks e timeouts possuem tratamento;

  • mensagens incluem contexto suficiente.

CICS

  • RESP ou condições são tratadas;

  • COMMAREA possui tamanho validado;

  • LINK e XCTL são usados conscientemente;

  • recursos são liberados;

  • ENQ possui DEQ correspondente;

  • transações longas são evitadas;

  • unidades de trabalho são bem definidas.

Operação

  • o programa define RETURN-CODE;

  • existe documentação de execução;

  • o runbook de falha é testado;

  • outra pessoa consegue operar;

  • métricas permitem observar tendência;

  • volume esperado e limite conhecido estão registrados.


16. A lição final do pelotão

O sol começava a aparecer atrás das paredes do datacenter quando Charlie saiu da sala.

Ele havia entrado naquela madrugada pensando que programar COBOL significava escrever comandos corretos.

Saiu entendendo que o verdadeiro trabalho era construir sistemas capazes de viver em um mundo que não respeita nossas expectativas.

Um programa não é antifrágil porque nunca falha.

Ele se aproxima da antifragilidade quando:

  • falhas pequenas revelam fraquezas;

  • o impacto é contido;

  • o serviço consegue voltar;

  • o incidente produz conhecimento;

  • o conhecimento altera código e processo;

  • a próxima perturbação encontra uma defesa melhor.

VUCA ensina que o ambiente é volátil, incerto, complexo e ambíguo.

BANI lembra que sistemas podem ser frágeis, pessoas podem estar ansiosas, efeitos podem ser não lineares e acontecimentos podem tornar-se incompreensíveis.

O Cisne Negro avisa que alguns eventos só parecerão óbvios depois que já tiverem acontecido.

A resiliência ensina a retornar.

A antifragilidade exige algo maior:

voltar diferente.

Charlie olhou pela última vez para o monitor.

O PAYBATCH estava com status OUTPUT.

Return code 4.

Um registro rejeitado.

Milhões processados.

Nenhuma duplicidade.

Nenhuma perda.

No spool, a última mensagem do programa dizia:

PROCESSAMENTO CONCLUÍDO COM ALERTA.
VERIFICAR ARQUIVO DE REJEITADOS.

O Sargento Abend apareceu atrás dele com uma xícara de café.

— Terminou?

Charlie respondeu:

— O job terminou. O aprendizado está apenas começando.

O veterano sorriu.

Porque essa era a verdade que todo profissional de mainframe descobre, cedo ou tarde:

O sistema frágil teme a madrugada.

O sistema robusto suporta a madrugada.

O sistema resiliente sobrevive à madrugada.

Mas o sistema antifrágil usa cada madrugada
para estar mais preparado quando a próxima chegar.

E, enquanto o resto da cidade acordava sem saber que estivera a poucos minutos de um fechamento atrasado, o pelotão z/OS recolhia seus dumps, atualizava seus runbooks e preparava a próxima versão.

Na guerra silenciosa do processamento corporativo, não havia medalhas.

Havia apenas o extrato correto pela manhã.

E, às vezes, isso precisava ser suficiente.

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