Translate

segunda-feira, 6 de abril de 2020

O Caso TSB Bank: Como uma Migração de Mainframe Destruiu a Reputação de um Banco

Bellacosa Mainframe e a desastrosa migracao do TSB Bank

☕ Um Café no Bellacosa Mainframe — Edição Especial

O Caso TSB Bank: Como uma Migração de Mainframe Destruiu a Reputação de um Banco

Imagine a seguinte cena.

É madrugada em Londres.

As luzes de um data center permanecem acesas enquanto milhões de pessoas dormem. Nos corredores refrigerados, servidores trabalham, discos giram, mensagens atravessam redes, transações são confirmadas e programas executam milhões de instruções sem que ninguém perceba.

Do lado de fora, tudo parece normal.

Dentro da sala de controle, porém, técnicos acompanham monitores, gráficos, indicadores de capacidade e listas intermináveis de tarefas.

Naquela noite, o TSB Bank está realizando uma das operações mais delicadas que uma instituição financeira pode tentar:

migrar todo o seu sistema bancário para uma nova plataforma.

Milhões de contas.

Milhões de clientes.

Pagamentos.

Cartões.

Empréstimos.

Transferências.

Saldos.

Débitos automáticos.

Históricos financeiros.

A operação deveria terminar com uma mensagem simples:

migração concluída com sucesso.

Mas, quando os sistemas voltaram ao ar, o que apareceu foi algo muito diferente.

Clientes sem acesso.

Aplicativos travados.

Pagamentos desaparecidos.

Contas exibindo informações incorretas.

Pessoas enxergando dados de outros clientes.

Chamadas explodindo nos call centers.

Agências lotadas.

Fraudadores aproveitando o caos.

E uma pergunta começou a circular pelos corredores da tecnologia bancária:

O que realmente aconteceu com o TSB Bank?

Coloque o café ao lado do teclado, abra o terminal 3270 imaginário e prepare o bloco de evidências.

Hoje, o Bellacosa Mainframe vai entrar na cena do crime digital.



Cena 1 — O banco que nasceu dependente

Para compreender o colapso do TSB, precisamos voltar alguns anos.

O TSB nasceu novamente como banco independente depois de uma reorganização do setor bancário britânico.

Embora tivesse marca própria, clientes próprios e agências próprias, sua infraestrutura tecnológica ainda dependia fortemente do Lloyds Banking Group.

Era como se o TSB tivesse recebido as chaves de uma casa, mas toda a eletricidade, a água, os encanamentos e a rede de segurança continuassem pertencendo ao antigo proprietário.

O banco utilizava sistemas hospedados e operados pela infraestrutura do Lloyds.

Ali estavam:

  • o core bancário;

  • os registros de clientes;

  • as contas;

  • os pagamentos;

  • os canais digitais;

  • os sistemas de cartão;

  • os serviços de compensação;

  • os processos noturnos;

  • os relatórios regulatórios.

Para um programador COBOL iniciante, podemos comparar essa situação a um grande ambiente compartilhado.

Imagine que uma empresa possui milhares de programas COBOL.

Esses programas usam:

  • arquivos VSAM;

  • tabelas Db2;

  • transações CICS;

  • filas MQ;

  • jobs em JES2;

  • regras RACF;

  • procedures catalogadas;

  • datasets GDG;

  • rotinas assembler;

  • módulos de comunicação.

Agora imagine que outra empresa deseja sair desse ambiente.

Não basta copiar um programa COBOL.

É necessário separar todo um ecossistema.

Esse era o desafio do TSB.




Cena 2 — A chegada do Banco Sabadell

Em 2015, o banco espanhol Sabadell comprou o TSB.

O Sabadell já possuía uma plataforma bancária própria chamada Proteo.

A lógica de negócio parecia convincente.

Por que continuar pagando para usar os sistemas do Lloyds se o novo proprietário já possuía uma plataforma bancária?

A promessa era reduzir custos, aumentar o controle e integrar o TSB ao modelo tecnológico do grupo espanhol.

No papel, a equação parecia perfeita.

Antigo ambiente:

  • dependência do Lloyds;

  • custos elevados;

  • contratos complexos;

  • pouca autonomia.

Novo ambiente:

  • plataforma própria;

  • maior controle;

  • redução de custos;

  • sinergia com o grupo;

  • liberdade tecnológica.

O problema é que apresentações de PowerPoint não processam transações bancárias.

Planilhas de economia não executam batch.

E uma seta colorida ligando “sistema antigo” a “sistema novo” não representa a verdadeira complexidade de uma migração de core bancário.

Em um diagrama executivo, a migração pode parecer assim:

Lloyds → Proteo4UK

Na vida real, ela se parece mais com isto:

Clientes
   ↓
Internet Banking
   ↓
Aplicativo móvel
   ↓
APIs
   ↓
Camada de autenticação
   ↓
Core bancário
   ↓
Contas / pagamentos / cartões / empréstimos
   ↓
Db2 / VSAM / arquivos / filas
   ↓
Compensação bancária
   ↓
Reguladores
   ↓
Sistemas externos

E isso ainda é uma simplificação.



Cena 3 — A vítima não era o mainframe

Quando um projeto desse tipo falha, é comum surgir uma narrativa simplificada:

“O sistema legado era velho.”

Ou:

“O problema era o mainframe.”

Essa conclusão é tentadora, mas não descreve corretamente o caso TSB.

O mainframe não era a vítima que precisava ser eliminada.

Também não era o criminoso.

Era parte de um ambiente estável que suportava operações bancárias críticas.

A motivação da migração estava ligada principalmente à independência tecnológica e à redução dos custos associados ao uso da infraestrutura do Lloyds.

Em outras palavras:

o TSB não precisava migrar porque o mainframe havia parado de funcionar.

Precisava migrar porque desejava deixar de depender de uma infraestrutura controlada por outra instituição.

Essa diferença é fundamental.

Em projetos de modernização, existem pelo menos quatro motivos comuns para migrar:

  1. reduzir custos;

  2. eliminar dependências;

  3. acelerar mudanças;

  4. substituir tecnologia sem suporte.

No caso do TSB, a independência e as sinergias econômicas tiveram enorme peso.

O erro começa quando uma necessidade empresarial real é traduzida como se fosse apenas uma troca de plataforma.



Cena 4 — O projeto Proteo4UK

A versão adaptada da plataforma do Sabadell para o mercado britânico ficou conhecida como Proteo4UK.

Ela precisava atender às particularidades do TSB e do sistema financeiro do Reino Unido.

Isso incluía:

  • regras bancárias locais;

  • produtos financeiros específicos;

  • pagamentos britânicos;

  • regulamentações;

  • segurança;

  • auditoria;

  • proteção de dados;

  • interfaces com terceiros;

  • requisitos operacionais;

  • volumes de transações.

Não era simplesmente instalar um software espanhol em servidores britânicos.

Era necessário adaptar o sistema, integrar componentes, migrar informações e garantir que tudo funcionasse sob carga real.

Aqui aparece uma lição importante para o programador COBOL iniciante:

Migrar dados não significa migrar comportamento


Você pode copiar corretamente todos os registros de um arquivo.

Mesmo assim, o novo sistema pode falhar.

Considere um arquivo VSAM de contas:

NUMERO-CONTA
NOME-CLIENTE
SALDO
LIMITE
STATUS

A migração pode transportar os campos corretamente.

Mas o sistema depende de muito mais:

  • regras de cálculo;

  • validações;

  • autorizações;

  • locks;

  • commits;

  • filas;

  • timeouts;

  • concorrência;

  • autenticação;

  • capacidade;

  • monitoramento;

  • recuperação;

  • integrações externas.

O dado pode chegar inteiro.

O serviço ao redor dele pode entrar em colapso.

Foi exatamente essa distinção que se tornou central no caso TSB.



Cena 5 — Os testes

O projeto passou por testes, ensaios e simulações.

Foram realizados ciclos preparatórios e migrações de teste.

Também houve um piloto envolvendo funcionários.

Aparentemente, havia evidências suficientes para autorizar a entrada em produção.

Mas testes não são mágicos.

Eles só demonstram aquilo que realmente foi testado.

Se o cenário de teste possui dez mil usuários e a produção recebe um milhão, o resultado pode ser completamente diferente.

Se o ambiente de teste não reproduz fielmente o ambiente de produção, surgem as chamadas diferenças de configuração.

Exemplos:

  • memória diferente;

  • rede diferente;

  • parâmetros diferentes;

  • versões de software diferentes;

  • balanceadores diferentes;

  • regras de firewall diferentes;

  • capacidade de banco diferente;

  • limites de sessão diferentes.

Um sistema pode funcionar perfeitamente no teste e falhar em produção.

Não porque o teste foi inútil, mas porque o teste não reproduziu a realidade.

No universo mainframe, isso equivaleria a testar um batch com cem mil registros e colocar em produção com quinhentos milhões.

O programa COBOL pode estar logicamente correto.

Ainda assim, o job pode estourar janela batch, consumir work files, gerar contenção no Db2 ou causar filas em outras aplicações.



Cena 6 — O fim de semana da migração

O grande corte ocorreu entre os dias 20 e 22 de abril de 2018.

O plano era retirar temporariamente os serviços, concluir a transferência e restaurar o acesso dos clientes.

Esse tipo de operação é chamado de cutover.

O cutover representa o momento em que o sistema novo assume a responsabilidade do sistema antigo.

Em uma migração bancária, o cutover pode incluir:

  1. interromper alterações no sistema antigo;

  2. extrair os dados finais;

  3. transformar os registros;

  4. carregar o novo ambiente;

  5. reconciliar saldos;

  6. validar totais;

  7. ativar interfaces;

  8. liberar canais;

  9. monitorar a operação.

Parece simples quando escrito em nove linhas.

Na prática, cada linha pode conter milhares de tarefas.

Uma inconsistência em qualquer etapa pode comprometer o conjunto.

Quando os serviços começaram a voltar, surgiram problemas graves.

Clientes relataram:

  • falhas de login;

  • lentidão;

  • indisponibilidade;

  • erros de saldo;

  • operações não concluídas;

  • visualização de informações de terceiros.

O último item elevou o incidente a outro nível.

Uma indisponibilidade é grave.

Uma possível exposição de dados é gravíssima.

Nesse momento, a migração deixou de ser apenas um problema técnico.

Passou a ser também:

  • problema de segurança;

  • problema regulatório;

  • problema de reputação;

  • problema político;

  • problema de confiança.



Cena 7 — O efeito avalanche

Quando um sistema bancário falha, o volume de acessos não diminui.

Ele aumenta.

O cliente tenta entrar uma vez.

Falha.

Tenta novamente.

Falha.

Fecha o aplicativo.

Abre outra vez.

Tenta pelo navegador.

Tenta pelo celular.

Liga para o banco.

Vai até uma agência.

Essa repetição cria uma tempestade de carga.

Vamos imaginar um cenário simples.

Em condições normais:

100 mil clientes fazem 1 tentativa
Total: 100 mil requisições

Durante a crise:

100 mil clientes fazem 10 tentativas
Total: 1 milhão de requisições

O sistema já está degradado.

A pressão aumenta.

Mais clientes encontram erros.

Eles tentam novamente.

A fila cresce.

O tempo de resposta aumenta.

Os balanceadores acumulam conexões.

Os bancos recebem mais consultas.

Os logs explodem.

Os call centers ficam congestionados.

Temos então um ciclo de retroalimentação:

Erro
 ↓
Nova tentativa
 ↓
Mais carga
 ↓
Mais lentidão
 ↓
Mais erro
 ↓
Mais tentativas

Isso é parecido com uma cena de CSI em que cada nova pegada pisa sobre as evidências anteriores.

Quanto mais pessoas entram na cena, mais difícil fica descobrir a origem do problema.



Cena 8 — O que realmente falhou

As investigações posteriores apontaram um conjunto de problemas, não uma única causa.

Esse é um detalhe importante.

Grandes desastres tecnológicos raramente possuem um único erro.

Normalmente são o resultado de várias camadas de falha alinhadas.

Entre os fatores discutidos estavam:

  • diferenças entre ambientes;

  • falhas de configuração;

  • problemas de software;

  • capacidade inadequada;

  • dificuldades operacionais;

  • governança insuficiente;

  • supervisão inadequada de fornecedores;

  • cronograma agressivo;

  • confiança excessiva nos indicadores de prontidão.

O sistema não caiu porque alguém esqueceu um ponto final no COBOL.

Também não caiu por causa de uma única máquina defeituosa.

Foi um colapso sistêmico.

Esse conceito é essencial.

Falha local

Um componente quebra, mas o restante continua funcionando.

Exemplo:

um servidor de aplicação falha e o load balancer direciona tráfego para outro.

Falha sistêmica

Vários componentes, processos e decisões se combinam, impedindo a recuperação rápida.

Exemplo:

o sistema apresenta lentidão, o monitoramento é insuficiente, o call center entra em colapso, a comunicação falha e a carga aumenta continuamente.

O caso TSB pertence à segunda categoria.


Cena 9 — A empresa de consultoria e os fornecedores

Projetos dessa escala envolvem muitas empresas.

O grupo Sabadell utilizava sua estrutura tecnológica e empresas associadas para construir e operar a plataforma.

A entidade de tecnologia do grupo, conhecida como Sabis, teve papel importante na implementação.

Também participaram fornecedores e consultorias especializadas.

Antes da aquisição, houve aconselhamento estratégico sobre os caminhos possíveis para a tecnologia do TSB.

Uma alternativa mencionada era permanecer por mais tempo na plataforma Lloyds e, posteriormente, utilizar uma versão independente baseada na tecnologia existente.

Essa abordagem poderia reduzir alguns riscos técnicos, pois preservaria maior compatibilidade com os sistemas já utilizados.

No entanto, a estratégia escolhida priorizou a migração para a plataforma do Sabadell.

Aqui temos outra lição.

O melhor desenho técnico nem sempre vence

Projetos empresariais são decididos por uma combinação de:

  • custos;

  • prazo;

  • estratégia;

  • política interna;

  • contratos;

  • tecnologia;

  • pressão de investidores;

  • expectativa de retorno.

Um arquiteto pode recomendar a opção mais segura.

A diretoria pode escolher a opção mais econômica.

Uma consultoria pode apresentar três caminhos.

O conselho pode selecionar o mais rápido.

Isso não significa que os executivos sejam vilões.

Significa que risco técnico e pressão comercial precisam estar equilibrados.

Quando um deles domina completamente o outro, a probabilidade de desastre aumenta.


Cena 10 — A entrada da IBM

Quando a crise já estava instalada, especialistas da IBM foram chamados para auxiliar na estabilização.

É importante deixar isso claro:

a IBM não foi a empresa responsável pela migração original.

Ela entrou posteriormente para ajudar na recuperação.

Em uma analogia com CSI: New York, a IBM chegou quando a fita amarela já estava colocada ao redor da cena.

O objetivo era:

  • investigar o ambiente;

  • localizar gargalos;

  • identificar falhas;

  • apoiar a estabilização;

  • restaurar serviços;

  • melhorar a capacidade;

  • reduzir a incidência de erros.

Em grandes incidentes, empresas externas podem ser chamadas porque trazem:

  • experiência especializada;

  • visão independente;

  • ferramentas de diagnóstico;

  • equipes adicionais;

  • conhecimento de infraestrutura crítica.

Isso é comum em desastres de TI.

Quando a própria equipe está há dias tentando resolver o problema, o cansaço e a pressão podem dificultar a análise.

Uma equipe externa chega com olhar novo.


Cena 11 — O impacto humano

Em tecnologia, é fácil falar apenas de servidores e sistemas.

Mas cada registro representa uma pessoa.

Um pagamento atrasado pode significar:

  • aluguel não pago;

  • conta de energia vencida;

  • compra recusada;

  • salário inacessível;

  • empresa sem pagar funcionários;

  • viagem cancelada;

  • dívida gerada;

  • constrangimento público.

O incidente afetou milhões de clientes.

Alguns ficaram sem acessar serviços durante períodos prolongados.

Outros enfrentaram operações duplicadas, falhas de pagamento e dificuldades para falar com o banco.

Também houve aumento das tentativas de fraude.

Golpistas aproveitam crises.

Eles ligam para clientes dizendo:

“Somos do banco e precisamos confirmar seus dados por causa da falha do sistema.”

O cliente, assustado e sem acesso à conta, pode acreditar.

Assim, um incidente operacional transforma-se em risco de segurança.


Cena 12 — O prejuízo

O custo do desastre foi muito maior do que o valor de servidores ou programas.

O TSB teve despesas relacionadas a:

  • compensações;

  • recuperação técnica;

  • reforço de atendimento;

  • contratação de especialistas;

  • investigações;

  • medidas regulatórias;

  • perda de clientes;

  • impacto reputacional.

Centenas de milhões de libras foram associadas ao episódio entre custos diretos e efeitos comerciais.

Existe uma diferença entre custo contábil e custo real.

Custo contábil

É o que aparece claramente nos relatórios:

  • consultorias;

  • multas;

  • compensações;

  • infraestrutura;

  • despesas jurídicas.

Custo real

Inclui também:

  • clientes perdidos;

  • confiança destruída;

  • marca enfraquecida;

  • oportunidades comerciais perdidas;

  • queda na satisfação;

  • dificuldade de atrair novos clientes;

  • desgaste dos funcionários.

O segundo é muito mais difícil de medir.


Cena 13 — A multa

Em 2022, os reguladores britânicos aplicaram multas que totalizaram aproximadamente 48,65 milhões de libras.

As sanções estavam relacionadas às falhas na gestão dos riscos operacionais e na execução da migração.

A multa mostra que o incidente não foi tratado apenas como “um problema técnico”.

Para o regulador, o banco tinha responsabilidade de garantir:

  • continuidade;

  • resiliência;

  • governança;

  • supervisão;

  • proteção dos clientes;

  • gestão adequada do risco.

Em setores críticos, a frase “o sistema deu erro” não encerra a discussão.

Alguém aprovou o projeto.

Alguém definiu o cronograma.

Alguém avaliou os riscos.

Alguém autorizou o go-live.

Alguém precisava garantir o plano de contingência.


Cena 14 — A queda do CEO

Paul Pester, então CEO do TSB, enfrentou enorme pressão pública e política.

Ele foi convocado para prestar esclarecimentos ao Parlamento britânico.

Durante as audiências, surgiram perguntas sobre:

  • prontidão;

  • comunicação;

  • testes;

  • gestão de fornecedores;

  • resposta à crise;

  • tratamento dos clientes.

Em setembro de 2018, Pester deixou o cargo.

Em grandes colapsos tecnológicos, a responsabilidade raramente termina na área de TI.

O incidente pode atingir:

  • CIO;

  • CTO;

  • COO;

  • CEO;

  • conselho;

  • fornecedores;

  • gestores de risco.

Isso acontece porque a tecnologia bancária não é apenas suporte.

Ela é o próprio banco.

Sem sistema, não existe operação.


Cena 15 — O relatório independente

Uma revisão independente foi conduzida pelo escritório Slaughter and May.

O relatório examinou as decisões, os testes, a governança e os acontecimentos ligados à migração.

Entre as críticas estavam:

  • cronograma excessivamente otimista;

  • governança insuficiente;

  • supervisão inadequada;

  • testes incapazes de reproduzir plenamente o comportamento real;

  • excesso de confiança antes da entrada em produção.

Esse relatório é valioso porque demonstra que um desastre não deve ser analisado somente pelo erro visível.

O investigador precisa perguntar:

  • por que o risco não foi detectado?

  • por que o plano não foi interrompido?

  • por que os indicadores pareciam positivos?

  • por que o rollback não resolveu?

  • por que a recuperação demorou?

  • por que a comunicação foi confusa?

É o equivalente digital de encontrar uma impressão digital e depois investigar por que a porta estava aberta.


Cena 16 — O banco que não morreu

Apesar do colapso, o TSB não quebrou.

O banco continuou operando.

A plataforma foi estabilizada.

Foram realizados investimentos em resiliência, gestão e controle tecnológico.

Com o tempo, os incidentes diminuíram e a operação voltou a níveis mais normais.

Essa parte é importante.

Um desastre tecnológico pode destruir reputação, provocar multas e derrubar executivos.

Mas não necessariamente encerra a empresa.

A recuperação exige:

  • transparência;

  • investimento;

  • revisão de processos;

  • melhoria de arquitetura;

  • reforço da governança;

  • reconstrução da confiança.

O TSB continuou existindo, mas o episódio de 2018 passou a fazer parte permanente de sua história.


O passo a passo de uma migração mais segura

Agora vamos transformar o caso em aprendizado prático.

Passo 1 — Conheça o sistema antigo

Antes de migrar, documente:

  • programas;

  • dados;

  • integrações;

  • volumes;

  • regras;

  • dependências;

  • janelas;

  • usuários;

  • controles de segurança.

No mainframe, isso pode incluir:

  • programas COBOL;

  • copybooks;

  • JCLs;

  • PROCs;

  • arquivos VSAM;

  • tabelas Db2;

  • transações CICS;

  • filas MQ;

  • regras RACF;

  • jobs noturnos;

  • interfaces externas.

Passo 2 — Descubra os comportamentos invisíveis

Muitos sistemas possuem regras que não estão documentadas.

Exemplos:

  • arquivos processados em ordem específica;

  • programa que depende de retorno não documentado;

  • job que só funciona porque outro termina antes;

  • tabela usada como controle;

  • operador que executa uma tarefa manual.

Esses detalhes são chamados, muitas vezes, de conhecimento tribal.

Passo 3 — Modele a carga real

Não teste apenas a funcionalidade.

Teste:

  • volume;

  • concorrência;

  • picos;

  • falhas;

  • retomadas;

  • lentidão;

  • duplicidade;

  • indisponibilidade de terceiros.

Passo 4 — Faça reconciliação

Depois da migração, compare:

  • número de contas;

  • saldo total;

  • número de transações;

  • registros rejeitados;

  • totais financeiros;

  • históricos;

  • produtos ativos.

Em COBOL, poderíamos imaginar:

IF TOTAL-ORIGEM NOT = TOTAL-DESTINO
    DISPLAY 'ERRO DE RECONCILIACAO'
    MOVE 12 TO RETURN-CODE
    STOP RUN
END-IF.

Em sistemas bancários, essa lógica precisa existir em escala gigantesca.

Passo 5 — Prepare rollback

Rollback não é apenas manter um backup.

É saber:

  • quando voltar;

  • como voltar;

  • quais dados podem ser perdidos;

  • como sincronizar alterações;

  • quem autoriza;

  • quanto tempo a reversão leva.

Passo 6 — Faça observabilidade

Monitore:

  • CPU;

  • memória;

  • filas;

  • erros;

  • tempo de resposta;

  • conexões;

  • locks;

  • commits;

  • falhas externas;

  • experiência do cliente.

Passo 7 — Simule o pior dia

Não teste apenas o dia normal.

Teste:

  • pagamento de salários;

  • vencimento de contas;

  • milhões de logins;

  • falha de data center;

  • ataque;

  • perda de rede;

  • lentidão do banco;

  • avalanche de retentativas.


Curiosidades da investigação

Curiosidade 1 — Os dados principais não desapareceram

O caso ficou famoso como se todas as contas tivessem sido perdidas.

Mas os dados principais foram migrados.

O colapso ocorreu principalmente na capacidade de disponibilizar e processar esses dados corretamente pelos serviços digitais.

Curiosidade 2 — O sucesso foi anunciado cedo demais

Houve comunicação comemorando a migração antes que a gravidade do problema estivesse clara.

Essa é uma lição clássica:

nunca declare vitória enquanto a produção ainda está respirando por aparelhos.

Curiosidade 3 — O incidente aumentou a atividade fraudulenta

Crises tecnológicas criam terreno fértil para engenharia social.

O criminoso não precisa invadir o mainframe.

Pode simplesmente convencer o cliente a entregar a senha.

Curiosidade 4 — O legado parecia caro até a falha ficar mais cara

O objetivo era economizar e conquistar independência.

O custo do incidente mostrou que uma plataforma estável pode parecer cara apenas até o momento em que sua substituição falha.


Easter egg do Bellacosa Mainframe

Em algum lugar do data center, durante a madrugada da migração, um velho operador de mainframe teria olhado para a tela verde e murmurado:

“No meu tempo, antes de liberar o job, a gente conferia o MAXCC.”

Talvez ninguém tenha ouvido.

Talvez o barulho dos servidores fosse alto demais.

Ou talvez o operador estivesse apenas terminando seu café.

Mas fica a homenagem aos profissionais que sabem que, em sistemas críticos, um simples:

MAXCC=00

não significa que o mundo inteiro esteja funcionando.

Significa apenas que aquele job terminou sem detectar erro.

O cliente pode estar vendo outra coisa.


Conclusão — A cena final

O caso TSB Bank não é uma história sobre tecnologia velha contra tecnologia nova.

É uma história sobre complexidade.

Sobre confiança.

Sobre pressão.

Sobre cronogramas.

Sobre governança.

Sobre a diferença entre migrar dados e migrar um banco.

O mainframe não destruiu a reputação do TSB.

A tentativa de sair de uma infraestrutura estável, combinada com falhas de planejamento, testes, capacidade, configuração, supervisão e resposta operacional, produziu uma crise de enormes proporções.

O maior ensinamento é simples:

Sistemas críticos não falham apenas por causa de código ruim. Eles falham quando tecnologia, processos, pessoas e decisões deixam de funcionar como um único organismo.

Para o programador COBOL iniciante, esse caso mostra que escrever um programa é apenas parte do trabalho.

Você também precisa compreender:

  • produção;

  • risco;

  • volume;

  • observabilidade;

  • recuperação;

  • segurança;

  • dependências;

  • impacto no cliente.

Porque, em um banco, cada byte representa dinheiro.

Cada registro representa uma pessoa.

Cada falha pode virar notícia.

E cada migração mal planejada pode transformar uma sala de servidores em uma cena de CSI.

No fim da investigação, as luzes do data center continuam acesas.

Os programas voltam a executar.

As contas reaparecem.

Os pagamentos são processados.

Mas a reputação não possui comando de restart.

Não existe:

//REPUTACAO EXEC PGM=RESTART

Ela precisa ser reconstruída lentamente.

Cliente por cliente.

Transação por transação.

Café por café.

E essa, talvez, seja a lição mais importante de todas.


domingo, 5 de abril de 2020

🗣️ Expressões Idiomáticas Japonesas: o que elas realmente querem dizer?



 ✨ Bellacosa Otaku Blog — Idiomas, Cultura & Paixões Nipônicas


🗣️ Expressões Idiomáticas Japonesas: o que elas realmente querem dizer?

Se você é fã de anime, mangá ou cultura japonesa, já deve ter percebido que muitas frases não fazem sentido quando traduzidas ao pé da letra. Isso acontece porque o japonês é cheio de expressões idiomáticas — modos de falar que refletem emoções, costumes e até a filosofia de vida do povo nipônico.

Hoje, o Bellacosa traz um mergulho divertido (e útil!) nessas expressões. Vamos descobrir o que realmente querem dizer e como usá-las — sem cair nas armadilhas da tradução literal. 🍵🇯🇵


🧩 1. 猫の手も借りたい (neko no te mo karitai)

Tradução literal: “Quero até pegar emprestada a pata de um gato.”
Significado real: Estar extremamente ocupado — tão atarefado que aceitaria ajuda até de um gato!
👉 Você verá essa expressão em mangás de comédia ou slice of life, quando alguém está atolado de trabalho.

📘 Exemplo:

「今日は忙しくて猫の手も借りたい!」
“Hoje estou tão ocupado que aceitaria até ajuda de um gato!”


🍃 2. 花より団子 (hana yori dango)

Tradução literal: “Bolinhos em vez de flores.”
Significado real: Preferir o prático ao bonito — escolher o que é útil ou prazeroso em vez do que é apenas estético.
👉 Essa expressão inspirou o famoso dorama “Hana Yori Dango”, traduzido como “Melhor Doce que Flor”, e simboliza pessoas que preferem substância a aparências.

📘 Exemplo:

“Ela é prática — definitivamente, tipo hana yori dango.”


🔥 3. 猿も木から落ちる (saru mo ki kara ochiru)

Tradução literal: “Até os macacos caem das árvores.”
Significado real: Mesmo os especialistas cometem erros.
👉 É uma maneira simpática de consolar alguém que falhou em algo.

📘 Exemplo:

“Não se preocupe, saru mo ki kara ochiru! Até os melhores erram.”


💔 4. 胸が痛い (mune ga itai)

Tradução literal: “Meu peito dói.”
Significado real: Sentir dor emocional, geralmente por empatia, tristeza ou arrependimento.
👉 Aparece em muitos animes românticos — aquele momento em que o personagem olha o amor impossível e suspira…

📘 Exemplo:

“Ver ele com outra… mune ga itai.” 💔


🌀 5. 一石二鳥 (isseki nichou)

Tradução literal: “Uma pedra, dois pássaros.”
Significado real: O nosso famoso “matar dois coelhos com uma cajadada só.”
👉 Usada tanto em situações do dia a dia quanto em estratégias de personagens inteligentes (olá, Light Yagami 👀).

📘 Exemplo:

“Se eu estudar e ainda treinar japonês ouvindo anime, isseki nichou!


🌙 6. 月とすっぽん (tsuki to suppon)

Tradução literal: “A lua e o cágado.”
Significado real: Duas coisas totalmente diferentes — como água e óleo.
👉 Uma metáfora poética e visual: a lua brilha, o cágado é opaco. Incomparáveis.

📘 Exemplo:

“Comparar esses dois animes é como tsuki to suppon!”


🍂 7. 十人十色 (juunin toiro)

Tradução literal: “Dez pessoas, dez cores.”
Significado real: Cada pessoa tem seu jeito e suas preferências — a beleza da diversidade.
👉 Muito usada em contextos de aceitação e respeito, comum em histórias de amizade ou superação.

📘 Exemplo:

“Não existe um jeito certo de viver — juunin toiro!


🎌 Curiosidade Bellacosa:

As expressões idiomáticas japonesas refletem a harmonia entre natureza, emoção e cotidiano. É por isso que tantos ditados envolvem flores, animais e estações do ano — a alma japonesa está sempre ligada ao ciclo natural da vida. 🌸


💡 Dica para otakus e estudantes de japonês:

Ao ver um anime, tente reconhecer essas expressões pelo contexto, não só pela tradução.
✨ Faça anotações, veja como os personagens usam, e repita em voz alta — ajuda a internalizar o idioma e compreender o tom emocional.


🎬 Animes onde as expressões brilham:

  • Shouwa Genroku Rakugo Shinjuu — cheio de expressões tradicionais.

  • Natsume Yuujinchou — poesia e emoção natural japonesa.

  • Barakamon — lições de vida e frases do interior do Japão.

  • Gintama — humor e trocadilhos com ditados populares.


💭 Conclusão Bellacosa:
Aprender expressões idiomáticas é como abrir uma janela para a alma japonesa.
Não é só idioma — é cultura viva, moldada por séculos de sensibilidade, humor e poesia.
E, claro… um prato cheio para quem ama mergulhar fundo nos significados por trás das palavras. 🌸

sábado, 4 de abril de 2020

JASHIN-CHAN DROPKICK' (2ª TEMPORADA) — O ANIME QUE PROVOU QUE UM SISTEMA TOTALMENTE INSTÁVEL PODE SER MAIS CONFIÁVEL

 

Bellacosa Mainframe e a segunda temporada de Jashin-chan dropkick

☕💣😈 OPERADOR, O CHANGE REQUEST DO INFERNO FOI APROVADO! O DEMÔNIO RETORNOU À PRODUÇÃO COM MAIS BUGS, MAIS META-HUMOR E UMA TAXA DE ABEND QUE AGORA É CONSIDERADA FEATURE OFICIAL!

JASHIN-CHAN DROPKICK' (2ª TEMPORADA) — O ANIME QUE PROVOU QUE UM SISTEMA TOTALMENTE INSTÁVEL PODE SER MAIS CONFIÁVEL QUE MUITOS AMBIENTES CORPORATIVOS


Identificação da Obra

Título Original: 邪神ちゃんドロップキック'
Romanização: Jashin-chan Dropkick'
Título Internacional: Dropkick on My Devil!! Dash

Baseado no mangá de: Yukiwo

Estúdio: Nomad

Direção: Hikaru Sato

Data de Estreia: Abril de 2020

Temporada: Segunda

Episódios: 11

OVAs e Extras: Diversos especiais posteriores

Gêneros:

  • Comédia

  • Sobrenatural

  • Slice of Life

  • Paródia

  • Humor Negro

  • Meta-comédia

Classificação Indicativa:

  • Aproximadamente 14 anos

  • Violência cartunesca

  • Humor ácido

  • Referências religiosas satíricas


Sinopse

Após sobreviver a incontáveis falhas críticas na primeira temporada, Jashin-chan continua presa no mundo humano.

Seu objetivo operacional permanece o mesmo:

eliminar Yurine e retornar ao Inferno.

O problema continua exatamente igual:

ela é absurdamente incompetente.

A segunda temporada não tenta reinventar a fórmula.

Pelo contrário.

Ela pega tudo que funcionou anteriormente e aumenta o volume.

Mais personagens.

Mais loucura.

Mais autorreferências.

Mais situações absurdas.

Mais destruição física da pobre demônia serpente.


Resumo da Temporada

A série continua acompanhando:

  • Jashin-chan

  • Yurine

  • Medusa

  • Pekola

  • Minos

Enquanto novos personagens ampliam o caos.

A estrutura permanece episódica.

Não existe uma grande missão.

Não existe um vilão principal.

Não existe uma jornada épica.

Existe apenas um ecossistema de personagens excêntricos gerando falhas operacionais em sequência.


Análise Bellacosa Mainframe

Na primeira temporada o ambiente apresentava erros.

Na segunda temporada a equipe decidiu documentar os erros como requisitos funcionais.

Resultado:

O sistema tornou-se oficialmente imprevisível.

Mas estranhamente estável.

É o equivalente a um programa COBOL executando desde 1978 sem manutenção e que ninguém ousa alterar porque continua funcionando.


O Que Mudou em Relação à Primeira Temporada?

1. Muito Mais Meta-Humor

A série passa a brincar ainda mais com:

  • audiência

  • produção

  • indústria dos animes

  • merchandising

  • crowdfunding

As personagens frequentemente parecem saber que estão dentro de um anime.

Isso aproxima a obra de clássicos como:

  • Gintama

  • Excel Saga

  • Hayate no Gotoku


2. Expansão do Elenco

Novos personagens aparecem.

O universo fica mais rico.

O foco deixa de ser apenas Yurine versus Jashin.

Agora existe uma rede inteira de figuras absurdas interagindo.


3. Mais Referências

A quantidade de referências culturais aumenta significativamente.

Há homenagens e sátiras envolvendo:

  • cultura otaku

  • videogames

  • anime

  • televisão japonesa

O espectador atento encontra piadas escondidas praticamente o tempo todo.


Principais Personagens

Jashin-chan

Continua sendo o maior gerador de incidentes do ambiente.

Seu comportamento mistura:

  • arrogância

  • preguiça

  • ganância

  • ingenuidade

Ela é simultaneamente vilã e vítima.


Yurine Hanazono

A administradora suprema do datacenter.

Seu método de gerenciamento continua simples:

Identificar erro.

Aplicar punição.

Reiniciar processo.


Medusa

A patrocinadora oficial dos desastres.

Sua lealdade quase irracional a Jashin gera algumas das melhores situações da série.


Pekola

Talvez a personagem mais interessante da franquia.

Ela representa o contraste entre:

  • divindade

  • fragilidade

  • pobreza

  • esperança

Por trás das piadas existe uma crítica social surpreendentemente perceptível.


Temáticas Ocultas

Embora pareça apenas uma comédia nonsense, existem elementos interessantes.


A Normalização do Caos

Todos os personagens vivem em uma situação absurda.

Mesmo assim agem como se tudo fosse normal.

A série brinca com algo muito humano:

A capacidade de nos adaptarmos até mesmo aos cenários mais ilógicos.


Família Escolhida

Nenhum daqueles personagens deveria conviver.

Anjos.

Demônios.

Humanos.

Criaturas mitológicas.

Mas todos acabam formando um grupo.

É uma representação moderna da ideia de família construída por afinidade.


O Fracasso Como Estado Permanente

Jashin falha constantemente.

Mas nunca desiste.

Por trás do humor existe uma mensagem curiosa:

Fracassar repetidamente não significa encerrar a execução do programa.


As Aventuras Mais Marcantes

A segunda temporada é essencialmente uma sequência de incidentes operacionais.

Entre eles:

  • planos absurdos de enriquecimento rápido;

  • tentativas desastrosas de assassinato;

  • disputas entre seres celestiais e demoníacos;

  • eventos escolares;

  • problemas financeiros;

  • situações cotidianas transformadas em caos.

O extraordinário surge a partir do banal.

Essa é uma das maiores forças da obra.


O Estúdio Nomad

O estúdio Nomad nunca teve o tamanho de gigantes como:

  • Madhouse

  • MAPPA

  • Bones

  • Kyoto Animation

Por isso o sucesso de Jashin-chan é tão curioso.

A franquia cresceu através da fidelização do público.

A segunda temporada consolidou esse fenômeno.


Crowdfunding e Apoio dos Fãs

Um dos aspectos mais fascinantes da série.

Poucos animes conseguem mobilizar a comunidade de forma tão efetiva.

Os fãs ajudaram a sustentar novas produções.

Isso transformou Jashin-chan em um caso de estudo dentro da indústria.


Houve Censura?

Não houve censura significativa.

Porém algumas transmissões televisivas utilizaram:

  • escurecimento de tela;

  • enquadramentos alternativos;

  • pequenos ajustes visuais.

O motivo principal foi a quantidade absurda de violência cartunesca.

Mas o contexto humorístico sempre deixou claro que não havia intenção realista.

A série nunca foi alvo de grandes campanhas de proibição.


Impacto Cultural

A segunda temporada consolidou a identidade da franquia.

Ela ajudou a transformar Jashin-chan em:

  • anime cult;

  • referência em meta-humor;

  • exemplo de crowdfunding bem-sucedido;

  • símbolo de comédias absurdistas modernas.

Além disso, fortaleceu as colaborações entre anime e turismo regional japonês.

Poucas obras do mesmo porte conseguiram esse nível de engajamento comunitário.


O Que Torna a Segunda Temporada Especial?

Muitas continuações tentam mudar a fórmula.

Jashin-chan faz o oposto.

Ela entende exatamente o que o público deseja.

Então amplifica todos os elementos característicos:

✅ Mais caos
✅ Mais autorreferência
✅ Mais personagens
✅ Mais piadas internas
✅ Mais absurdos sobrenaturais

A série demonstra uma confiança rara em sua própria identidade.


Conclusão

A segunda temporada não busca revolucionar a franquia.

Ela busca aperfeiçoar aquilo que já funcionava.

E consegue.

Jashin-chan Dropkick' é uma aula de como expandir uma comédia sem perder sua essência.

O anime transforma repetição em charme.

Transforma fracasso em humor.

Transforma personagens defeituosos em figuras adoráveis.

E transforma um demônio incompetente em uma das mascotes mais carismáticas da comédia moderna.


☕💣 Relatório Final do Datacenter Bellacosa

INCIDENTE Nº JCD-2020 ENCERRADO

Resultado da auditoria:

  • O demônio continua ativo.

  • Os erros continuam ocorrendo.

  • Nenhuma correção definitiva foi aplicada.

  • O plano de retorno ao Inferno permanece atrasado.

  • A produtividade é zero.

Entretanto:

  • A satisfação dos usuários aumentou.

  • A base instalada cresceu.

  • O sistema ganhou novos módulos.

  • O ambiente tornou-se mais robusto.

Conclusão técnica:

"Após análise detalhada, verificou-se que Jashin-chan não é um bug do sistema. Jashin-chan É o sistema."

E a segunda temporada é a prova definitiva de que alguns ambientes alcançam a estabilidade não eliminando falhas, mas tornando as falhas parte oficial da arquitetura. 😈☕💣🖥️📋


sexta-feira, 3 de abril de 2020

CICS BMS para Desenvolvedores COBOL – Parte 1

 

Bellacosa Mainframe mini curso de cics bms

☕ Um Café no Bellacosa Mainframe

CICS BMS para Desenvolvedores COBOL – Parte 1

Do Terminal 3270 ao Primeiro Hello World

Salve, jovem Padawan!

Se você está começando sua jornada no universo IBM Z e já ouviu alguém falar frases misteriosas como:

"Precisamos alterar o MAPSET."

"O cursor está parando no campo errado."

"O MDT não está ligado."

"Faz um SEND MAP DATAONLY."

E ficou pensando:

"Que feitiçaria mainframe é essa?"

Pode ficar tranquilo.

Neste artigo vamos iniciar uma jornada pelo BMS (Basic Mapping Support) do CICS. O objetivo é apresentar o assunto pensando em um desenvolvedor COBOL Júnior, explicando desde a origem do BMS até a construção do primeiro mapa funcionando em uma aplicação CICS.

Pegue seu café, abra seu ISPF, reserve uma aba do SDSF e venha comigo.


Um pouco de história

Voltemos algumas décadas.

Estamos nos anos 70.

Não existia navegador.

Não existia JavaScript.

Não existia React.

Não existia Angular.

Nem mesmo Windows.

O usuário corporativo acessava aplicações utilizando terminais burros conectados ao mainframe.

Entre eles destacavam-se:

  • IBM 3270

  • IBM 3278

  • IBM 3279

  • IBM 3287

A tela típica possuía:

24 linhas

80 colunas

Algo parecido com isto:

----------------------------------------
 SISTEMA DE CLIENTES

 Codigo....: _____

 Nome......: _____________________

 Cidade....: _____________________

 PF3=Sair    PF5=Atualizar

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

A grande questão era:

Como desenhar telas sem colocar coordenadas dentro do programa COBOL?

A IBM criou então o BMS.

Basic Mapping Support.


O nascimento do CICS

CICS significa:

Customer Information Control System

O projeto surgiu em 1968.

Originalmente desenvolvido pela IBM para atender grandes empresas que precisavam de processamento transacional online.

Enquanto o Batch processava milhares de registros durante a madrugada...

O CICS permitia:

  • consultar saldo;

  • emitir passagens;

  • cadastrar clientes;

  • aprovar empréstimos;

  • consultar apólices;

  • efetuar reservas.

Tudo em tempo real.

Hoje ainda existem milhões de transações CICS sendo executadas diariamente.


O que é BMS ?

BMS significa:

Basic Mapping Support

Ele é uma camada intermediária entre:

Programa COBOL

e

Terminal 3270.

Ele esconde detalhes do dispositivo.

O desenvolvedor não precisa conhecer:

Posição física do cursor

Bytes de atributo

Intensidade

Cor

Protocolo 3270

Ele apenas manipula variáveis COBOL.


Arquitetura do BMS

Programa COBOL
        │
        │
        ▼
+----------------+
| Symbolic Map   |
+----------------+
        │
        ▼
+----------------+
|      BMS       |
+----------------+
        │
        ▼
+----------------+
| Physical Map   |
+----------------+
        │
        ▼
Terminal 3270

Uma analogia moderna

Imagine:

HTML

CSS

JavaScript

O BMS faz papel semelhante.

Mundo WebMundo CICS
HTMLPhysical Map
JavascriptCOBOL
BrowserTerminal 3270
DOMSymbolic Map
FrameworkBMS

O que é um MAP ?

MAP é uma tela.

Exemplo:

Tela Login

Tela Consulta

Tela Menu

Tela Inclusão

Cada tela é um MAP.


Exemplo

LOGIN

Usuário:


Senha:


ENTER=Entrar
PF3=Sair

Outro MAP

MENU

1 Consultar

2 Alterar

3 Incluir


PF3 Sair

O que é um MAPSET ?

Mapset é um conjunto de mapas.

Pode possuir:

LOGIN

MENU

CONSULTA

ALTERAÇÃO

INCLUSÃO

CONFIRMAÇÃO

Tudo agrupado.

Exemplo:

SISTCLI DFHMSD

Dentro dele

LOGIN DFHMDI


MENU DFHMDI


CONSUL DFHMDI


ALTERA DFHMDI

Physical Map

É um módulo executável.

Gerado pelo assembler.

Fica em:

DFHRPL

Exemplo

CLIENTES

O CICS carrega automaticamente.


Symbolic Map

Copybook COBOL.

Vai para:

COPYLIB

SYSLIB

Exemplo

CLIENTEM

As três macros do BMS

Existem apenas três macros principais.

DFHMSD

Mapset

DFHMDI

Mapa

DFHMDF

Campo


DFHMSD

É o cabeçalho.

Exemplo

CLIENTE DFHMSD TYPE=&SYSPARM,
                 LANG=COBOL,
                 MODE=INOUT,
                 STORAGE=AUTO,
                 TIOAPFX=YES,
                 CTRL=(FREEKB)

TYPE

MAP

DSECT

FINAL


LANG

COBOL

PLI

ASM


MODE

IN

OUT

INOUT


STORAGE

AUTO

BASE=MAP-IOAREA


TIOAPFX

Recomendado:

TIOAPFX=YES

Reserva 12 bytes para BMS.


DFHMDI

Define uma tela.

Exemplo

HELLOMAP DFHMDI
         SIZE=(24,80)

DFHMDF

Define campo.

Exemplo

MSG DFHMDF POS=(5,10),
            LENGTH=20,
            ATTRB=PROT,
            INITIAL='HELLO WORLD'

Nosso primeiro Hello World

Chegou a hora.

Fonte BMS


HELLO    DFHMSD TYPE=&SYSPARM,
                LANG=COBOL,
                MODE=OUT,
                TIOAPFX=YES


TELA1    DFHMDI SIZE=(24,80)


         DFHMDF POS=(1,25),
                 LENGTH=30,
                 ATTRB=(PROT,BRT),
                 INITIAL='HELLO WORLD BMS'


         DFHMDF POS=(22,2),
                 LENGTH=40,
                 ATTRB=(ASKIP),
                 INITIAL='PF3 SAIR'


         DFHMSD TYPE=FINAL


END




O que este mapa faz?

Exibe:



            HELLO WORLD BMS




PF3 SAIR



Usuário não consegue alterar nada.

Todos campos são protegidos.


Geração do Symbolic Map

O assembler cria um copybook.

Exemplo

01 TELA1O.



05 FILLER PIC X(30).




01 TELA1I.



05 FILLER PIC X(30).


Programa COBOL

Nosso primeiro programa.


IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.


DATA DIVISION.


WORKING-STORAGE SECTION.


COPY HELLO.



PROCEDURE DIVISION.



EXEC CICS SEND

MAP('TELA1')

MAPSET('HELLO')

ERASE

FREEKB

END-EXEC.



EXEC CICS RETURN
END-EXEC.




O que acontece internamente?

Fluxo:



COBOL


SEND MAP


↓

BMS


↓

Physical Map


↓

Terminal


↓

Usuário visualiza


HELLO WORLD




A magia do BMS

Observe.

No COBOL não existe:

Linha 1

Coluna 25

Brilho

Atributo

3270

Bytes hexadecimais

Tudo está encapsulado.

O desenvolvedor apenas escreve:

SEND MAP

E o CICS faz o restante.


Curiosidade Bellacosa Mainframe

Muitos sistemas bancários escritos entre 1980 e 1995 continuam utilizando exatamente a mesma tecnologia apresentada neste artigo.

Alguns processam milhões de transações por dia.

Muitos deles executam em máquinas IBM z16 e z17, utilizando telas BMS desenvolvidas há mais de 30 anos.

É bastante comum encontrar mapas criados em 1987, recompilados diversas vezes ao longo das décadas, ainda em plena operação em seguradoras, bancos, empresas aéreas e grandes varejistas.

E isso talvez seja uma das maiores demonstrações da longevidade e da estabilidade da plataforma IBM Z.


Continua...

Na Parte 2 veremos:

✓ Compilação passo a passo do BMS

✓ JCL de Assembly

✓ Geração do Physical Map

✓ Geração do Symbolic Map

✓ Linkedit

✓ Cadastro via CEDA

✓ Uso do INSTALL

✓ Comandos CEMT

✓ SEND MAP

✓ RECEIVE MAP

✓ DFHEIBLK

✓ DFHAID

✓ Primeira pseudo-conversação CICS

quarta-feira, 18 de março de 2020

DotCom : Capítulo III — A Economia do "Queime Caixa": Quando Gastar Milhões Virou Sinônimo de Sucesso

 

Bellacosa Mainframe o estouro da bolha do dotcom capitulo III


Capítulo III — A Economia do "Queime Caixa": Quando Gastar Milhões Virou Sinônimo de Sucesso

Como a obsessão pelo crescimento criou uma das maiores ilusões financeiras da história da tecnologia

"Uma nave pode acelerar até a velocidade de dobra. Mas, se o reator de antimatéria acabar antes do destino, toda a velocidade do universo será inútil."

Chegamos agora ao coração da bolha da Internet.

Se existe um conceito que todo Padawan COBOL precisa compreender para entender por que milhares de empresas desapareceram no início dos anos 2000, esse conceito é conhecido como Burn Rate, ou, em tradução livre, taxa de consumo de caixa.

Parece um termo moderno.

Mas sua lógica é antiga.

Muito antiga.

Imagine que você recebe um salário de R$ 10.000 por mês.

No primeiro mês, você resolve gastar R$ 30.000.

No segundo, mais R$ 30.000.

No terceiro, novamente R$ 30.000.

Enquanto houver alguém disposto a emprestar dinheiro, você continua vivendo como um milionário.

Mas chega um momento em que alguém faz a pergunta inevitável:

"Quando você pretende começar a ganhar mais do que gasta?"

Foi exatamente essa pergunta que destruiu milhares de empresas da era das Dot-Com.


O Que é Burn Rate?

De maneira simples, Burn Rate representa a velocidade com que uma empresa consome seu dinheiro disponível.

Imagine uma fogueira.

Quanto maior a chama...

Mais rapidamente a lenha desaparece.

Nas startups ocorre algo semelhante.

O dinheiro dos investidores é a lenha.

As despesas são o fogo.

Enquanto houver madeira...

O fogo continua bonito.

Quando acaba...

Não importa o tamanho da chama.

Tudo termina.

Esse conceito parece óbvio hoje.

Mas, durante alguns anos, parecia quase irrelevante.


Crescer Primeiro. Lucrar Depois.

A filosofia dominante entre 1997 e 2000 era extremamente sedutora.

Primeiro conquistaríamos milhões de usuários.

Depois descobriríamos como ganhar dinheiro.

A lógica parecia razoável.

Quanto maior a base de clientes, maior seria o potencial de receita futura.

O problema estava na palavra futuro.

Esse futuro nunca tinha data para chegar.

Enquanto isso, as contas continuavam vencendo.

Salários.

Aluguel.

Servidores.

Publicidade.

Marketing.

Infraestrutura.

Consultorias.

Viagens.

Eventos.

O dinheiro saía diariamente.

Mas quase não entrava.


A Corrida pela Escala

Outro conceito que ganhou enorme importância foi a escalabilidade.

Uma empresa tradicional precisava abrir novas lojas para crescer.

Cada nova unidade significava:

  • aluguel;

  • funcionários;

  • estoque;

  • energia;

  • manutenção.

Na Internet parecia diferente.

Criava-se um site.

Depois mais servidores.

Depois mais usuários.

O crescimento parecia infinito.

Esse raciocínio estava correto.

Mas escondia um detalhe gigantesco.

Servidores também custam dinheiro.

Desenvolvedores custam dinheiro.

Data centers custam dinheiro.

Links de Internet custam dinheiro.

Suporte custa dinheiro.

Escalar não era gratuito.

Apenas era diferente.


O Dinheiro Parecia Infinito

Durante a bolha, fundos de investimento competiam entre si para financiar startups.

Era comum uma empresa levantar dezenas ou centenas de milhões de dólares antes mesmo de apresentar lucro.

Algumas sequer possuíam um produto finalizado.

Bastava convencer investidores de que estavam construindo "o futuro".

Em poucos anos, uma cultura extremamente perigosa começou a surgir.

Gastar muito passou a ser interpretado como sinal de crescimento.

Quanto maior o prejuízo...

Maior parecia ser o potencial da empresa.

Hoje isso soa absurdo.

Na época parecia perfeitamente lógico.


O Marketing Virou um Buraco Negro

Talvez nenhum setor tenha consumido tanto dinheiro quanto o marketing.

Empresas compravam espaços durante o Super Bowl.

Patrocinavam eventos.

Espalhavam outdoors por grandes cidades.

Contratavam celebridades.

Produziam comerciais milionários.

O objetivo era simples.

Ficar conhecido antes dos concorrentes.

Muitas acreditavam que bastava dominar a mente do consumidor para garantir o sucesso futuro.

Mas havia um problema.

Publicidade gera visibilidade.

Não gera automaticamente receita.


O CAC Começou a Explodir

Hoje existe um indicador bastante conhecido chamado CAC.

Customer Acquisition Cost.

Ou custo para adquirir um cliente.

Imagine vender um produto de R$ 50.

Se você gastar R$ 500 em publicidade para conquistar esse cliente...

Seu negócio está perdendo dinheiro.

Durante a bolha da Internet isso acontecia frequentemente.

Empresas gastavam centenas de dólares para conquistar consumidores que compravam apenas uma única vez.

Enquanto investidores financiavam essa diferença...

Parecia funcionar.

Quando os investimentos diminuíram...

O modelo inteiro desmoronou.


O LTV Era Apenas uma Esperança

Outro conceito bastante utilizado atualmente é o Lifetime Value (LTV).

Representa quanto um cliente gera de receita ao longo de todo o relacionamento com a empresa.

Muitas startups justificavam enormes prejuízos dizendo:

"Hoje estamos perdendo dinheiro com este cliente.

Mas durante os próximos dez anos teremos lucro."

A teoria era excelente.

Na prática...

Grande parte desses clientes simplesmente nunca voltou.

As projeções eram otimistas demais.


O Escritório Também Virou Produto

Curiosamente, muitas startups passaram a competir também pela aparência.

Escritórios enormes.

Salas coloridas.

Escorregadores.

Mesas de pingue-pongue.

Videogames.

Cafés gourmet.

Frutas à vontade.

Massagem.

Academias.

Na época parecia representar uma nova cultura corporativa.

Em muitos casos representava apenas uma enorme despesa adicional.

Ambientes agradáveis são importantes.

Mas eles não substituem um modelo de negócios sustentável.


Contratar Também Virou Competição

Outro fenômeno curioso ocorreu com o mercado de trabalho.

Empresas contratavam centenas de profissionais muito antes de realmente precisarem deles.

A lógica era impedir que concorrentes encontrassem talentos disponíveis.

Desenvolvedores recebiam salários impressionantes.

Mudavam de empresa diversas vezes por ano.

Stock options tornaram-se extremamente populares.

Todos acreditavam que ficariam milionários quando a empresa abrisse capital.

Em alguns casos isso aconteceu.

Na maioria...

As ações tornaram-se praticamente sem valor.


Quando Crescimento Virou Vaidade

Durante aquele período surgiu uma obsessão por métricas que pouco diziam sobre a saúde financeira das empresas.

Número de visitantes.

Número de acessos.

Quantidade de páginas vistas.

Downloads.

Cadastros.

Cliques.

Esses números apareciam em todas as apresentações para investidores.

Quase ninguém perguntava algo muito mais importante.

Quantos clientes realmente pagam?

Essa diferença continua extremamente atual.

Uma aplicação pode possuir milhões de usuários.

Se ninguém pagar por ela...

O problema permanece.


O Dia em que Lucro Virou Palavra Proibida

Existe uma frase atribuída a diversos investidores daquela época.

"Lucro é para empresas velhas."

Essa mentalidade tornou-se tão forte que algumas companhias praticamente evitavam discutir resultados financeiros.

O foco era apenas crescimento.

A crença era simples.

Quando dominarmos o mercado...

O lucro aparecerá naturalmente.

Algumas empresas conseguiram isso.

Amazon é um exemplo.

A maioria não.

Porque dominar mercado também exige sobreviver tempo suficiente para alcançá-lo.


Enquanto Isso... Nos Mainframes

Agora imagine um gerente de processamento de dados em um grande banco brasileiro em 1999.

Toda manhã ele recebia indicadores como:

  • disponibilidade do sistema;

  • tempo médio de resposta;

  • volume de transações;

  • utilização de CPU;

  • consumo de disco;

  • filas de processamento;

  • integridade dos dados.

Nenhum diretor perguntava:

"Quantos milhões de acessos tivemos hoje?"

A pergunta era muito mais simples.

"O sistema funcionou?"

Esse contraste é fascinante.

Enquanto startups celebravam visitantes.

Mainframes celebravam transações concluídas com sucesso.

Enquanto empresas de Internet comemoravam páginas visualizadas.

Centros de processamento comemoravam disponibilidade de 99,999%.

Era uma diferença de mentalidade.

Uma focava expectativa.

Outra focava execução.


A Matemática Sempre Cobra

Existe uma característica curiosa da matemática.

Ela não possui opinião.

Não participa de reuniões.

Não lê reportagens.

Não acompanha tendências.

Ela simplesmente funciona.

Se uma empresa gasta continuamente mais do que arrecada...

Em algum momento o dinheiro termina.

Pode demorar meses.

Pode demorar anos.

Mas acontecerá.

Foi exatamente isso que ocorreu com centenas de startups.

Elas não quebraram porque a Internet era ruim.

Quebraram porque suas despesas cresceram mais rapidamente do que suas receitas.


A Armadilha do "Depois a Gente Resolve"

Talvez o maior erro estratégico daquele período tenha sido transformar problemas fundamentais em preocupações futuras.

Logística?

Depois resolvemos.

Rentabilidade?

Depois resolvemos.

Segurança?

Depois resolvemos.

Infraestrutura?

Depois resolvemos.

Atendimento?

Depois resolvemos.

Governança?

Depois resolvemos.

O problema é que empresas crescem.

Problemas também.

E quanto maior a empresa...

Mais caro se torna corrigir decisões equivocadas tomadas no início.

Essa continua sendo uma das maiores lições para startups atuais.


O Paralelo com a Inteligência Artificial

Olhando para 2026, encontramos algumas semelhanças interessantes.

Diversas empresas de IA recebem investimentos bilionários.

Muitas ainda operam com prejuízo.

Algumas apostam que receitas futuras compensarão os custos atuais.

A diferença é que boa parte dessas empresas já entrega valor concreto.

Modelos de IA realmente aumentam produtividade.

Automatizam tarefas.

Auxiliam desenvolvedores.

Transformam atendimento ao cliente.

Ou seja...

A tecnologia é real.

O desafio continua sendo construir modelos econômicos sustentáveis.

A história das Dot-Com não ensina que devemos desconfiar da inovação.

Ela ensina que inovação e sustentabilidade precisam caminhar juntas.


Lições para o Padawan COBOL

Todo programador COBOL aprende cedo que um sistema não pode depender apenas de condições ideais.

É preciso prever exceções.

Tratar erros.

Garantir recuperação.

Controlar recursos.

Planejar capacidade.

Empresas funcionam exatamente da mesma maneira.

Caixa é como memória disponível.

Se acabar...

O programa termina.

Receita é semelhante ao processamento de entrada.

Sem novos dados...

Não existe trabalho.

Lucro pode ser comparado ao espaço livre em disco.

Ele garante que o sistema continue crescendo sem entrar em colapso.

No universo da Frota Estelar, seria impensável iniciar uma missão interestelar sem calcular cuidadosamente o combustível, as reservas de energia e os recursos necessários para retornar à Terra. No entanto, foi exatamente isso que inúmeras empresas fizeram durante a bolha da Internet: aceleraram ao máximo, fascinadas pela velocidade, sem verificar se havia energia suficiente para completar a viagem.

No próximo capítulo veremos como essa cultura de crescimento a qualquer custo contaminou investidores, analistas e a mídia, criando um ambiente de euforia coletiva em que qualquer empresa ligada à Internet parecia destinada ao sucesso. Era o início do auge da bolha — justamente o momento em que ela começava, silenciosamente, a preparar seu inevitável colapso.

Boy Scout Rules : Quando um Programador COBOL Descobriu que a Matrix Não Era Mantida por Heróis… Mas por Pequenas Melhorias Feitas Todos os Dias

 

Bellacosa Mainframe apresenta boy scout rules

☕ Um Café no Bellacosa Mainframe

Boy Scout Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Não Era Mantida por Heróis… Mas por Pequenas Melhorias Feitas Todos os Dias

"Você não precisa reescrever a Matrix inteira. Basta deixá-la um pouco melhor cada vez que passar por ela."


Prólogo — A Sala Esquecida da Matrix

Após anos atravessando corredores infinitos da Matrix, Neo começou a notar algo estranho.

Algumas partes pareciam modernas.

Outras lembravam sistemas criados décadas antes.

Havia corredores impecáveis.

Outros estavam escuros.

Cabos pendurados.

Portas enferrujadas.

Painéis quebrados.

Neo perguntou ao Arquiteto:

— Quem deixou isso assim?

O Arquiteto respondeu:

— Ninguém.

Neo estranhou.

— Como assim ninguém?

O Oráculo apareceu carregando uma velha lanterna.

Caminhou lentamente por um corredor abandonado.

Pegou um cabo solto.

Prendeu-o corretamente.

Apagou uma mensagem de erro antiga.

Organizou alguns arquivos.

Depois continuou andando.

Neo perguntou:

— Isso resolve o problema da Matrix?

Ela respondeu:

— Não.

Resolve apenas este corredor.

Neo insistiu:

— Então por que perder tempo?

Ela sorriu.

— Porque milhares de pessoas fizeram exatamente isso durante muitos anos.

É por isso que a Matrix ainda funciona.

Naquele instante Neo compreendeu a Boy Scout Rule.


O que é a Boy Scout Rule?

A regra é extremamente simples.

"Always leave the campground cleaner than you found it."

Em português.

"Sempre deixe o acampamento mais limpo do que você encontrou."

Na Engenharia de Software ela foi adaptada para:

"Deixe o código um pouco melhor do que encontrou."

Não significa reescrever tudo.

Significa realizar pequenas melhorias sempre que tocar em um trecho de código.


A origem da regra

A inspiração vem do movimento dos Escoteiros (Boy Scouts of America).

Existe uma orientação tradicional ensinada aos jovens escoteiros:

Quando abandonar um acampamento.

Deixe-o melhor do que estava.

Mesmo que isso signifique apenas:

  • recolher um papel;

  • apagar uma fogueira;

  • organizar algumas pedras.

Na Engenharia de Software, Robert C. Martin (Uncle Bob) popularizou essa ideia como um hábito de desenvolvimento.


Matrix explica perfeitamente

Imagine que milhões de pessoas percorrem diariamente os corredores da Matrix.

Cada uma realiza apenas uma pequena melhoria.

No fim do ano.

Toda a Matrix está melhor.

Agora imagine o contrário.

Todos dizem:

"Não fui eu quem bagunçou."

Resultado.

O sistema envelhece rapidamente.


O COBOL vive exatamente esse cenário

Existem aplicações bancárias com:

  • trinta;

  • quarenta;

  • cinquenta anos.

Nenhuma equipe consegue parar tudo para reescrever esses sistemas.

Mas milhares de pequenas melhorias acumuladas durante décadas fazem enorme diferença.


O efeito da melhoria contínua

Imagine um programa COBOL.

Você entra apenas para alterar uma regra tributária.

Durante a alteração percebe:

  • variável mal nomeada;

  • comentário desatualizado;

  • código morto;

  • PERFORM desnecessário;

  • IF duplicado.

Você corrige.

Leva cinco minutos.

O próximo programador agradecerá.


Matrix Reloaded

Neo observa Zion sendo mantida.

Não existem apenas engenheiros brilhantes.

Existem centenas de pessoas realizando pequenas manutenções diariamente.

É isso que mantém a cidade viva.


O efeito psicológico

Existe um pensamento perigoso.

"Isso não é problema meu."

A Boy Scout Rule combate exatamente essa mentalidade.

Ela transforma todos em responsáveis pela qualidade coletiva.


O Programador COBOL Padawan

Você abre um programa.

Encontra:

MOVE ZERO TO WS-X.
MOVE ZERO TO WS-Y.
MOVE ZERO TO WS-Z.

Poderia deixar.

Mas decide organizar.

Talvez usar inicialização mais clara.

Talvez melhorar nomes.

Talvez remover duplicações.

Nenhuma dessas mudanças altera o negócio.

Mas todas melhoram a manutenção.


O Agente Smith adora abandono

Smith não destrói sistemas apenas criando bugs.

Ele espera.

Espera que pequenas sujeiras se acumulem.

Comentários antigos.

Variáveis confusas.

Código morto.

Layouts duplicados.

Depois de alguns anos.

A manutenção torna-se um pesadelo.


Um exemplo inspirado na Matrix

Imagine uma escada.

Cada pessoa deixa uma pequena pedra sobre um degrau.

Nenhuma pedra parece importante.

Anos depois.

A escada torna-se intransitável.

Agora imagine o contrário.

Cada pessoa remove uma pedra.

A escada permanece limpa para sempre.


Pequenas melhorias fazem enorme diferença

Você pode:

  • alinhar código;

  • renomear variáveis;

  • remover comentários incorretos;

  • apagar código morto;

  • dividir um PERFORM enorme;

  • atualizar documentação;

  • melhorar mensagens de erro.

Nada disso muda o negócio.

Mas muda profundamente a qualidade.


O impacto no Mainframe

No ambiente IBM Z encontramos frequentemente:

  • programas COBOL escritos por dezenas de equipes ao longo de décadas;

  • COPYBOOKs antigos;

  • comentários que não correspondem mais ao código;

  • JCLs com parâmetros obsoletos;

  • procedimentos duplicados.

Esperar uma reescrita completa é, muitas vezes, inviável.

A Boy Scout Rule oferece um caminho realista: evoluir continuamente.


Curiosidade

Muitas empresas perceberam que a maior parte da dívida técnica não nasce de grandes erros arquiteturais.

Ela surge de pequenas negligências repetidas diariamente.

Uma variável mal nomeada hoje.

Um comentário errado amanhã.

Uma duplicação na semana seguinte.

Meses depois.

Temos um sistema difícil de manter.


Atenção!

Boy Scout Rule não significa:

Refatorar o sistema inteiro enquanto corrige um pequeno bug.

Esse é um erro bastante comum.


A diferença

Boa prática

Corrigir um pequeno problema relacionado ao trecho alterado.


Exagero

Transformar uma correção simples em um projeto de seis meses.


Matrix e o Oráculo

O Oráculo nunca tenta reconstruir toda a Matrix.

Ela influencia pequenas decisões.

Uma conversa.

Uma escolha.

Uma melhoria.

No final.

Essas pequenas ações mudam toda a história.


Um exemplo COBOL

Antes.

IF WS-A = "S"
    MOVE "A" TO WS-X
ELSE
    MOVE "B" TO WS-X
END-IF

Você percebe que o comentário acima diz:

Calcula imposto.

Mas o código não calcula imposto algum.

Atualiza o comentário.

Parece pequeno.

Mas evita confusão futura.


Outro exemplo

Você encontra:

WS-TEMP1
WS-TEMP2
WS-TEMP3

Durante a manutenção.

Renomeia para:

WS-SALDO-ATUAL
WS-LIMITE-CREDITO
WS-VALOR-PARCELA

Nenhuma regra mudou.

Mas a legibilidade aumentou enormemente.


Ferramentas ajudam

Hoje possuímos excelentes ferramentas para apoiar pequenas melhorias contínuas.

Entre elas:

  • IBM ADDI.

  • SonarQube.

  • COBOL Check.

  • IBM Developer for z/OS.

  • IBM Z Open Editor.

  • Git.

  • Pull Requests.

  • Code Review.

  • IA Generativa.

Elas ajudam a identificar pontos simples que podem ser aprimorados sem grandes impactos.


O papel da IA

A Inteligência Artificial tornou-se uma excelente parceira da Boy Scout Rule.

Ela consegue sugerir:

  • nomes melhores;

  • simplificação de IFs;

  • remoção de código morto;

  • reorganização de PERFORMs;

  • comentários mais claros;

  • duplicações.

Mas a decisão continua sendo humana.

Nem toda sugestão melhora o sistema.


Os riscos

Ignorar pequenas melhorias produz:

  • crescimento da dívida técnica;

  • manutenção lenta;

  • onboarding difícil;

  • maior número de bugs;

  • baixa produtividade.


Erros clássicos

  • "Depois alguém arruma."

  • "Sempre foi assim."

  • "Não vale a pena."

  • "Não é minha responsabilidade."

  • "Funciona, então deixa."

Essas frases envelhecem sistemas muito rapidamente.


Boas práticas

  • Corrigir pequenos problemas ao modificar um módulo.

  • Atualizar comentários inconsistentes.

  • Remover código morto.

  • Melhorar nomes de variáveis.

  • Eliminar duplicações simples.

  • Organizar PERFORMs.

  • Registrar decisões importantes.


Boy Scout Rule conversa com toda esta série

Esse princípio é praticamente um elo entre todos os conceitos estudados até aqui.

Ele ajuda a combater:

  • Technical Debt, reduzindo o acúmulo de dívida técnica.

  • Lava Flow, removendo pequenos trechos abandonados.

  • Spaghetti Code, reorganizando gradualmente o código.

  • Big Ball of Mud, promovendo pequenas melhorias estruturais.

  • DRY, eliminando duplicações encontradas durante a manutenção.

  • KISS, simplificando trechos excessivamente complexos.

  • YAGNI, removendo funcionalidades desnecessárias.

  • Murphy's Law, fortalecendo validações e tratamentos de erro.

  • SOLID, aproximando o código de responsabilidades mais claras.

Em vez de esperar um grande projeto de modernização, a qualidade cresce continuamente.


Aplicabilidade

A Boy Scout Rule pode ser aplicada em praticamente qualquer área da engenharia:

  • COBOL.

  • CICS.

  • Db2.

  • JCL.

  • REXX.

  • Java.

  • Python.

  • APIs.

  • DevOps.

  • Infraestrutura como Código.

  • Documentação.

  • Pipelines CI/CD.

  • Playbooks Ansible.

Ela não depende de tecnologia.

Depende de cultura.


O ensinamento do Oráculo

O Oráculo leva Neo até um velho jardim dentro da Matrix.

O chão está coberto por folhas.

Ela entrega uma pequena vassoura.

Neo pergunta:

— Vamos limpar tudo?

Ela responde:

— Não.

Limpe apenas o caminho por onde passaremos hoje.

Horas depois.

Outras pessoas fazem o mesmo em outros caminhos.

Dias depois.

O jardim inteiro está limpo.

Sem que ninguém tenha realizado uma grande reforma.

Ela olha para Neo e diz:

"Quem espera pela grande transformação normalmente não muda nada. Quem melhora um pequeno detalhe todos os dias acaba transformando o mundo inteiro."


Lições para um Programador COBOL Padawan

Durante sua carreira você herdará programas escritos por profissionais que talvez nunca conheça.

Alguns serão excelentes.

Outros nem tanto.

Resista à tentação de criticar quem veio antes.

Lembre-se de que aqueles sistemas sobreviveram porque alguém os manteve funcionando.

Sua missão agora é continuar essa história.

Sempre que modificar um programa, pergunte:

  • Posso melhorar o nome desta variável?

  • Posso remover este trecho morto?

  • Este comentário ainda faz sentido?

  • Posso reduzir esta duplicação?

  • Posso tornar este IF mais legível?

  • Posso registrar melhor esta decisão?

Se a resposta for "sim" e o risco for baixo, faça a melhoria.

A próxima pessoa que abrir esse código talvez seja você mesmo daqui a cinco anos.


Curiosidades

A Boy Scout Rule influenciou fortemente práticas modernas como:

  • Clean Code, de Robert C. Martin.

  • Refatoração Contínua, popularizada por Martin Fowler.

  • Trunk-Based Development, incentivando pequenas mudanças frequentes.

  • Continuous Integration, reduzindo grandes refatorações.

  • Code Review, estimulando melhorias incrementais.

  • InnerSource, promovendo responsabilidade coletiva sobre o código.

Todas compartilham uma mesma visão:

qualidade é construída diariamente, não apenas em grandes projetos de modernização.


Conclusão — A Matrix Não Foi Salva em um Único Dia

Neo derrotou Smith em uma batalha decisiva.

Mas a Matrix não permaneceu estável por causa daquele único momento.

Ela continuou existindo porque milhares de pequenas correções, ajustes e melhorias foram realizadas continuamente ao longo do tempo.

Na Engenharia de Software acontece exatamente o mesmo.

A Boy Scout Rule nos ensina que grandes sistemas não envelhecem bem por acaso. Eles envelhecem bem porque cada desenvolvedor deixa uma pequena contribuição positiva sempre que toca no código.

Para um Programador COBOL trabalhando em IBM Z, essa filosofia é especialmente poderosa. Não é necessário esperar um projeto milionário de modernização para melhorar um sistema legado. Pequenas melhorias consistentes, feitas com responsabilidade e baixo risco, acumulam um enorme ganho de qualidade ao longo dos anos.

No universo Bellacosa Mainframe existe uma máxima que certamente estaria escrita na entrada da oficina de manutenção da Matrix:

"Você talvez não tenha tempo para reconstruir toda a Matrix hoje. Mas sempre terá tempo para deixar um único corredor melhor do que o encontrou. E quando milhares de engenheiros fizerem o mesmo, a própria Matrix parecerá nova sem jamais ter sido reconstruída."

Porque o verdadeiro legado de um engenheiro não é apenas o código que ele escreve.

É o código que ele entrega em condições melhores para a próxima geração de Padawans.

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