☕ 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

sexta-feira, 1 de fevereiro de 2002

🌑 CID KAGENOU E A CAIXA-PRETA DOS AUTÔMATOS — QUANDO O COBOL DESCOBRIU QUE TAMBÉM ERA UMA MÁQUINA DE ESTADOS

 

Bellacosa Mainframe e a caixa preta do automatos

☕ Um Café no Bellacosa Mainframe

🌑 CID KAGENOU E A CAIXA-PRETA DOS AUTÔMATOS — QUANDO O COBOL DESCOBRIU QUE TAMBÉM ERA UMA MÁQUINA DE ESTADOS

Autômatos finitos, máquinas de estados, linguagens regulares, regex, engenharia reversa, CPU, COBOL, testes, protocolos, segurança — e o dia em que Shadow descobriu que não precisava abrir a caixa-preta para descobrir o segredo escondido dentro dela.



🎬 PRÓLOGO — HÁ ALGUMA COISA ESCONDIDA NESSA CAIXA

Imagine Cid Kagenou entrando em uma dungeon.

Nenhum monstro.

Nenhum artefato mágico.

Nenhuma princesa sequestrada.

Alpha olha desconfiada para o centro da sala.

Ali existe apenas uma pequena caixa preta.

Na frente dela:

  • um terminal de entrada;

  • uma pequena lâmpada;

  • um botão escrito RESET.

Beta examina o equipamento.

— Shadow-sama, devemos desmontá-lo?

Cid cruza os braços.

— Não.

Silêncio dramático.

Naturalmente, todos imaginam que Shadow descobriu algum segredo ancestral.

Na realidade, ele simplesmente não sabe como abrir a caixa.

Mas, como frequentemente acontece em The Eminence in Shadow, uma frase improvisada acaba contendo uma ideia surpreendentemente profunda:

Não precisamos conhecer o interior de uma máquina para estudar seu comportamento.

E é justamente assim que começa nossa excursão pela Teoria dos Autômatos.

Pegue seu café.

Aperte o cinto.

Nosso ônibus vai balançar um pouco.



🚌 CAPÍTULO 1 — O ÔNIBUS DE TURING CHEGA À DUNGEON

A inspiração desta viagem vem de A. K. Dewdney, autor de The Turing Omnibus, livro concebido como uma série de excursões por diferentes territórios da Ciência da Computação.

A metáfora é maravilhosa.

Em vez de imaginar Ciência da Computação como um gigantesco manual técnico, imagine um ônibus.

Em cada parada visitamos alguma região:

AUTÔMATOS
     ↓
LINGUAGENS FORMAIS
     ↓
ALGORITMOS
     ↓
LÓGICA
     ↓
COMPLEXIDADE
     ↓
COMPUTABILIDADE
     ↓
INTELIGÊNCIA ARTIFICIAL
     ↓
...

Na primeira excursão encontramos justamente uma criatura aparentemente humilde:

o autômato finito.

Não deixe o nome assustar.

Vamos desmontar o conceito — sem desmontar nossa caixa.



📦 CAPÍTULO 2 — SHADOW ENCONTRA UMA CAIXA-PRETA

Nossa máquina possui uma entrada capaz de receber dois sinais:

0
1

Também possui uma lâmpada.

Quando determinada sequência é fornecida, a lâmpada eventualmente acende.

Podemos representar a máquina assim:

             ┌──────────────────────┐
0 ou 1 ─────►│                      │
             │      CAIXA-PRETA     │────► 💡
RESET ──────►│                      │
             └──────────────────────┘

Não sabemos o que existe dentro.

Pode haver:

transistores
circuitos
flip-flops
microcontrolador
relés
magia negra
um COBOL de 1978

Para nossa análise, isso não importa.

Estamos interessados em:

ENTRADA → COMPORTAMENTO → SAÍDA

Essa é uma abstração extremamente importante na computação.

Um programa COBOL pode executar:

CALL 'PAGTO001'

Você não precisa necessariamente conhecer cada instrução existente em PAGTO001 para utilizar sua interface corretamente.

Da mesma maneira, quando consumimos uma API:

POST /pagamento

podemos trabalhar com o contrato da API sem conhecer toda sua implementação.

A primeira lição da dungeon é, portanto:

Implementação e comportamento são coisas diferentes.



🧪 CAPÍTULO 3 — ALPHA COMEÇA OS EXPERIMENTOS

Vamos alimentar nossa máquina.

Depois de pressionar RESET:

0

Nada.

1

Nada.

0

Nada.

1

💡

A lâmpada acendeu.

Descobrimos:

0101

parece ser uma sequência aceita.

Alpha repete imediatamente:

0101

Nada.

Beta começa a escrever um relatório de 847 páginas explicando que provavelmente se trata de um artefato demoníaco.

Até alguém lembrar:

RESET.

Pressionamos RESET.

Executamos novamente:

0101

💡

Funciona.

Isso revela uma informação gigantesca.

A máquina lembra alguma coisa do que aconteceu anteriormente.



🧠 CAPÍTULO 4 — O SEGREDO CHAMA-SE ESTADO

Se a saída dependesse somente do último símbolo recebido, bastaria analisar:

entrada atual

Mas nossa experiência demonstra que o comportamento depende também da história anterior.

Existe alguma espécie de memória.

Na teoria dos autômatos chamamos essa informação de:

ESTADO

Estado não significa necessariamente uma variável armazenada em RAM.

Uma definição muito melhor seria:

Estado é a informação relevante sobre o passado necessária para decidir o comportamento futuro.

Essa frase vale ouro.

Imagine uma porta eletrônica.

Ela poderia possuir:

LOCKED
UNLOCKED

Quando recebe:

CARD_VALID

pode fazer:

LOCKED → UNLOCKED

Quando alguém abre a porta:

UNLOCKED → LOCKED

Não precisamos registrar toda a biografia da pessoa:

acordou às 07:00
tomou café
pegou o carro
chegou ao escritório
tirou o cartão do bolso
...

Nada disso interessa à porta.

A informação relevante é:

LOCKED

ou:

UNLOCKED

O estado é, portanto, uma espécie de compressão do passado.


🌑 CAPÍTULO 5 — SHADOW GARDEN DESCOBRE A MÁQUINA DE ESTADOS

Imagine uma catraca.

Estados:

Q0 = LOCKED
Q1 = UNLOCKED

Entradas:

COIN
PUSH

Podemos definir:

LOCKED + COIN → UNLOCKED
LOCKED + PUSH → LOCKED

UNLOCKED + PUSH → LOCKED
UNLOCKED + COIN → UNLOCKED

Isso pode ser colocado numa tabela:

Estado atualEntradaNovo estado
LOCKEDCOINUNLOCKED
LOCKEDPUSHLOCKED
UNLOCKEDPUSHLOCKED
UNLOCKEDCOINUNLOCKED

Temos uma máquina de estados.

E provavelmente você já programou alguma sem saber.


🧙 CAPÍTULO 6 — A DEFINIÇÃO MATEMÁTICA

Um autômato finito determinístico costuma ser definido pela quíntupla:

M = (Q, Σ, δ, q0, F)

Calma.

Não invoque ainda o compilador COBOL.

Vamos traduzir.

Q — conjunto de estados

Por exemplo:

Q = {q0,q1,q2,q3,q4,q5}

Σ — alfabeto

São os símbolos aceitos como entrada.

No nosso exemplo:

Σ = {0,1}

δ — função de transição

A famosa letra grega delta determina:

estado atual + entrada → próximo estado

Formalmente:

δ : Q × Σ → Q

Por exemplo:

δ(q3,0)=q5
δ(q3,1)=q4

q0 — estado inicial

É onde começamos depois do RESET.

F — estados finais

São os estados considerados de aceitação.

Quando terminamos de processar a entrada em algum deles:

💡

A sequência foi aceita.


💾 CAPÍTULO 7 — DELTA DESCOBRE QUE DELTA NÃO É APENAS UMA PERSONAGEM

Imagine a surpresa da própria Delta ao descobrir que existe uma função matemática chamada δ.

Se estivermos em:

q3

e recebermos:

1

podemos ter:

δ(q3,1)=q4

Isso significa simplesmente:

ESTADO ATUAL = Q3
ENTRADA = 1
NOVO ESTADO = Q4

Não existe mistério.

Na prática, poderíamos implementar isso em COBOL.


💻 CAPÍTULO 8 — O AUTÔMATO ENTRA NO COBOL

Considere:

01 WS-STATE       PIC X(02).
01 WS-INPUT       PIC X.

MOVE 'Q0' TO WS-STATE.

EVALUATE TRUE

   WHEN WS-STATE = 'Q0'
        AND WS-INPUT = '0'
        MOVE 'Q1' TO WS-STATE

   WHEN WS-STATE = 'Q0'
        AND WS-INPUT = '1'
        MOVE 'Q0' TO WS-STATE

   WHEN WS-STATE = 'Q1'
        AND WS-INPUT = '0'
        MOVE 'Q1' TO WS-STATE

   WHEN WS-STATE = 'Q1'
        AND WS-INPUT = '1'
        MOVE 'Q2' TO WS-STATE

END-EVALUATE.

Parabéns.

Acabamos de implementar parte de um autômato finito.

Uma implementação mais organizada poderia separar:

READ-INPUT
PROCESS-TRANSITION
CHECK-FINAL-STATE

Observe como conceitos aparentemente matemáticos começam a aparecer naturalmente no COBOL.


🔄 CAPÍTULO 9 — O RESET É O INITIALIZE DA DUNGEON

O botão RESET possui uma importância enorme.

Ele coloca a máquina novamente em:

q0

Imagine testar:

0101

e depois:

0100101

sem RESET.

O segundo teste não começa realmente do zero.

A máquina pode estar carregando o estado produzido pelo primeiro.

Na prática estamos testando algo parecido com:

01010100101

Isso possui uma conexão direta com testes de software.

Um teste confiável deve começar de condições conhecidas.

Algo como:

GIVEN estado conhecido
WHEN evento acontece
THEN resultado esperado

Em COBOL isso poderia significar:

INITIALIZE WS-AREA
MOVE ZERO TO WS-COUNTER
MOVE '00' TO WS-STATUS

Estado residual é uma fonte clássica de bugs.


🔬 CAPÍTULO 10 — SHADOW COMEÇA A ENGENHARIA REVERSA

Executamos vários experimentos.

Descobrimos que a caixa aceita:

0101
0100101
0100100101
0100100100101

Vamos reorganizar:

01             01
01 001         01
01 001 001     01
01 001 001 001 01

Há claramente um padrão:

01 (001)* 01

O símbolo:

*

é chamado estrela de Kleene.

Significa:

zero ou mais repetições.

Portanto:

(001)*

pode produzir:

ε
001
001001
001001001
001001001001
...

ε representa a palavra vazia.

Consequentemente:

01(001)*01

produz:

0101
0100101
0100100101
0100100100101
...

Acabamos de entrar no território das linguagens regulares.


📜 CAPÍTULO 11 — REGEX NÃO NASCEU PARA VALIDAR E-MAIL

Quando alguém fala em expressão regular, muitos programadores imediatamente pensam:

^[0-9]{5}-[0-9]{3}$

CEP.

Ou alguma criatura monstruosa utilizada para validar endereço de e-mail.

Mas existe uma teoria matemática muito mais profunda por trás disso.

A relação fundamental é:

┌─────────────────────┐
│ EXPRESSÃO REGULAR   │
└──────────┬──────────┘
           │
           ⇅
┌─────────────────────┐
│ AUTÔMATO FINITO     │
└──────────┬──────────┘
           │
           ⇅
┌─────────────────────┐
│ LINGUAGEM REGULAR   │
└─────────────────────┘

Essas são diferentes maneiras de descrever a mesma classe fundamental de linguagens.

Uma regex pode ser transformada em um autômato.

Um autômato pode ser utilizado para reconhecer uma linguagem regular.

Essa relação aparece na implementação de scanners, parsers simples, ferramentas de busca e compiladores.


⚠️ CAPÍTULO 12 — CID PERCEBE O PROBLEMA DA INDUÇÃO

Agora surge uma questão maravilhosa.

Testamos:

0101
0100101
0100100101
0100100100101

Todas funcionaram.

Podemos afirmar que:

01(001)*01

é realmente a linguagem completa da máquina?

Não.

Talvez a máquina aceite apenas:

n <= 4

Talvez rejeite a quinta repetição.

Ou a número 847.

Ou talvez exista algum comportamento especial depois de 65.535 símbolos.

Experimentar alguns casos não demonstra automaticamente uma regra infinita.

Esse é um princípio extremamente importante também para testes.


🧪 CAPÍTULO 13 — “FUNCIONOU NO MEU TESTE”

O programador executa:

100 → OK
200 → OK
300 → OK
400 → OK

e declara:

— Funciona.

Shadow aparece atrás dele.

— Você testou 32767?

Silêncio.

— E 32768?

Mais silêncio.

— 99999999?

O programador começa a suar.

Testes demonstram comportamento para os casos efetivamente observados.

Não provam automaticamente comportamento universal.

É exatamente o problema encontrado na caixa-preta.


🕵️ CAPÍTULO 14 — MAS E SE SOUBERMOS QUANTOS ESTADOS EXISTEM?

Agora alguém nos fornece uma informação adicional:

A máquina possui seis estados.

Isso muda profundamente o problema.

Imagine:

q0
q1
q2
q3
q4
q5

Depois de transições suficientes, algum estado inevitavelmente precisará reaparecer.

Por quê?

Porque só existem seis possibilidades.

Se continuarmos andando:

q0 → q1 → q2 → q3 → q4 → q5 → ?

o próximo estado necessariamente será algum estado já existente.

Surge então um ciclo:

        ┌──────────────┐
        ↓              │
q2 → q3 → q4 → q5 ────┘

E ciclos explicam repetições.

Como:

(001)*

Aqui começamos a enxergar a intuição que posteriormente aparece em resultados como o Pumping Lemma.


🏰 CAPÍTULO 15 — EXISTEM MONSTROS QUE O AUTÔMATO NÃO CONSEGUE DERROTAR

Considere:

ab
aabb
aaabbb
aaaabbbb

A regra é:

aⁿbⁿ

Precisamos garantir:

quantidade de a = quantidade de b

Agora imagine:

aaaaaaaaaaaaaaaa....

Para saber quantos b deverão aparecer posteriormente, precisamos lembrar quantos a foram encontrados.

Mas nosso autômato possui memória finita.

Se existem apenas:

q0 q1 q2 q3 q4 q5

como representar:

1
2
3
4
...
1.000.000

quantidades diferentes?

Não consegue.

Encontramos uma fronteira computacional.


🪜 CAPÍTULO 16 — A ESCADA DAS MÁQUINAS

Quando precisamos de memória adicional, utilizamos modelos mais poderosos.

De forma simplificada:

AUTÔMATO FINITO
       ↓
AUTÔMATO COM PILHA
       ↓
MODELOS MAIS PODEROSOS
       ↓
MÁQUINA DE TURING

O autômato com pilha pode trabalhar com estruturas como:

((()))

Cada abertura:

(

pode empilhar alguma informação.

Cada fechamento:

)

remove algo da pilha.

Isso permite reconhecer estruturas que um simples autômato finito não consegue reconhecer.

E estamos nos aproximando da Hierarquia de Chomsky e da teoria das linguagens formais.

A pequena lâmpada começou a ficar perigosamente interessante.


🖥️ CAPÍTULO 17 — ESTÁVAMOS ESTUDANDO UMA CPU?

Existe uma bela provocação no texto original adaptado:

estivemos estudando o funcionamento de uma CPU simples.

Precisamos colocar uma pequena ressalva técnica.

Uma CPU moderna não é simplesmente aquele pequeno DFA.

Entretanto, componentes de hardware e circuitos sequenciais podem ser modelados por máquinas de estados.

Imagine:

FETCH
  ↓
DECODE
  ↓
EXECUTE
  ↓
MEMORY
  ↓
WRITEBACK
  ↓
FETCH

O processador possui estados internos.

Sinais e resultados influenciam as próximas transições.

Assim, a teoria dos autômatos possui ligação genuína com projeto de hardware.


🏧 CAPÍTULO 18 — VOCÊ ESTÁ CERCADO POR MÁQUINAS DE ESTADOS

Olhe ao redor.

Um elevador:

STOPPED
MOVING_UP
MOVING_DOWN
DOOR_OPEN
DOOR_CLOSING

Um caixa eletrônico:

IDLE
 ↓
CARD_INSERTED
 ↓
PIN_VALIDATED
 ↓
AUTHENTICATED
 ↓
TRANSACTION
 ↓
EJECT_CARD

Uma aplicação:

LOGGED_OUT
 ↓
AUTHENTICATING
 ↓
LOGGED_IN
 ↓
SESSION_EXPIRED

Um pedido:

CREATED
 ↓
PAID
 ↓
PROCESSING
 ↓
SHIPPED
 ↓
DELIVERED

Até muitos protocolos de rede podem ser entendidos como máquinas de estados.


💳 CAPÍTULO 19 — O AUTÔMATO ENTRA NO MAINFRAME

Agora imagine processamento de cartões.

Uma transação poderia atravessar:

RECEIVED
    ↓
VALIDATED
    ↓
AUTHORIZED
    ↓
CAPTURED
    ↓
SETTLED

Ou:

RECEIVED
    ↓
VALIDATED
    ↓
DECLINED

Isso poderia estar espalhado por:

COBOL
CICS
Db2
VSAM
IBM MQ
batch
APIs

Mas conceitualmente temos uma máquina de estados.

Um programa poderia fazer:

EVALUATE WS-STATUS

   WHEN 'RECEIVED'
        PERFORM 2000-VALIDATE

   WHEN 'VALIDATED'
        PERFORM 3000-AUTHORIZE

   WHEN 'AUTHORIZED'
        PERFORM 4000-CAPTURE

   WHEN 'CAPTURED'
        PERFORM 5000-SETTLEMENT

END-EVALUATE.

O programador COBOL está implementando teoria dos autômatos sem necessariamente perceber.


⚔️ CAPÍTULO 20 — A TRANSIÇÃO PROIBIDA

Aqui aparece uma aplicação extremamente útil para manutenção de sistemas legados.

A documentação diz:

CREATED → PAID → SHIPPED

Mas encontramos:

CREATED → SHIPPED

Pergunta:

essa transição é válida?

Talvez tenhamos encontrado o bug.

Em vez de olhar apenas para milhares de linhas COBOL, podemos tentar descobrir:

ESTADOS
EVENTOS
TRANSIÇÕES
ESTADOS FINAIS

Um programa de 12.000 linhas talvez possa ser resumido como:

14 estados
43 transições
11 eventos
5 estados finais

Isso é ouro para engenharia reversa.


🔥 CAPÍTULO 21 — WAR ROOM ÀS 03:17

03:17.

Naturalmente.

O telefone toca.

Produção caiu.

No log:

03:17:00 RECEIVED
03:17:01 VALIDATED
03:17:02 AUTHORIZED
03:17:03 CAPTURED
03:17:04 ERROR

O programador procura:

IF
EVALUATE
GO TO
PERFORM

O DBA examina Db2.

O especialista CICS olha dumps.

O pessoal de infraestrutura examina CPU.

Shadow permanece no fundo da sala.

Até fazer uma pergunta:

CAPTURED → ERROR é uma transição permitida?

Silêncio.

Talvez o problema não esteja em uma instrução individual.

Talvez exista uma transição de negócio impossível.

E aí está nosso easter egg das 03:17.


🛡️ CAPÍTULO 22 — O AUTÔMATO VIRA RED TEAM

Máquinas de estados também ajudam a pensar segurança.

Imagine:

DISCONNECTED
     ↓ LOGIN
AUTHENTICATING
     ↓ SUCCESS
AUTHENTICATED

Mas alguém descobre:

DISCONNECTED
     ↓ EVENTO-X
ADMIN

Isso é interessantíssimo.

O atacante encontrou uma transição que não deveria existir.

Problemas semelhantes aparecem em:

protocolos
autenticação
workflows
APIs
sistemas distribuídos
model-based testing
fuzzing
engenharia reversa

Uma excelente estratégia de segurança é perguntar:

Quais estados existem e quais transições deveriam ser impossíveis?


🤖 CAPÍTULO 23 — A CAIXA-PRETA ENCONTRA A INTELIGÊNCIA ARTIFICIAL

Existe ainda uma conexão conceitual com IA.

Nosso experimento faz:

ENTRADAS
   ↓
OBSERVAÇÕES
   ↓
HIPÓTESE
   ↓
MODELO

Em aprendizado de máquina fazemos, em sentido muito amplo:

DADOS
   ↓
PADRÕES
   ↓
MODELO

Naturalmente um LLM moderno não deve ser confundido com o pequeno autômato da nossa dungeon.

Mas existe uma pergunta epistemológica comum:

Quanto podemos descobrir sobre um sistema observando somente seu comportamento externo?

Essa questão reaparece quando trabalhamos com sistemas proprietários, serviços remotos e modelos aos quais não temos acesso interno.

A caixa-preta continua conosco.


🔧 CAPÍTULO 24 — COMO USAR ESSA IDEIA NUM COBOL LEGADO

Agora uma dica extremamente prática.

Você recebe um programa desconhecido.

Não comece tentando entender todas as linhas simultaneamente.

PASSO 1 — descubra as entradas

Procure:

arquivos
COMMAREA
MQ
parâmetros
Db2
VSAM
SYSIN

PASSO 2 — identifique os estados

Procure campos como:

STATUS
STATE
SITUATION
TYPE
PHASE
STAGE
FLAG

PASSO 3 — encontre onde mudam

Pesquise:

MOVE 'XX' TO WS-STATUS

ou:

SET STATUS-APPROVED TO TRUE

PASSO 4 — construa uma tabela

Por exemplo:

EstadoEventoPróximo estado
RECEIVEDVALIDVALIDATED
RECEIVEDINVALIDREJECTED
VALIDATEDAPPROVEAUTHORIZED
VALIDATEDDENYDECLINED

PASSO 5 — desenhe o diagrama

Você pode descobrir uma arquitetura lógica que ninguém documentou.

PASSO 6 — procure transições impossíveis

Pergunte:

REJECTED → SETTLED ?
CANCELLED → AUTHORIZED ?
SHIPPED → CREATED ?

Esses caminhos merecem investigação.


🧠 CAPÍTULO 25 — O VERDADEIRO PODER DA ABSTRAÇÃO

Observe tudo que removemos da caixa:

voltagem
resistores
transistores
temperatura
fiação
material
clock
fabricante

E preservamos:

Q
Σ
δ
q0
F

Esse processo chama-se abstração.

Não estamos dizendo que detalhes físicos não existem.

Estamos dizendo:

para responder determinada pergunta, eles não são necessários.

Isso aparece em toda a computação.

Quando trabalhamos com COBOL:

arquivo lógico

podemos não precisar conhecer imediatamente a geometria física do disco.

Quando usamos Db2:

SELECT ...

não precisamos controlar manualmente cada bloco armazenado.

Quando utilizamos MQ:

PUT
GET

trabalhamos sobre uma abstração.

Camadas de abstração são uma das razões pelas quais conseguimos construir sistemas gigantescos.


☕ EPÍLOGO — SHADOW DESCOBRE O QUE SIGNIFICA COMPUTAR

Nossa excursão começou com:

0
1
RESET
💡

Parecia quase infantil.

Mas então descobrimos:

caixa-preta
     ↓
estado
     ↓
transição
     ↓
autômato
     ↓
linguagem
     ↓
expressão regular
     ↓
limites de memória
     ↓
linguagens formais
     ↓
computabilidade

Essa é a beleza da Ciência da Computação.

COBOL é importante.

Python é importante.

Java é importante.

Assembler é importante.

Mas existe um universo abaixo das linguagens:

LÓGICA
AUTÔMATOS
ALGORITMOS
LINGUAGENS FORMAIS
COMPLEXIDADE
COMPUTABILIDADE
INFORMAÇÃO

Um programador pode passar décadas escrevendo programas sem visitar profundamente esse território.

Mas quando começa a estudá-lo, algo muda.

Ele deixa de enxergar apenas:

IF
MOVE
PERFORM
EVALUATE

e começa a enxergar:

ESTADOS
TRANSIÇÕES
LINGUAGENS
MODELOS
INVARIANTES
LIMITES

E isso muda inclusive a maneira de investigar um COBOL legado.

Aquele monstro de 15.000 linhas talvez não seja simplesmente um amontoado de PERFORM, IF, copybooks e tabelas Db2.

Talvez escondido lá dentro exista algo muito mais elegante:

             ┌─────────────┐
             │  RECEIVED   │
             └──────┬──────┘
                    ↓
             ┌─────────────┐
             │  VALIDATED  │
             └──────┬──────┘
                ┌───┴───┐
                ↓       ↓
          AUTHORIZED  DECLINED
                ↓
            CAPTURED
                ↓
             SETTLED

Uma máquina de estados.

Uma descendente conceitual daquela pequena caixa-preta.

E talvez essa seja a grande lição deixada pela primeira parada do ônibus de Dewdney.

Não precisamos começar abrindo a máquina.

Primeiro podemos observar.

Experimentar.

Modelar.

Formular hipóteses.

Descobrir estados.

Mapear transições.

Procurar ciclos.

Encontrar exceções.

E somente depois descer às entranhas da implementação.

Alpha observa o diagrama.

Beta termina o volume 37 de As Crônicas Secretas da Máquina de Estados de Shadow-sama.

Delta continua indignada porque roubaram seu nome para uma função matemática.

Cid olha para a caixa-preta.

A lâmpada acende.

0100100101

Ele sorri.

— Exatamente como eu havia previsto.

Não havia previsto coisa nenhuma.

Mas desta vez estava correto.

☕ Um Café no Bellacosa Mainframe

Porque algumas vezes compreender 15.000 linhas de COBOL começa desenhando seis círculos e algumas flechas em um pedaço de papel.

quarta-feira, 2 de janeiro de 2002

🏯 Quando o programador COBOL descobriu que TI não serve apenas para executar a estratégia — ela também pode mudar o futuro da empresa

 


☕ Um Café no Bellacosa Mainframe

🏯 A KUZUNOHA COMPANY E A DUNGEON DO PLANEJAMENTO ESTRATÉGICO

Quando o programador COBOL descobriu que TI não serve apenas para executar a estratégia — ela também pode mudar o futuro da empresa

Matriz BCG, Cachorros, Vacas Leiteiras, Estrelas, Pontos de Interrogação, estratégia da informação, arquitetura, sistemas legados, mainframe, COBOL, CICS, APIs, dados, inovação — e o dia em que Makoto Misumi descobriu que administrar a Kuzunoha Company era muito mais complicado do que derrotar monstros.



🎬 PRÓLOGO — MAKOTO ABRE UMA EMPRESA

Imagine nosso jovem programador COBOL atravessando mais um portal.

Depois de enfrentar JCL, arquivos VSAM, transações CICS, Db2, APIs e aquele inevitável SOC7 das 03:17 da madrugada, ele aparece em outro mundo.

À sua frente está Makoto Misumi.

Ao lado dele, Tomoe observa tudo com aquele sorriso de quem provavelmente já sabe que alguma coisa vai dar errado.

Mio pergunta se aquilo é comestível.

Shiki está examinando uma pilha de relatórios.

E atrás deles existe uma placa:

KUZUNOHA COMPANY

Makoto olha para nosso programador e pergunta:

— Você entende de planejamento estratégico?

O COBOLzeiro responde:

— Sei fazer PERFORM UNTIL.

Makoto pensa alguns segundos.

— Serve.

Bem-vindo ao estranho mundo do Planejamento Estratégico de Tecnologia da Informação.

E nossa primeira descoberta será importante:

Programar corretamente aquilo que a empresa não deveria estar fazendo continua sendo desperdício.



🏪 CAPÍTULO 1 — A KUZUNOHA COMPANY TEM UM PROBLEMA

Quando pensamos em informática, normalmente começamos pela tecnologia.

COBOL.

Java.

Python.

Banco de dados.

Cloud.

Mainframe.

APIs.

Mas uma empresa não compra tecnologia simplesmente porque tecnologia existe.

Pelo menos não deveria.

Uma empresa possui objetivos.

Quer vender.

Reduzir custos.

Ganhar clientes.

Entrar em mercados.

Criar produtos.

Evitar concorrentes.

Aumentar produtividade.

Reduzir riscos.

E a tecnologia deve participar dessas decisões.

Imagine que a Kuzunoha Company tenha quatro produtos:

Poções tradicionais
Armas mágicas
Cristais de comunicação
Pergaminhos experimentais de teletransporte

Makoto dispõe de apenas 10.000 moedas para investir.

Onde colocar o dinheiro?

Dividir igualmente parece democrático:

2.500 → Poções
2.500 → Armas
2.500 → Cristais
2.500 → Teletransporte

Mas talvez seja uma decisão terrível.

Um produto pode estar morrendo.

Outro pode gerar praticamente todo o lucro.

Outro está crescendo violentamente.

E outro talvez seja a próxima revolução comercial — ou um completo fracasso.

Precisamos conhecer nosso portfólio.

É aqui que surge nossa primeira ferramenta.



🐄 CAPÍTULO 2 — MAKOTO ENCONTRA QUATRO CRIATURAS ESTRANHAS

A clássica Matriz BCG, associada ao Boston Consulting Group, tornou-se uma das ferramentas mais conhecidas para análise de portfólio.

Ela utiliza duas grandes dimensões:

                 CRESCIMENTO DO MERCADO
                         ALTO
                          ▲
                          │
             ❓           │          ⭐
       INTERROGAÇÃO       │       ESTRELA
                          │
──────────────────────────┼────────────────────►
                          │
             🐕           │          🐄
         CACHORRO         │    VACA LEITEIRA
                          │
                        BAIXO

          BAIXA ← PARTICIPAÇÃO → ALTA

Os nomes parecem saídos de um anime estranho.

Mas existe lógica por trás deles.

Temos:

🐕 Cachorro: pouca participação e baixo crescimento.

🐄 Vaca Leiteira: forte posição em mercado relativamente maduro.

⭐ Estrela: forte posição e mercado em crescimento.

❓ Ponto de Interrogação: posição ainda pequena em mercado promissor.

E aqui faremos uma pequena magia.

Vamos aplicar essa ideia aos sistemas de informação.



🐕 CAPÍTULO 3 — O CACHORRO QUE NINGUÉM TEM CORAGEM DE DESLIGAR

Tomoe encontra um sistema antigo da Kuzunoha Company.

Ele controla encomendas de um produto que praticamente ninguém compra.

Existem 14 usuários.

São processadas 120 operações por dia.

A empresa pretende abandonar aquele mercado.

Nosso COBOLzeiro imediatamente propõe:

— Vamos modernizar!

Makoto pergunta:

— Por quê?

Silêncio.

Essa talvez seja uma das perguntas mais importantes da arquitetura corporativa.

Por quê?

O sistema pode perfeitamente funcionar.

Talvez seja estável.

Talvez tenha excelente código.

Mas se o negócio que ele suporta está desaparecendo, investir milhões em sua modernização pode ser desperdício.

A estratégia poderia ser:

Sistema legado
     ↓
manutenção corretiva
     ↓
segurança
     ↓
backup
     ↓
documentação
     ↓
mínimo investimento
     ↓
descomissionamento

Observe algo importante.

Cachorro não significa necessariamente software ruim.

Significa baixo valor estratégico futuro dentro daquele contexto.

Um maravilhoso programa COBOL pode ser Cachorro.

Um péssimo programa Java também.

Tecnologia não determina automaticamente o quadrante.



🐄 CAPÍTULO 4 — MIO ENCONTRA A VACA QUE PRODUZ DINHEIRO

No porão da Kuzunoha Company existe outro sistema.

É velho.

Muito velho.

Tela verde.

COBOL.

CICS.

Db2.

Mio olha horrorizada:

— Makoto-sama! Isso é antigo!

Shiki examina os números.

O sistema processa milhões de transações.

Está disponível 24 horas.

Praticamente toda a receita da empresa passa por ele.

Makoto responde:

— Então não toque nele sem saber exatamente o que está fazendo.

Encontramos uma Vaca Leiteira.

No contexto empresarial, é aquilo que possui posição consolidada e produz resultados consistentes em um mercado que já não apresenta crescimento explosivo.

Imagine:

              CORE COBOL
                  │
                  ▼
                CICS
                  │
                  ▼
                 Db2
                  │
          milhões de operações
                  │
                  ▼
              $$$$$$$$

Aqui existe uma armadilha.

Administradores podem pensar:

"Já funciona. Então não precisamos gastar dinheiro."

Durante algum tempo funciona.

Depois aparece:

subinvestimento
      ↓
dívida técnica
      ↓
versões antigas
      ↓
menos especialistas
      ↓
documentação deteriorada
      ↓
dependências desconhecidas
      ↓
fragilidade operacional

Até chegar aquela madrugada especial.

03:17.

Sim, padawan.

Você encontrou o easter egg.

O telefone toca.

A Vaca Leiteira parou.

E naquele momento ninguém quer saber se o programa possui 35 anos.

Querem saber:

"QUANDO VOLTA?"


🛡️ CAPÍTULO 5 — VACA LEITEIRA PRECISA DE INVESTIMENTO DEFENSIVO

Extrair produtividade não significa abandonar manutenção.

Uma aplicação crítica precisa receber investimento defensivo.

No universo mainframe isso pode significar:

COBOL antigo
      ↓
upgrade do compilador
      ↓
testes de regressão
      ↓
otimização

Também pode envolver:

  • atualização de CICS;

  • manutenção de Db2;

  • RACF;

  • automação operacional;

  • observabilidade;

  • Capacity Planning;

  • backup;

  • Disaster Recovery;

  • documentação;

  • testes automatizados;

  • atualização de interfaces;

  • treinamento.

Talvez nenhuma dessas iniciativas produza um botão novo para o cliente.

Mesmo assim elas protegem milhões.

Essa distinção é fundamental para o iniciante:

manutenção não é ausência de inovação.

Às vezes a decisão tecnologicamente mais inteligente é garantir que aquilo que funciona continue funcionando.


⭐ CAPÍTULO 6 — TOMOE ENCONTRA UMA ESTRELA

Agora surge um novo produto da Kuzunoha Company.

As vendas crescem rapidamente.

Clientes adoram.

Novos mercados aparecem.

Concorrentes começam a copiar.

Temos uma Estrela.

Aqui a estratégia muda.

É necessário:

INVESTIR
   ↓
ESCALAR
   ↓
INOVAR
   ↓
MELHORAR
   ↓
CONQUISTAR MERCADO

Agora faz sentido discutir:

  • novas funcionalidades;

  • automação;

  • APIs;

  • escalabilidade;

  • novos canais;

  • integração;

  • observabilidade;

  • analytics;

  • segurança;

  • experiência do cliente.

E encontramos uma mudança fundamental na relação entre negócio e TI.

Durante décadas imaginamos:

NEGÓCIO
   ↓
define estratégia
   ↓
TI
   ↓
implementa

Mas isso é incompleto.

Também pode acontecer:

TECNOLOGIA
     ↓
nova possibilidade
     ↓
novo produto
     ↓
novo mercado
     ↓
NOVA ESTRATÉGIA

A tecnologia não apenas executa estratégia.

Ela pode criar possibilidades estratégicas que anteriormente não existiam.


❓ CAPÍTULO 7 — SHIKI ENCONTRA UMA CAIXA QUE NINGUÉM SABE PARA QUE SERVE

No laboratório existe um protótipo.

Poucos clientes utilizam.

Ele ainda não gera dinheiro significativo.

Mas existe enorme potencial.

Bem-vindo ao Ponto de Interrogação.

Aqui encontramos tecnologias e produtos cujo futuro permanece incerto.

No mundo atual poderíamos encontrar, dependendo do contexto empresarial:

IA generativa
Agentes de IA
novos canais digitais
novas plataformas
novos produtos de dados
automação inteligente

Makoto não deveria apostar toda a Kuzunoha Company nisso.

Mas ignorar completamente a oportunidade também pode ser perigoso.

Portanto:

HIPÓTESE
   ↓
PROTÓTIPO
   ↓
PoC
   ↓
MVP
   ↓
CLIENTES
   ↓
MÉTRICAS
   ↓
┌─────────────┐
│ FUNCIONOU?  │
└─────────────┘
  │         │
 SIM       NÃO
  │         │
  ▼         ▼
INVESTIR   REVER

Isso é experimentação estratégica.

Não sabemos se existe uma Estrela escondida ali.

Precisamos descobrir gastando uma quantidade controlada de recursos.


🧪 CAPÍTULO 8 — O PROGRAMADOR COBOL APRENDE A NÃO CONFUNDIR PoC COM PRODUÇÃO

Essa é uma lição preciosa.

PoC — Proof of Concept responde:

É tecnicamente possível?

MVP — Minimum Viable Product tenta responder algo diferente:

Existe valor suficiente para usuários reais?

E produção pergunta:

Conseguimos operar isso continuamente, com segurança, desempenho, suporte e governança?

São três problemas diferentes.

Algo pode funcionar lindamente num notebook e tornar-se um desastre quando precisa atender 10 milhões de clientes.

Nosso programador COBOL deveria perguntar:

Qual volume?

Quantas transações?

Qual disponibilidade?

Qual SLA?

Qual RTO?

Qual RPO?

Qual segurança?

Quem monitora?

Quem suporta?

Como fazemos rollback?

Makoto sorri.

Nosso padawan está aprendendo.


🤝 CAPÍTULO 9 — MAKOTO COLOCA MARKETING E TI NA MESMA MESA

O material original traz uma observação extraordinariamente importante:

A análise estratégica deveria envolver tanto quem conhece a tecnologia quanto quem conhece o mercado.

Parece óbvio atualmente.

Historicamente não foi.

Durante muito tempo existiu algo semelhante a:

MARKETING
   │
   ▼
REQUISITOS
   │
   ▼
INFORMÁTICA
   │
   ▼
SISTEMA

TI recebia pedidos.

Mas planejamento estratégico exige diálogo:

          MERCADO
             │
             ▼
MARKETING ◄──────► TI
     │              │
     └──────┬───────┘
            ▼
         PRODUTO
            │
            ▼
        ESTRATÉGIA

Marketing pode dizer:

"Queremos atender 5 milhões de clientes."

TI precisa perguntar:

"Nossa arquitetura suporta?"

TI pode dizer:

"Agora conseguimos expor determinadas funções através de APIs."

Marketing pode responder:

"Então talvez exista um produto que ainda não imaginávamos."

Isso é colaboração estratégica.


💍 CAPÍTULO 10 — O CASAMENTO ENTRE ESTRATÉGIA DA ORGANIZAÇÃO E ESTRATÉGIA DA INFORMAÇÃO

Makoto coloca dois pergaminhos sobre a mesa.

No primeiro:

ESTRATÉGIA EMPRESARIAL

No segundo:

ESTRATÉGIA DA INFORMAÇÃO

Eles precisam conversar.

Suponha que a empresa queira triplicar vendas.

Excelente.

Mas atualmente temos:

1.000 TPS

e a campanha pode produzir:

10.000 TPS

Temos capacidade?

Rede?

CPU?

I/O?

Db2?

CICS?

MQ?

Storage?

Licenciamento?

Observabilidade?

Disaster Recovery?

A estratégia comercial acaba produzindo requisitos técnicos.

E os limites técnicos também podem limitar a estratégia comercial.

Esse casamento é conhecido modernamente através de discussões sobre alinhamento entre negócio e TI.


💳 CAPÍTULO 11 — QUANDO TECNOLOGIA MUDA O PRODUTO

Um exemplo histórico citado no material é o cartão magnético nos bancos.

Parece banal hoje.

Não era.

Antes:

CLIENTE
   ↓
AGÊNCIA
   ↓
FUNCIONÁRIO
   ↓
SISTEMA

Depois:

CLIENTE
   ↓
ATM
   ↓
REDE
   ↓
HOST

Hoje:

CLIENTE
   ↓
SMARTPHONE
   ↓
INTERNET
   ↓
API GATEWAY
   ↓
SERVIÇOS
   ↓
CICS / IMS / Db2

Perceba algo maravilhoso.

O canal pode mudar completamente enquanto determinadas funções centrais permanecem.

Isso nos ensina:

Modernização não significa obrigatoriamente substituição.

Podemos modernizar interfaces, integração, automação e observabilidade sem reescrever irresponsavelmente o coração transacional.


🧱 CAPÍTULO 12 — TECNOLOGIA COMO BARREIRA DE ENTRADA

Outro conceito poderoso é utilizar TI para dificultar a entrada de concorrentes.

Um exemplo histórico clássico envolve sistemas de reservas aéreas, como o SABRE.

Quando tecnologia conecta:

COMPANHIA
     ↕
SISTEMA
     ↕
AGÊNCIAS
     ↕
CLIENTES

ela deixa de ser simples ferramenta administrativa.

Torna-se parte do ecossistema competitivo.

Hoje vemos algo semelhante em:

  • marketplaces;

  • meios de pagamento;

  • plataformas;

  • ecossistemas de APIs;

  • cloud;

  • redes de parceiros.

Quanto mais integrado estiver determinado ecossistema, maior pode ser o custo de substituição.

A TI criou um moat, um fosso em volta do castelo.

Tomoe aprova essa metáfora.


📊 CAPÍTULO 13 — CONHECER O CLIENTE

O antigo exemplo da mala direta parece quase arqueológico.

A empresa selecionava clientes com maior probabilidade de responder.

Hoje faríamos:

CRM
 ↓
Data Lake / Warehouse
 ↓
Analytics
 ↓
Machine Learning
 ↓
Segmentação
 ↓
Campanha
 ↓
Conversão
 ↓
Feedback

Mudamos tremendamente as ferramentas.

Mas a pergunta permanece:

Para quem devemos oferecer determinado produto?

A antiga mala direta tornou-se:

  • recomendação personalizada;

  • segmentação comportamental;

  • campanhas digitais;

  • Customer 360;

  • marketing automation;

  • modelos preditivos.

Informação virou matéria-prima estratégica.


💰 CAPÍTULO 14 — QUANDO A INFORMAÇÃO VIRA PRODUTO

Existe outra possibilidade.

Uma empresa executa seu negócio e, como consequência, produz dados.

OPERAÇÃO
   ↓
DADOS
   ↓
ORGANIZAÇÃO
   ↓
INFORMAÇÃO
   ↓
ANÁLISE
   ↓
NOVO PRODUTO

Isso é monetização de dados.

Mas existe uma diferença gigantesca entre o passado e nosso mundo atual.

Hoje precisamos considerar:

  • privacidade;

  • consentimento;

  • finalidade;

  • segurança;

  • governança;

  • legislação como a LGPD.

O fato de uma empresa possuir tecnicamente acesso a um dado não significa automaticamente que possa utilizá-lo de qualquer maneira.

Governança também é estratégia.


🏗️ CAPÍTULO 15 — MAKOTO DESCOBRE QUE EXISTEM DUAS VELOCIDADES

Chegamos a uma das partes mais interessantes do planejamento.

A empresa precisa pensar simultaneamente em:

longo prazo e curto prazo.

Imagine a Kuzunoha Company construindo uma cidade.

Precisamos de:

estradas
água
energia
armazéns
segurança

Esses investimentos não podem ser refeitos toda semana.

São infraestrutura.

Mas amanhã aparece uma oportunidade comercial inesperada.

Precisamos reagir rapidamente.

Portanto:

             ORGANIZAÇÃO
                  │
        ┌─────────┴─────────┐
        │                   │
        ▼                   ▼
   FUNDAÇÃO             RESPOSTA
   LONGO PRAZO          CURTO PRAZO
        │                   │
   arquitetura             MVP
   dados                   PoC
   redes                automação
   segurança           experimento
   plataforma           oportunidade

Uma organização saudável precisa das duas.


🏛️ CAPÍTULO 16 — ARQUITETURA É DECIDIR O QUE SERÁ DIFÍCIL MUDAR

Essa definição vale ouro.

Arquitetura não é simplesmente desenhar caixinhas bonitas.

É tomar decisões estruturais.

Em mainframe isso aparece de forma extraordinária.

Imagine que em 1987 alguém definiu:

01 CUSTOMER-RECORD.
   05 CUSTOMER-ID PIC X(10).

Trinta anos depois esse identificador pode aparecer em:

COPYBOOK
   ↓
COBOL
   ↓
VSAM
   ↓
CICS
   ↓
Db2
   ↓
MQ
   ↓
API
   ↓
JSON
   ↓
MOBILE

A decisão aparentemente minúscula tornou-se parte da arquitetura empresarial.

É por isso que sistemas antigos carregam história organizacional codificada.

O código não contém apenas algoritmos.

Contém decisões de negócios tomadas por pessoas que talvez já tenham se aposentado.


⚡ CAPÍTULO 17 — DESENVOLVIMENTO OPORTUNISTA

O material utiliza uma expressão deliciosa:

desenvolvimento oportunista.

A organização precisa aproveitar oportunidades rapidamente.

Hoje utilizaríamos termos como:

  • Agile;

  • DevOps;

  • MVP;

  • prototipação;

  • Low Code;

  • automação;

  • feature flags.

Mas existe um problema.

Rapidez sem arquitetura produz:

SOLUÇÃO RÁPIDA
      ↓
outra solução rápida
      ↓
mais uma
      ↓
integração improvisada
      ↓
dependências
      ↓
dívida técnica
      ↓
🔥

Arquitetura sem velocidade também produz problema:

REUNIÃO
 ↓
COMITÊ
 ↓
ARQUITETURA
 ↓
NOVO COMITÊ
 ↓
DOCUMENTO
 ↓
REVISÃO
 ↓
18 MESES
 ↓
concorrente lançou há um ano

Precisamos equilibrar as duas forças.


🖥️ CAPÍTULO 18 — A MATRIZ BCG ENTRA NO DATACENTER

Agora Makoto manda classificar aplicações.

Poderíamos obter:

AplicaçãoClassificaçãoEstratégia
sistema em retirada🐕 Cachorromanter e descomissionar
core COBOL/CICS🐄 Vaca Leiteiraproteger e otimizar
plataforma digital crescente⭐ Estrelainvestir e escalar
agente de IA experimental❓ Interrogaçãotestar e medir

Mas cuidado!

Nunca faça:

COBOL = CACHORRO
JAVA = ESTRELA
IA = ESTRELA
MAINFRAME = VELHO
CLOUD = MODERNO

Isso é pensamento superficial.

Uma aplicação COBOL pode estar no centro de uma Estrela.

Imagine:

APP MOBILE
     ↓
REST API
     ↓
z/OS Connect
     ↓
CICS
     ↓
COBOL
     ↓
Db2

Para o cliente parece um serviço moderníssimo.

No coração encontramos COBOL processando a transação.

E está tudo bem.


🔄 CAPÍTULO 19 — OS QUADRANTES NÃO SÃO PRISÕES

Produtos mudam.

Normalmente imaginamos:

❓ INTERROGAÇÃO
       ↓
      ⭐
   ESTRELA
       ↓
      🐄
 VACA LEITEIRA
       ↓
      🐕
   CACHORRO

Mas isso não é inevitável.

Uma Interrogação pode fracassar.

Uma Estrela pode desaparecer.

Uma Vaca Leiteira pode ser reinventada.

Essa última possibilidade é particularmente interessante para mainframe.

Imagine:

CORE CONSOLIDADO
      🐄
       │
       + APIs
       + novos canais
       + analytics
       + automação
       + integração
       ↓
NOVOS PRODUTOS
       ↓
       ⭐

Você não precisou destruir o core.

Transformou-o em plataforma.


☠️ CAPÍTULO 20 — A QUINTA CRIATURA QUE NÃO EXISTIA NA MATRIZ

Shiki percebe um problema.

Existe um sistema que:

  • não vende nada;

  • não cresce;

  • não aparece para clientes;

  • não gera receita diretamente.

Makoto pergunta:

— Então podemos desligá-lo?

Shiki fica pálido.

— Não.

— Por quê?

— Porque tudo depende dele.

Aqui encontramos uma limitação importante da análise simplificada.

Sistemas tecnológicos possuem uma dimensão adicional:

CRITICIDADE OPERACIONAL.

Um serviço pode não produzir receita diretamente e ainda ser absolutamente essencial.

Por isso uma análise moderna deveria considerar:

VALOR ATUAL
     ×
POTENCIAL FUTURO
     ×
CRITICIDADE
     ×
RISCO
     ×
CUSTO
     ×
DÍVIDA TÉCNICA

Agora nossa análise começa a ficar realmente interessante.


🧭 CAPÍTULO 21 — PASSO A PASSO PARA ANALISAR UM SISTEMA

Nosso programador COBOL finalmente recebe sua missão.

Pegue uma aplicação real.

Primeiro, descubra o negócio.

Pergunte:

O que esse sistema faz?

Depois:

Quem utiliza?

Depois:

Quanto valor ele produz?

Depois:

O mercado relacionado cresce ou diminui?

Depois:

Qual é sua criticidade?

Depois:

Quanto custa mantê-lo?

Depois:

Qual é sua dívida técnica?

Depois:

Existe substituto?

Depois:

O que acontece se ele ficar quatro horas indisponível?

Agora documente:

SISTEMA: AUTORIZAÇÃO DE CARTÕES

Tecnologia:
COBOL / CICS / Db2

Volume:
8.000 TPS

Criticidade:
ALTÍSSIMA

Crescimento:
MODERADO

Receita relacionada:
ALTÍSSIMA

Dívida técnica:
MÉDIA

Estratégia:
PROTEGER + MODERNIZAR INTERFACES

Percebeu?

Agora estamos fazendo planejamento.

Não estamos simplesmente perguntando:

"Qual linguagem ele usa?"


🧙 CAPÍTULO 22 — MAKOTO ENSINA A DIFERENÇA ENTRE TECNOLOGIA E ESTRATÉGIA

Nosso COBOLzeiro finalmente compreende.

COBOL é tecnologia.

CICS é tecnologia.

Db2 é tecnologia.

Java é tecnologia.

Cloud é tecnologia.

IA é tecnologia.

Nenhuma delas constitui estratégia isoladamente.

Estratégia responde perguntas diferentes:

Onde queremos chegar?

Que mercado queremos atender?

Qual vantagem queremos construir?

Onde vale investir?

Onde devemos parar de investir?

Que riscos aceitamos?

Que capacidades precisamos possuir?

Só então perguntamos:

Qual tecnologia ajuda a executar isso?

Esse detalhe separa arquitetura tecnológica de coleção de buzzwords.


☕ EPÍLOGO — O PROGRAMADOR COBOL SAI DA LOJA

Anoitece em Tsige.

A Kuzunoha Company fecha suas portas.

Mio procura alguma coisa para comer.

Tomoe provavelmente está tramando alguma aventura.

Shiki guarda os relatórios.

Makoto chama nosso jovem programador antes que ele vá embora.

— O que você aprendeu hoje?

O padawan responde:

— Que eu não deveria perguntar primeiro se um sistema é velho.

Makoto sorri.

— Continue.

— Preciso perguntar qual problema ele resolve, quanto valor produz, qual sua importância, quanto custa, qual seu futuro e o que acontece quando ele para.

— Muito melhor.

Nosso programador olha novamente para aquele velho programa COBOL.

Ontem enxergava:

IF WS-SALDO >= WS-VALOR
    PERFORM 3000-AUTORIZAR
ELSE
    PERFORM 4000-NEGAR
END-IF.

Hoje enxerga:

ESTRATÉGIA
    ↓
MERCADO
    ↓
PRODUTO
    ↓
PROCESSO
    ↓
INFORMAÇÃO
    ↓
SISTEMA
    ↓
ARQUITETURA
    ↓
CICS
    ↓
COBOL
    ↓
Db2

Mas então percebe algo ainda mais importante.

A seta também pode subir:

COBOL
   ↓
CICS
   ↓
API
   ↓
NOVA CAPACIDADE
   ↓
NOVO PRODUTO
   ↓
NOVO MERCADO
   ↓
NOVA ESTRATÉGIA

E finalmente compreende a verdadeira lição daquela dungeon.

Durante décadas repetimos:

"A informática deve estar alinhada à estratégia do negócio."

Correto.

Mas incompleto.

Porque quando informação, software e conectividade passam a constituir parte do próprio produto, a tecnologia deixa de ocupar apenas a oficina nos fundos da empresa.

Ela entra na sala onde o mapa do reino está aberto sobre a mesa.

E talvez a maior lição da Kuzunoha Company seja justamente essa:

Não modernize porque algo é antigo. Não substitua porque algo não está na moda. Não preserve simplesmente porque ainda funciona. Descubra primeiro qual papel aquilo desempenha no reino.

O velho programa COBOL pode ser um Cachorro aguardando aposentadoria.

Pode ser uma Vaca Leiteira produzindo milhões.

Pode estar escondido no coração de uma Estrela.

Ou pode ser a infraestrutura invisível sem a qual todas as outras criaturas simplesmente morrem.

Quando você aprende a enxergar essa diferença, deixa de ser apenas alguém que escreve IF, MOVE e PERFORM.

Começa a entender por que aquele código existe.

E esse é um dos primeiros passos para deixar de ser somente programador e começar a pensar como analista, arquiteto e estrategista.

No fundo do relatório de Shiki, entretanto, havia uma pequena observação:

************************************************************
*  TODO: DESCOBRIR QUEM CRIOU ESTA ROTINA EM 1987         *
*  NINGUÉM SABE COMO FUNCIONA.                             *
*  NÃO APAGAR.                                             *
*                                                          *
*  ÚLTIMO INCIDENTE: 03:17                                 *
************************************************************

Tomoe olhou para Makoto.

Makoto olhou para o programador COBOL.

O programador olhou para o código.

Mio perguntou:

— Posso comer o servidor?

E assim começou a próxima War Room da Kuzunoha Company.

Continua...

sexta-feira, 21 de dezembro de 2001

Fushigi Yūgi: Eikoden - Quando um Programador COBOL Descobre que Restaurar um Backup Antigo Também Pode Restaurar Bugs que Nunca Deveriam Voltar

 

Bellacosa Mainframe apresenta fushigi yugi eikoden

☕ Um Café no Bellacosa Mainframe

Fushigi Yūgi: Eikoden (ふしぎ遊戯 永光伝) sem Mistérios

Quando um Programador COBOL Descobre que Restaurar um Backup Antigo Também Pode Restaurar Bugs que Nunca Deveriam Voltar

Depois do anime original, do primeiro OVA e de Dai Ni Bu, parecia que finalmente todos os JOBs haviam terminado com RC=0000.

Miaka e Taka (a reencarnação de Tamahome) finalmente construíram uma vida juntos.

Os Guerreiros de Suzaku seguiram seus caminhos.

O livro dos Quatro Deuses parecia definitivamente fechado.

Mas...

Todo profissional de mainframe conhece aquela cena.

Você termina um projeto gigantesco.

Arquiva toda a documentação.

Fecha os chamados.

Então alguém pergunta:

"Será que conseguimos restaurar aquele backup de três anos atrás?"

Cinco minutos depois...

O ambiente inteiro voltou a executar rotinas antigas.

É exatamente essa a proposta de Fushigi Yūgi: Eikoden.

Não é apenas uma continuação.

É uma reflexão sobre pessoas que vivem presas ao passado enquanto tentam reescrever uma história que já encontrou seu final.


Ficha Técnica

Título Original: ふしぎ遊戯 永光伝 (Fushigi Yūgi: Eikoden)

Título Internacional: Fushigi Yūgi: Eikoden

Baseado em: Light novels de Megumi Nishizaki, ilustradas por Yuu Watase

Universo Original: Fushigi Yūgi

Estúdio: Studio Pierrot

Direção: Nanako Shimazaki

Roteiro: Hiroaki Satō

Lançamento:

  • 21 de dezembro de 2001

  • 25 de junho de 2002 (último episódio)

Formato

OVA (Original Video Animation)

Quantidade de episódios

4 episódios (Wikipedia)


Gênero

  • Isekai

  • Fantasia

  • Romance

  • Drama

  • Shōjo

  • Sobrenatural


Classificação

14 anos.

Possui violência moderada, temas psicológicos, conflitos emocionais e elementos sobrenaturais.


Sinopse

Três anos após os acontecimentos da história principal, Miaka e Taka vivem felizes e esperam seu primeiro filho.

Enquanto isso, uma estudante chamada Mayo Sakaki, solitária e profundamente infeliz, encontra o lendário Livro dos Quatro Deuses.

Consumida pelo desejo de escapar da própria realidade, Mayo entra no livro e passa a acreditar que pode substituir Miaka como sacerdotisa de Suzaku.

Sua obsessão ameaça alterar o equilíbrio entre os dois mundos.


Resumo da História

Diferentemente das animações anteriores, Eikoden muda completamente o ponto de vista.

Agora acompanhamos uma protagonista diferente.

Mayo representa uma garota comum que deseja fugir da realidade.

Ao entrar no livro, ela encontra exatamente aquilo que sempre sonhou:

Um mundo onde acredita poder ser especial.

Mas logo percebe que viver dentro de uma fantasia não significa apagar suas dores.

Enquanto tenta tomar o lugar de Miaka, acaba colocando em risco toda a estabilidade conquistada pelos Guerreiros de Suzaku.


Os Personagens

Mayo Sakaki

A nova protagonista.

Insegura.

Solitária.

Carente.

Sua maior batalha acontece dentro de si mesma.

É provavelmente a personagem mais controversa de toda a franquia.


Miaka Yūki

Agora adulta.

Casada.

Grávida.

Representa maturidade.

Sua evolução desde o anime original fica evidente.


Taka (Tamahome)

A reencarnação de Tamahome.

Mais experiente e protetor.

Sua prioridade deixa de ser a aventura.

Agora é proteger sua família.


Os Guerreiros de Suzaku

Retornam para ajudar a enfrentar a nova crise.

Mais do que guerreiros, tornam-se guardiões da história que ajudaram a construir.


O que há de diferente?

Praticamente tudo.

Até então, a franquia acompanhava Miaka.

Agora seguimos Mayo.

A aventura deixa de ser uma missão para salvar um reino.

Passa a ser uma jornada sobre aceitar a própria realidade.

A fantasia funciona quase como uma terapia emocional.


As Aventuras

Mayo atravessa novamente o universo dos Quatro Deuses.

No caminho enfrenta:

  • ilusões

  • demônios

  • falsas esperanças

  • manipulações

  • entidades espirituais

  • conflitos internos

Cada obstáculo simboliza uma parte de sua própria personalidade.


Temáticas

Escapismo

Até que ponto fugir da realidade resolve nossos problemas?


Identidade

É possível ser feliz tentando viver a vida de outra pessoa?


Aceitação

O verdadeiro crescimento começa quando aceitamos quem somos.


Maturidade

Miaka representa alguém que deixou de sonhar apenas consigo.

Agora pensa na família.


Responsabilidade

Toda escolha possui consequências.

Mesmo dentro de um mundo mágico.


O Grande Diferencial

Enquanto a série original era sobre descobrir um novo mundo...

Eikoden fala sobre descobrir a si mesmo.

É um drama psicológico muito mais intimista.

Os conflitos externos existem.

Mas são apenas reflexos dos conflitos internos.


As Mensagens Ocultas

O Livro

Não representa apenas um portal.

Representa a tentação de viver em uma realidade idealizada.


Mayo

Simboliza qualquer pessoa que acredita que a felicidade sempre está na vida dos outros.


Miaka

Representa exatamente o oposto.

Ela aprendeu que felicidade exige responsabilidade.

Não apenas desejos.


Suzaku

Agora deixa de ser apenas um deus.

Passa a simbolizar esperança e renascimento.


O Paralelo Mainframe

Imagine um banco que decide restaurar um backup de produção de cinco anos atrás.

O ambiente antigo parece maravilhoso.

Não havia APIs.

Não havia cloud.

Não havia auditorias modernas.

Tudo parecia mais simples.

Até perceberem que:

  • existem milhares de vulnerabilidades;

  • as regras de negócio mudaram;

  • os usuários evoluíram;

  • o mundo não é mais o mesmo.

Eikoden mostra exatamente isso.

Não podemos viver presos à nostalgia.

Sistemas precisam evoluir.

Pessoas também.


Impacto Cultural

Entre as animações de Fushigi Yūgi, Eikoden costuma ser a mais divisiva. Muitos elogiam sua proposta de explorar um novo ponto de vista e o amadurecimento de Miaka, enquanto outros consideram Mayo uma protagonista difícil de simpatizar. Ainda assim, a OVA teve importância por adaptar uma das light novels derivadas da franquia e por encerrar a cronologia animada clássica. (Wikipedia)


Curiosidades

  • Foi baseada em duas light novels escritas por Megumi Nishizaki, com ilustrações de Yuu Watase, e não diretamente no mangá. (Wikipedia)

  • Foi a primeira animação da franquia a utilizar amplamente coloração e pintura digital, marcando uma mudança tecnológica em relação às OVAs anteriores. (Wikipedia)

  • A direção ficou a cargo de Nanako Shimazaki, diferente das animações anteriores dirigidas por Hajime Kamegaki. (Wikipedia)

  • A protagonista Mayo divide opiniões até hoje entre os fãs, sendo um dos aspectos mais debatidos da obra. (Reddit)


Nota Bellacosa Mainframe

CritérioNota
Desenvolvimento Psicológico⭐⭐⭐⭐⭐
Romance⭐⭐⭐⭐☆
Continuação do Universo⭐⭐⭐⭐☆
Originalidade⭐⭐⭐⭐⭐
Fantasia⭐⭐⭐⭐☆
Aventura⭐⭐⭐☆☆
Qualidade Visual⭐⭐⭐⭐⭐
Impacto Emocional⭐⭐⭐⭐☆

Vale a pena assistir?

Sim, mas com expectativas corretas.

Quem espera uma nova grande aventura como a série original provavelmente encontrará um ritmo mais lento e introspectivo. Já quem aprecia histórias sobre amadurecimento, identidade e as consequências das escolhas verá em Eikoden um epílogo interessante para o universo de Fushigi Yūgi.


Veredicto Final

Fushigi Yūgi: Eikoden encerra a cronologia clássica da franquia propondo uma pergunta diferente das obras anteriores: o que acontece quando alguém deseja viver a história de outra pessoa? Em vez de focar apenas na fantasia, a OVA explora temas como escapismo, amadurecimento e aceitação, mostrando que a verdadeira jornada nem sempre é atravessar um portal, mas aprender a valorizar a própria realidade.

No universo do Bellacosa Mainframe, a conclusão é inevitável:

"Todo programador já sonhou em restaurar aquela versão antiga do sistema, quando tudo parecia mais simples. Mas a experiência ensina que nem todo backup merece voltar à produção. Eikoden nos lembra que evoluir significa seguir em frente. Porque os melhores sistemas não vivem presos às versões antigas — eles carregam sua história, aprendem com ela e continuam evoluindo sem perder a essência."

sábado, 15 de dezembro de 2001

Inuyasha the Movie: Affections Touching Across Time : Quando um Programador COBOL Descobre que Alguns Bugs Foram Introduzidos Antes Mesmo do Primeiro IPL

 

Bellacosa Mainframe apresenta inuyasha the movie affections touching across time

☕ Um Café no Bellacosa Mainframe

Inuyasha the Movie: Affections Touching Across Time (犬夜叉 時代を越える想い) sem Mistérios

Quando um Programador COBOL Descobre que Alguns Bugs Foram Introduzidos Antes Mesmo do Primeiro IPL... e Agora Precisa Debugar Cinco Séculos de Dependências

"Existem sistemas cujo problema não nasceu na última atualização. Ele foi criado na primeira versão e permaneceu escondido durante séculos. O primeiro filme de Inuyasha conta exatamente esse tipo de incidente."


Introdução

Em 2001, apenas um ano após a estreia do anime de Inuyasha, o estúdio Sunrise lançou o primeiro longa-metragem da franquia.

O objetivo não era continuar diretamente o mangá de Rumiko Takahashi, mas oferecer uma aventura inédita que ampliasse o universo da série, explorando um inimigo antigo ligado aos acontecimentos do passado.

O resultado foi Inuyasha the Movie: Affections Touching Across Time, um filme que mistura ação, romance e fantasia, aprofundando a relação entre Inuyasha e Kagome enquanto apresenta um vilão original.

Para muitos fãs, este longa consolidou a franquia como uma das mais importantes do início dos anos 2000.


Dados Técnicos

Título Original

犬夜叉 時代を越える想い

Inuyasha: Toki wo Koeru Omoi

Tradução aproximada:

"Sentimentos que Atravessam o Tempo"

Título internacional:

Inuyasha the Movie: Affections Touching Across Time


Autora Original

Rumiko Takahashi (高橋留美子)

Criadora de:

  • Inuyasha

  • Ranma ½

  • Urusei Yatsura

  • Maison Ikkoku

  • Mermaid Saga

  • Mao


Estúdio

Sunrise

(atualmente Bandai Namco Film Works)


Diretor

Toshiya Shinohara


Roteiro

Katsuyuki Sumisawa


Lançamento

15 de dezembro de 2001

Japão


Duração

99 minutos


Gênero

  • Fantasia

  • Aventura

  • Romance

  • Ação

  • Sobrenatural

  • Drama


Classificação

Aproximadamente

12–14 anos

Contém:

  • batalhas

  • violência moderada

  • monstros

  • sangue leve

  • temas sobrenaturais


Sinopse

Depois de séculos aprisionado...

o poderoso yokai chinês

Menōmaru

retorna.

Seu objetivo é completar o plano iniciado por seu pai:

destruir o legado deixado por Inu no Taishō, pai de Inuyasha e Sesshomaru.

Enquanto isso...

Kagome começa a perceber que seus sentimentos por Inuyasha estão se tornando cada vez mais profundos.

A aventura rapidamente se transforma numa batalha entre passado e presente.


Resumo

O filme apresenta um inimigo completamente novo.

Menōmaru deseja vingar a derrota do pai.

Para isso tenta controlar:

  • Inuyasha

  • Kagome

  • o poder demoníaco

  • a Pérola de Shikon

A luta torna-se tanto física quanto psicológica.


A História

Muitos anos antes da série...

o Grande Cão Demônio derrotou o poderoso:

Hyōga

um antigo guerreiro demoníaco vindo do continente asiático.

Antes de morrer...

Hyōga deixa um filho.

Menōmaru

Séculos depois...

Menōmaru desperta.

Ele descobre que Inu no Taishō morreu.

Então decide concluir a vingança iniciada pelo pai.

Sua estratégia consiste em despertar completamente o sangue demoníaco de Inuyasha e usá-lo contra seus próprios aliados.


Os Personagens

Inuyasha

Precisa enfrentar seu lado demoníaco.

Mostra um enorme crescimento emocional.


Kagome

Tem papel muito mais importante do que apenas arqueira.

Seu vínculo espiritual torna-se fundamental para salvar Inuyasha.


Menōmaru

Primeiro grande vilão cinematográfico da franquia.

Representa vingança herdada.

Seu objetivo não é conquistar.

É destruir um legado.


Sesshomaru

Participação menor.

Mas extremamente marcante.

Sempre elegante.

Sempre poderoso.


Miroku

Continua oferecendo equilíbrio entre humor e inteligência.


Sango

Mantém seu papel de guerreira estratégica.


Shippo

Responsável por momentos leves em meio ao drama.


O Que Tem de Diferente?

Ao contrário da série de TV, o filme concentra toda a narrativa em um único conflito, com ritmo mais acelerado e foco na relação entre Inuyasha e Kagome.

Além disso, apresenta um antagonista ligado diretamente ao passado da família de Inuyasha, explorando aspectos pouco desenvolvidos naquele momento do anime.


Temáticas

Amor

Kagome finalmente compreende seus sentimentos.


Herança

Filhos carregam conflitos iniciados pelos pais.


Passado

Nem toda guerra termina quando alguém morre.


Escolhas

O sangue demoníaco não define quem Inuyasha é.


Vingança

O ódio pode atravessar gerações.


As Aventuras

A jornada leva o grupo a enfrentar Menōmaru e seus servos, explorando castelos antigos, florestas amaldiçoadas e batalhas que colocam Inuyasha à beira de perder o controle sobre sua natureza demoníaca.

Kagome assume um papel decisivo ao impedir que ele seja consumido pelo ódio, reforçando que a maior força do protagonista não está apenas em sua espada, mas também nos laços que construiu.


Mensagens Ocultas

O Passado Continua Executando

Mesmo quando ninguém percebe.


Poder Sem Controle

Sempre cobra um preço.


Amor Também Salva

Não apenas espadas.


O Ódio é Herdado

Mas não precisa continuar.


O Tempo Não Cura Tudo

Alguém precisa enfrentar os problemas.


Impacto Cultural

O primeiro filme foi um enorme sucesso entre os fãs da franquia e abriu caminho para outros três longas-metragens.

Também demonstrou que Inuyasha possuía um universo forte o suficiente para histórias inéditas, sem depender exclusivamente do mangá.

A animação recebeu elogios pela qualidade superior à da televisão, pela trilha sonora cinematográfica de Kaoru Wada e pelas cenas de ação.


Censura

O filme sofreu poucas alterações fora do Japão.

As principais mudanças envolveram:

  • redução de sangue em algumas transmissões televisivas;

  • adaptações de classificação indicativa;

  • pequenos ajustes em diálogos nas dublagens internacionais.

A versão em DVD e Blu-ray preserva praticamente todo o conteúdo original.


Mangás

O filme não adapta um arco do mangá.

Sua história é original, criada especialmente para o cinema com supervisão da equipe responsável pelo anime.

Posteriormente recebeu adaptações em formato de anime comic e materiais promocionais.


Light Novels

Não existe uma light novel canônica baseada neste filme.


Games

Embora o filme não tenha gerado um jogo exclusivo, elementos de Menōmaru e de sua história apareceram em materiais promocionais e influenciaram personagens e eventos de alguns jogos da franquia.

Os principais títulos relacionados continuam sendo:

  • Inuyasha: A Feudal Fairy Tale (PlayStation)

  • Inuyasha: The Secret of the Cursed Mask (PlayStation 2)

  • Inuyasha: Feudal Combat (PlayStation 2)

  • Inuyasha: Secret of the Divine Jewel (Nintendo DS)


Curiosidades

  • Foi o primeiro longa da franquia a estrear nos cinemas japoneses.

  • A trilha sonora de Kaoru Wada recebeu novos arranjos orquestrais exclusivos para o filme.

  • Menōmaru é um personagem original criado especificamente para o cinema.

  • A qualidade da animação é visivelmente superior à da série de TV, com cenários mais detalhados e batalhas mais elaboradas.


Easter Eggs

  • A história amplia a mitologia em torno de Inu no Taishō, mostrando que sua influência alcançava além do Japão.

  • O despertar da forma demoníaca de Inuyasha antecipa conflitos internos que seriam aprofundados na série principal.

  • O título "Affections Touching Across Time" simboliza tanto o romance entre Inuyasha e Kagome quanto a permanência dos laços familiares e das consequências das ações passadas.


Avaliação Bellacosa Mainframe

AspectoNota
História⭐⭐⭐⭐☆ (4,5/5)
Ação⭐⭐⭐⭐⭐ (5/5)
Romance⭐⭐⭐⭐☆ (4,5/5)
Animação⭐⭐⭐⭐⭐ (5/5)
Trilha Sonora⭐⭐⭐⭐⭐ (5/5)
Vilão⭐⭐⭐⭐☆ (4,5/5)
Fidelidade ao universo⭐⭐⭐⭐⭐ (5/5)

Nota Final: 9,3/10

É um excelente ponto de entrada para os filmes de Inuyasha e uma aventura que amplia o universo da série sem contradizer sua essência.


☕ Bellacosa Mainframe

Imagine um sistema COBOL implantado em 1520.

Durante cinco séculos ninguém mexeu em determinados módulos.

Todo mundo acredita que funcionam perfeitamente.

Até que um dia aparece um incidente crítico.

Depois da investigação, a equipe descobre que o defeito não foi criado pela última alteração.

Nem pela anterior.

Nem pela equipe atual.

O bug foi introduzido pelo arquiteto original do sistema, centenas de anos atrás.

Menōmaru representa esse incidente histórico que ressurge quando todos acreditavam que estava resolvido.

Inuyasha é o módulo crítico que precisa decidir se continuará executando rotinas antigas ou adotará uma nova lógica de funcionamento.

Kagome atua como a analista que compreende tanto a arquitetura moderna quanto o legado histórico, tornando-se a ponte entre duas gerações de tecnologia.

No fim, Affections Touching Across Time ensina uma lição que qualquer profissional de mainframe reconhece: os problemas mais difíceis raramente nascem na última atualização. Eles costumam estar escondidos em decisões tomadas há muito tempo, esperando apenas o momento certo para reaparecer em produção.

quinta-feira, 13 de setembro de 2001

Andaças por Montevideu

Viagem a Montevideu 


O ano 2001 foi um ano totalmente marcante, tanto que esta viagem a capital do Uruguay foi eclipsado pelos atentados de 11/9. Minha viagem era para o dia 12, porem devido ao caos que foi o day after do ataque as Torres Gémeas de Nova York, fomos remarcados para o dia 13.



Com a segurança alta nos aeroportos, a vigilância constante esta viagem na ida não foi tão interessante quanto eu desejava.

Chegando em Montevideu transcorreu tudo tranquilo, os colegas uruguaios eram muito simpáticos sendo grandes anfitriões, após o expediente fazíamos diversas actividades e aproveitávamos para conhecer a capital platina.

Provamos o churrasco uruguaio, cerveja e conhecemos a vida nocturna neste pequeno pais.

Agora a melhor surpresa estava no retorno na semana seguinte, meu voo era American Airline, justamente uma companhia que perdera avião no atentando, éramos 6 passageiro num voo de quase 300 passageiros. Que mordomia, que simpatia ate o piloto véu agradecer o voto de confiança em voar com AA.

sexta-feira, 1 de junho de 2001

📚 MYNE E A BIBLIOTECA PERDIDA DO MAINFRAME — QUANDO O COBOL DESCOBRIU QUE CÓDIGO SEM DOCUMENTAÇÃO TAMBÉM PODE VIRAR UM LIVRO ESQUECIDO

 

Bellacosa Mainframe e a documentação de software

☕ Um Café no Bellacosa Mainframe

📚 MYNE E A BIBLIOTECA PERDIDA DO MAINFRAME — QUANDO O COBOL DESCOBRIU QUE CÓDIGO SEM DOCUMENTAÇÃO TAMBÉM PODE VIRAR UM LIVRO ESQUECIDO

Documentação, COBOL, auditoria, Configuration Management, Git, runbooks, dívida documental, conhecimento institucional, IA generativa — e o dia em que Myne descobriu que o maior risco do sistema não estava no programa, mas na cabeça do único programador que sabia como ele funcionava.



🎬 PRÓLOGO — MYNE ENCONTROU UM PROGRAMA COBOL

Myne abriu os olhos.

Não estava em Ehrenfest.

Não havia templo.

Não havia Ferdinand.

Não havia sequer uma biblioteca.

Diante dela existia uma tela preta com letras verdes.

READY

DSN SYSTEM(DB2P)

IKJ56700A ENTER USERID -

— Onde estão os livros?

Um velho programador apontou para milhares de datasets.

HLQ.PROD.COBOL
HLQ.PROD.COPYLIB
HLQ.PROD.JCL
HLQ.PROD.PROCLIB
HLQ.PROD.PARMLIB

Myne arregalou os olhos.

— Então... isso tudo é conhecimento?

— Mais ou menos.

— Onde está a documentação?

Silêncio.

O programador olhou para o teto.

Outro fingiu que estava analisando um dump.

Um terceiro tomou café.

Finalmente alguém respondeu:

— Pergunta para o Carlos.

Myne imediatamente percebeu que havia encontrado um problema muito mais grave do que a falta de livros.

A empresa possuía milhares de programas.

Mas parte importante do conhecimento necessário para compreendê-los estava armazenada em um dispositivo extremamente sofisticado, porém perigosamente volátil:

a memória dos funcionários.

Bem-vindo, jovem programador COBOL, à dungeon da documentação.



📜 CAPÍTULO 1 — CÓDIGO NÃO É DOCUMENTAÇÃO

Existe uma frase muito repetida no desenvolvimento:

“O código é a documentação.”

Ela contém alguma verdade, mas também pode esconder uma armadilha.

Veja:

       IF WS-TIPO-CLIENTE = 'E'
           PERFORM 8200-CALCULO-ESPECIAL
       END-IF.

Mesmo um iniciante consegue perceber o comportamento básico.

Se WS-TIPO-CLIENTE for igual a E, o programa executa 8200-CALCULO-ESPECIAL.

Ótimo.

Mas agora Myne começa a fazer perguntas.

— O que significa E?

— Especial.

— O que é um cliente especial?

— Não sei.

— Quem decidiu isso?

— Não sei.

— Por que ele recebe cálculo diferente?

— Também não sei.

— Desde quando?

— Talvez 2004.

— Posso remover?

— NÃO!

E encontramos a diferença entre código e conhecimento.

O código descreve muito bem aquilo que o computador precisa executar.

Mas nem sempre preserva:

  • por que determinada decisão foi tomada;

  • qual requisito originou a regra;

  • quem solicitou a alteração;

  • quais impactos foram considerados;

  • quais sistemas dependem dela;

  • quais procedimentos operacionais existem;

  • como recuperar o sistema quando algo dá errado.

Imagine encontrar:

      * ALTERADO JOAO 14/06/2004

Excelente.

Descobrimos que João esteve ali.

Infelizmente, João não deixou pistas sobre aquilo que estava pensando.

Myne suspira.

Um livro que diz apenas:

“Capítulo alterado por João.”

não preserva conhecimento suficiente para reconstruir sua história.



🧠 CAPÍTULO 2 — A EMPRESA POSSUI UMA MEMÓRIA

Uma organização também possui memória.

Só que ela não fica em um único lugar.

Pode estar espalhada por:

Código-fonte
     │
     ├── COBOL
     ├── JCL
     ├── COPYBOOKS
     ├── procedimentos
     ├── tickets
     ├── diagramas
     ├── e-mails
     ├── Wikis
     ├── runbooks
     ├── atas
     ├── manuais
     └── pessoas

O último elemento merece atenção especial.

Imagine:

CONHECIMENTO DO SISTEMA XPTO

20% documentação
30% código
50% Carlos

Temos um problema.

Carlos pode:

  • sair da empresa;

  • mudar de departamento;

  • entrar de férias;

  • esquecer detalhes;

  • aposentar-se;

  • simplesmente não estar disponível durante um incidente.

Isso transforma Carlos em algo parecido com um Single Point of Failure humano.

Existe inclusive uma expressão informal usada em engenharia de software: bus factor.

Ela procura representar quantas pessoas poderiam ficar indisponíveis antes que um projeto perdesse conhecimento crítico.

Se a resposta for:

uma,

temos enorme concentração de conhecimento.

Myne ficaria horrorizada.

Para alguém que passou a vida tentando preservar livros, colocar conhecimento crítico exclusivamente na memória humana seria equivalente a possuir apenas um exemplar de um livro importantíssimo e guardá-lo ao lado de uma lareira.



⚔️ CAPÍTULO 3 — POR QUE PROGRAMADORES NÃO GOSTAM DE DOCUMENTAR?

Durante décadas, gestores perguntaram:

Como fazer os programadores documentarem?

É uma pergunta compreensível.

Mas pode ser a pergunta errada.

É fácil responder:

— Programador não gosta de escrever.

Alguns realmente não gostam.

Outros têm dificuldade para transformar raciocínio técnico em texto compreensível.

Mas existe um problema organizacional muito mais interessante.

Imagine dois programadores.

Programador A

Codificação ............ 8 horas
Testes ................. 3 horas
Documentação ........... 2 horas
-------------------------------
Total .................. 13 horas

Programador B

Codificação ............ 8 horas
Testes ................. 2 horas
Documentação ........... 0 horas
-------------------------------
Total .................. 10 horas

Se a empresa medir produtividade apenas pela velocidade da entrega, quem parece melhor?

B.

Portanto, não documentar pode ser perfeitamente racional dentro de um sistema de incentivos mal construído.

A empresa publica:

“Documentação é fundamental.”

Mas o projeto comunica:

PRAZO > DOCUMENTAÇÃO

E o funcionário aprende rapidamente qual regra realmente vale.

Myne percebe algo importante:

cultura organizacional não é aquilo que está escrito no manual. É aquilo que a organização recompensa, tolera e pune.



🏰 CAPÍTULO 4 — DOCUMENTAÇÃO NÃO DEVERIA SER UMA TAREFA POSTERIOR

Um projeto tradicional frequentemente funciona assim:

REQUISITO
    ↓
ANÁLISE
    ↓
DESENVOLVIMENTO
    ↓
TESTE
    ↓
PRODUÇÃO
    ↓
"Esquecemos da documentação."

Nesse modelo, documentação virou a última obrigação antes da libertação do programador.

Resultado?

Ele está cansado.

O prazo terminou.

Outro projeto já começou.

O gerente quer implantação.

E alguém pergunta:

— Você pode escrever o manual?

Nasce então o clássico:

MANUAL_SISTEMA_FINAL.DOC

Seguido, meses depois, por:

MANUAL_SISTEMA_FINAL2.DOC
MANUAL_SISTEMA_NOVO.DOC
MANUAL_SISTEMA_NOVO_FINAL.DOC
MANUAL_SISTEMA_NOVO_FINAL_OK.DOC

Isso não é versionamento.

É arqueologia digital.

A solução conceitual é colocar documentação dentro do ciclo de desenvolvimento:

REQUISITO
    ↓
DESIGN
    ↓
CÓDIGO
    +
DOCUMENTAÇÃO
    ↓
TESTE
    +
TESTE DA DOCUMENTAÇÃO
    ↓
REVIEW
    ↓
DEPLOY

Agora surge uma regra poderosa:

mudança no sistema pode significar mudança na documentação.

Não necessariamente toda alteração muda todo documento.

Mas toda alteração deveria provocar a pergunta:

Quais informações precisam ser atualizadas por causa desta mudança?


🔗 CAPÍTULO 5 — UMA ALTERAÇÃO COBOL NUNCA ESTÁ SOZINHA

O iniciante frequentemente imagina:

PROGRAMA COBOL

Mas sistemas corporativos são ecossistemas.

Uma alteração pode atingir:

REQUISITO
   │
   ├── COBOL
   ├── COPYBOOK
   ├── JCL
   ├── PROC
   ├── VSAM
   ├── Db2
   ├── CICS
   ├── MQ
   ├── API
   ├── batch
   ├── procedimento operacional
   ├── troubleshooting
   └── manual do usuário

Imagine aumentar um campo:

05 CLIENTE-ID PIC 9(06).

para:

05 CLIENTE-ID PIC 9(08).

Parece simples.

Mas Myne pergunta:

— O copybook compartilhado mudou?

— Sim.

— Arquivos VSAM?

— Talvez.

— Layout de interface?

— Sim.

— Programa consumidor?

— Também.

— Documentação?

Silêncio novamente.

Essa é a essência da análise de impacto.

Documentação não está fora do sistema.

Ela faz parte do conjunto de artefatos que descrevem o sistema.


🧙 CAPÍTULO 6 — MYNE DESCOBRE CONFIGURATION MANAGEMENT

Chegamos a um conceito importante para quem está começando no mainframe:

Configuration Management.

Simplificando bastante, Configuration Management procura responder perguntas como:

O que existe?
Qual versão existe?
Qual versão está em produção?
Quem alterou?
Quando alterou?
Por que alterou?
O que depende disso?
Qual era a configuração anterior?

Você provavelmente já percebeu que isso não interessa somente ao código.

Imagine:

RUNBOOK-PAGAMENTOS

Versão: 4.7
Sistema: PAY001
Owner: Payments Operations
Aprovador: Production Control
Última revisão: 23/09/2026
Próxima revisão: 23/03/2027
Change: CHG-98472
Status: APPROVED

Agora temos algo auditável.

Podemos perguntar:

Qual procedimento estava válido em 14 de março?

E recuperar aquela versão.

Essa capacidade é essencial.


💀 CAPÍTULO 7 — ÀS 03:17, A DOCUMENTAÇÃO VIRA PRODUÇÃO

03:17.

Sim, jovem padawan.

Você encontrou o easter egg.

O telefone toca.

INCIDENTE CRÍTICO
SISTEMA DE PAGAMENTOS

O operador consulta o procedimento.

1. Localizar JOB PAYR001.
2. Cancelar execução.
3. Executar PAYREC01.
4. Verificar mensagem PAY003I.

Ele está prestes a executar o passo 3 quando alguém grita:

— NÃO EXECUTA!

— Por quê?

— PAYREC01 foi aposentado.

— Quando?

— Ano passado.

— O procedimento manda executar.

Silêncio.

A documentação está oficialmente publicada.

Mas descreve um sistema que já não existe.

Temos então duas verdades:

VERDADE EXECUTÁVEL
        ≠
VERDADE DOCUMENTADA

Esse fenômeno poderia ser chamado de documentation drift ou deriva documental.

E aqui aparece uma conclusão contraintuitiva:

documentação errada pode ser pior que documentação inexistente.

Se não houver documentação, o operador sabe que precisa investigar.

Quando existe um procedimento aparentemente oficial, ele pode confiar nele.


🧪 CAPÍTULO 8 — DOCUMENTAÇÃO TAMBÉM PRECISA SER TESTADA

Essa ideia é extraordinariamente importante.

Considere:

1. Entre no SDSF.
2. Localize o job.
3. Execute comando X.
4. Confirme mensagem Y.
5. Reinicie componente Z.

Um especialista lê e afirma:

— Perfeito.

Mas entregue isso a alguém que nunca executou o procedimento.

Ele pergunta:

— Em qual painel?

— Como localizo o job?

— Qual comando?

— Onde aparece Y?

— E se Y não aparecer?

Descobrimos cinco buracos em trinta segundos.

Portanto, documentação operacional pode possuir algo parecido com teste funcional.

Uma pessoa representativa do público-alvo tenta realizar a tarefa utilizando somente as instruções.

Isso revela:

  • passos ausentes;

  • pressupostos ocultos;

  • terminologia inadequada;

  • ambiguidades;

  • comandos errados;

  • dependências não documentadas.

Myne aprovaria.

Não basta imprimir o livro.

Precisamos verificar se o leitor consegue utilizá-lo.


📚 CAPÍTULO 9 — MAIS DOCUMENTAÇÃO NÃO SIGNIFICA MELHOR DOCUMENTAÇÃO

Existe outra pergunta antiga:

Quanto devemos documentar?

Resposta errada:

Tudo.

Outra resposta errada:

O mínimo possível.

O objetivo é:

DOCUMENTAÇÃO NECESSÁRIA
        +
CORRETA
        +
ATUAL
        +
ENCONTRÁVEL
        +
COMPREENSÍVEL
        +
ADEQUADA À TAREFA

Um manual de 900 páginas pode ser praticamente inútil durante um incidente.

O operador talvez precise de duas páginas.

Diferentes necessidades exigem diferentes documentos:

NecessidadeInformação
compreender arquiteturaArchitecture Overview
desenvolverDeveloper Guide
operarRunbook
investigar falhaTroubleshooting Guide
integrarInterface/API Specification
recuperar desastreDisaster Recovery Procedure
utilizar aplicaçãoUser Guide
modificarDesign/Change Documentation
aprender sistemaOnboarding Guide
auditarevidências e histórico

A antiga ideia de colocar tudo no gigantesco Manual do Sistema frequentemente cria documentos impossíveis de consumir.


🗺️ CAPÍTULO 10 — DOCUMENTAÇÃO PRECISA SER ENCONTRÁVEL

Myne finalmente recebe uma boa notícia.

— Temos documentação!

— Onde?

— Share.

— Qual?

— Não lembro.

— Nome?

— Alguma coisa como PAY...

Depois de vinte minutos:

\\server\departamento\projetos\old\sistemas\pagamentos\
documentacao\backup\antigo\

Myne quase desmaia.

Informação que existe mas não pode ser encontrada possui valor operacional próximo de zero.

Portanto, governança documental envolve também:

  • taxonomia;

  • pesquisa;

  • nomes consistentes;

  • metadados;

  • owners;

  • classificação;

  • links;

  • relacionamentos;

  • controle de versão.

Bibliotecas descobriram isso séculos atrás.

Não basta possuir livros.

Precisamos saber onde eles estão e como encontrá-los.


🏛️ CAPÍTULO 11 — CENTRALIZAR OU DESCENTRALIZAR?

O problema já existia décadas atrás.

Deveríamos possuir um departamento central de documentação?

Ou documentadores dentro das equipes?

Centralizado

          DOCUMENTAÇÃO
               │
     ┌─────────┼─────────┐
     ↓         ↓         ↓
 SISTEMA A  SISTEMA B  SISTEMA C

Excelente para:

  • padrões;

  • qualidade;

  • independência;

  • governança;

  • consistência.

Mas pode ficar distante da tecnologia.

Descentralizado

TIME A → documentação A
TIME B → documentação B
TIME C → documentação C

Excelente proximidade.

Mas pode produzir três dialetos diferentes.

Uma solução interessante é o modelo federado:

          GOVERNANÇA CENTRAL
                 │
       padrões e ferramentas
                 │
       ┌─────────┼─────────┐
       ↓         ↓         ↓
     TIME A    TIME B    TIME C
       │         │         │
     OWNER     OWNER     OWNER

O centro define regras.

As equipes preservam conhecimento local.


👑 CAPÍTULO 12 — TODO DOCUMENTO PRECISA DE UM DONO

Uma regra simples evita enorme quantidade de caos:

todo documento relevante deve possuir owner.

Owner não significa necessariamente autor.

O owner responde pela validade.

Pense assim:

DOCUMENTO
   ↓
OWNER
   ↓
REVISÃO
   ↓
APROVAÇÃO
   ↓
PUBLICAÇÃO
   ↓
USO
   ↓
NOVA REVISÃO
   ↓
ARQUIVAMENTO

Documento sem proprietário tende a virar órfão.

E órfãos digitais envelhecem silenciosamente.


🧹 CAPÍTULO 13 — DOCUMENTO OBSOLETO PRECISA MORRER

Esse ponto é pouco discutido.

Criar documentação é importante.

Mas aposentar documentação também é.

Imagine encontrar:

RUNBOOK-PAY-2019
RUNBOOK-PAY-2021
RUNBOOK-PAY-NOVO
RUNBOOK-PAY-FINAL
RUNBOOK-PAY-ATUAL

Qual é válido?

Se ninguém souber, temos risco operacional.

Um processo maduro deveria permitir estados como:

DRAFT
REVIEW
APPROVED
PUBLISHED
SUPERSEDED
ARCHIVED

Assim sabemos que determinado documento existe historicamente, mas não deve mais orientar operações atuais.

Myne chamaria isso de diferença entre:

arquivo histórico e livro de uso corrente.


💳 CAPÍTULO 14 — DÍVIDA DOCUMENTAL

Programadores conhecem Technical Debt.

Mas existe outra dívida:

Documentation Debt.

Toda mudança não refletida na documentação cria um pequeno débito.

No começo ninguém percebe.

Mudança 1 → documento quase correto
Mudança 2 → pequeno erro
Mudança 3 → faltam dois procedimentos
Mudança 4 → diagrama incorreto
Mudança 5 → ninguém confia mais

Finalmente acontece algo curioso:

“Não consulte a Wiki porque está desatualizada.”

Pronto.

A organização perdeu confiança em seu próprio repositório de conhecimento.

Podemos imaginar:

Documentation Debt ↑

MTTR ↑
Onboarding ↑
Dependência de especialistas ↑
Retrabalho ↑
Risco operacional ↑
Risco de auditoria ↑

O custo economizado ontem reaparece com juros.


🔍 CAPÍTULO 15 — ENTRA O AUDITOR

Agora o auditor chega.

Um auditor fraco pergunta:

— Vocês possuem documentação?

A equipe mostra cinquenta PDFs.

Check.

Auditor satisfeito.

Myne não.

Um auditor melhor pergunta:

“Mostre uma alteração recente em produção.”

Escolhemos:

CHG-98472

Agora reconstruímos:

REQUISITO
    ↓
ANÁLISE
    ↓
CHANGE
    ↓
ALTERAÇÃO COBOL
    ↓
TESTE
    ↓
APROVAÇÃO
    ↓
DEPLOY
    ↓
DOCUMENTAÇÃO
    ↓
COMUNICAÇÃO

Depois fazemos o contrário.

Escolhemos um programa em produção:

PAYB0031

E perguntamos:

Qual versão?
Qual change colocou isso aqui?
Quem aprovou?
Quais testes existem?
Qual requisito originou?
Qual documentação foi atualizada?

Isso é rastreabilidade.

Não estamos procurando papel.

Estamos procurando evidência de controle.


⚔️ CAPÍTULO 16 — O AUDITOR PROCURA A EMPRESA REAL

Existe uma diferença fundamental entre:

PROCESSO DOCUMENTADO

e:

PROCESSO REAL

O manual diz:

Em incidentes críticos consultar RUNBOOK-PAY.

O auditor entrevista operadores.

— O que você faz quando PAY cai?

— Chamo o Zé.

— E o runbook?

— Ah... aquilo está velho.

Bingo.

Encontramos uma diferença entre governança formal e comportamento operacional.

A empresa pensa que possui:

INCIDENTE
   ↓
RUNBOOK
   ↓
RESOLUÇÃO

Na realidade possui:

INCIDENTE
   ↓
WhatsApp
   ↓
"CHAMA O ZÉ"

Zé virou middleware humano.

E não possui redundância.


🤖 CAPÍTULO 17 — MYNE CONHECE A INTELIGÊNCIA ARTIFICIAL

Então chega 2026.

Myne encontra uma máquina extraordinária.

Ela recebe:

  • COBOL;

  • JCL;

  • copybooks;

  • diagramas;

  • tickets;

  • commits;

  • logs.

E produz explicações.

— Ela escreve livros?!

Quase.

IA generativa pode ajudar enormemente na documentação.

Por exemplo, pode transformar:

       EVALUATE WS-STATUS
          WHEN 'A'
             PERFORM 1000-ATIVO
          WHEN 'B'
             PERFORM 2000-BLOQUEADO
          WHEN OTHER
             PERFORM 9000-ERRO
       END-EVALUATE.

em uma explicação preliminar.

Pode ainda:

  • resumir código;

  • explicar campos;

  • gerar diagramas preliminares;

  • converter tickets em release notes;

  • comparar versões;

  • identificar documentação possivelmente afetada;

  • criar perguntas para revisão;

  • produzir rascunhos de runbooks.

Fantástico.

Mas existe uma armadilha gigantesca.


☠️ CAPÍTULO 18 — IA PODE DOCUMENTAR PERFEITAMENTE UMA COISA ERRADA

Imagine a IA afirmar:

“O campo E representa cliente empresarial.”

Texto bonito.

Gramática impecável.

Completamente errado.

Na verdade:

E = CLIENTE ESPECIAL

Esse é um novo tipo de risco.

Antigamente tínhamos documentação ruim obviamente ruim.

Agora podemos possuir documentação errada extremamente convincente.

Portanto:

IA
 ↓
RASCUNHO
 ↓
SME TÉCNICO
 ↓
USUÁRIO
 ↓
VALIDAÇÃO
 ↓
APROVAÇÃO
 ↓
PUBLICAÇÃO

Nunca:

IA
 ↓
PRODUÇÃO

A inteligência artificial reduz o custo de produção.

Ela não transfere responsabilidade pela verdade.


🧰 CAPÍTULO 19 — DOCUMENTATION AS CODE

Agora Myne encontra Git.

E quase pede Ferdinand em casamento novamente.

Porque finalmente os livros possuem histórico automático.

Podemos organizar:

docs/
├── architecture/
├── development/
├── operations/
├── troubleshooting/
├── interfaces/
└── security/

Uma alteração começa:

git checkout -b CHG-98472

O programador altera:

src/PAYB0031.cbl

e também:

docs/operations/payment-runbook.md

Então:

CODE
  +
DOC
  ↓
PULL REQUEST
  ↓
REVIEW
  ↓
PIPELINE
  ↓
RELEASE

Isso é poderoso porque aproxima documentação do mesmo fluxo utilizado pelo software.

Temos:

  • versionamento;

  • histórico;

  • autoria;

  • comparação;

  • revisão;

  • aprovação;

  • automação.

Código e conhecimento começam a viajar juntos.


🧪 CAPÍTULO 20 — UM PASSO A PASSO PARA O PROGRAMADOR COBOL

Você recebeu uma alteração.

Não pense apenas:

“Qual linha COBOL vou mudar?”

Faça algo parecido com isto.

Passo 1 — descubra o motivo

Pergunte:

Qual problema estamos resolvendo?

Passo 2 — descubra o impacto

Liste:

COBOL?
COPYBOOK?
JCL?
Db2?
VSAM?
CICS?
MQ?
API?
batch?
usuário?
operação?

Passo 3 — localize documentação relacionada

Procure:

Architecture
Developer Guide
Runbook
Interface Specification
User Guide
Troubleshooting

Passo 4 — altere código e conhecimento juntos

Não espere três meses.

Passo 5 — teste ambos

O programa funciona?

A instrução também?

Passo 6 — peça revisão

Técnico revisa tecnologia.

Usuário revisa significado.

Operação revisa execução.

Passo 7 — preserve rastreabilidade

Relacione:

REQUISITO → CHANGE → CÓDIGO → TESTE → DOCUMENTAÇÃO

Passo 8 — retire informação obsoleta

Não deixe armadilhas históricas disponíveis como instrução atual.


🧙‍♀️ CAPÍTULO 21 — MYNE CRIA AS DEZ REGRAS DA BIBLIOTECA DO MAINFRAME

Depois de observar aquela organização, Myne escreve:

I. Código não substitui contexto.

II. Toda mudança deve avaliar impacto documental.

III. Todo documento crítico precisa de owner.

IV. Documentação precisa possuir versão.

V. Informação precisa ser encontrável.

VI. Procedimentos críticos precisam ser testados.

VII. Documento obsoleto precisa ser claramente aposentado.

VIII. IA pode escrever rascunhos; humanos continuam responsáveis pela verdade.

IX. Conhecimento crítico não pode existir somente na cabeça de uma pessoa.

X. Documentação faz parte do produto.

Ferdinand lê.

Fica em silêncio.

— Onze regras seriam mais completas.

Myne fecha o livro.

— Dez ficam melhores num slide.


☕ EPÍLOGO — O ÚLTIMO LIVRO DE CARLOS

Alguns meses depois, Carlos anunciou aposentadoria.

Ninguém entrou em pânico.

Durante meses, a equipe havia transformado seu conhecimento em:

Architecture Guides
Runbooks
Troubleshooting Guides
Decision Records
Diagramas
README
Procedimentos
Histórico de mudanças

Mais importante: outras pessoas haviam utilizado e testado aquele conhecimento.

No último dia, Carlos deixou sobre a mesa uma pequena folha.

Myne encontrou.

Nela estava escrito:

03:17

Se PAYB0031 apresentar S0C7 depois do fechamento,
não reinicie imediatamente.

Verifique primeiro o arquivo PAY.IN.TRANS.

E não acredite no procedimento de 2019.

Myne sorriu.

Digitalizou a informação.

Criou um ticket.

Atualizou o troubleshooting.

Relacionou ao sistema.

Mandou revisar.

E destruiu a folha.

Porque finalmente aquela empresa havia compreendido algo que bibliotecários sabem há séculos:

conhecimento que não pode ser encontrado não está verdadeiramente disponível.

Conhecimento que não pode ser verificado não é confiável.

Conhecimento que depende de uma única pessoa não pertence realmente à organização.

E conhecimento que não acompanha a evolução do sistema lentamente se transforma em ficção.

Para um programador COBOL iniciante, talvez essa seja uma das lições mais importantes da carreira.

Você não herdará apenas programas.

Herdará decisões tomadas por pessoas que talvez nunca conheça.

Encontrará campos criados antes de você nascer.

COPYBOOKs compartilhados por dezenas de aplicações.

JCLs cujo comentário mais recente terá quinze anos.

Regras de negócio que sobreviveram a três presidentes da empresa, quatro arquiteturas e seis gerações de programadores.

Um dia alguém também encontrará o seu código.

E encontrará algo como:

      *---------------------------------------------------------*
      * CHG-98472 - 23/09/2026                                 *
      * ALTERADA REGRA DE CLIENTE ESPECIAL.                    *
      * MOTIVO: NOVA REGRA CONTRATUAL.                          *
      * DOCUMENTACAO: DOC/PAYMENTS/RULES-CLIENTE-ESPECIAL.MD    *
      *---------------------------------------------------------*

Essa pessoa talvez nunca saiba seu nome.

Mas saberá por que aquilo existe.

E existe algo profundamente bonito nisso.

Porque mainframes são máquinas construídas para sobreviver ao tempo.

COBOL também.

Mas sistemas de cinquenta anos não sobrevivem apenas porque o hardware continua funcionando.

Eles sobrevivem porque sucessivas gerações de profissionais conseguem receber, compreender, modificar e transmitir conhecimento.

Somos temporários.

O sistema pode continuar.

O código fica.

As decisões ficam.

A documentação deveria ficar também.

E talvez Myne, olhando para milhões de linhas COBOL preservadas durante décadas, finalmente percebesse que havia encontrado uma biblioteca muito diferente daquela que sempre sonhou construir.

Uma biblioteca na qual alguns livros são executáveis.

E onde esquecer de atualizar uma página pode, às 03:17 da manhã, derrubar produção.

Bem-vindo à Biblioteca do Mainframe.

Seu próximo commit também é uma página da história.

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