☕ 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

Mostrar mensagens com a etiqueta Complexidade. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Complexidade. Mostrar todas as mensagens

sexta-feira, 5 de março de 2021

Lasagna Code Rules: Quando um Programador COBOL Descobriu que a Matrix Tinha Tantas Camadas que Nem o Arquiteto Sabia Mais Onde Estava o Problema

 

Bellacosa Mainframe e a lasagna code rules

☕ Um Café no Bellacosa Mainframe

Lasagna Code Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Tinha Tantas Camadas que Nem o Arquiteto Sabia Mais Onde Estava o Problema

"Às vezes o problema não é falta de arquitetura. É arquitetura demais."


Prólogo — Quantas Matrix Existem Dentro da Matrix?

Neo finalmente conseguiu derrotar vários Agentes Smith.

A missão parecia simples.

Um cliente do banco não conseguia visualizar seu saldo.

Morpheus entregou a tarefa.

— Neo, descubra por que o saldo não aparece.

Neo sorriu.

— Deve ser um problema no programa COBOL.

Morpheus respondeu.

— Gostaria que fosse.

Neo iniciou a investigação.

Primeira camada.

Portal Web.

Segunda camada.

API Gateway.

Terceira camada.

Microserviço.

Quarta camada.

Camada de Segurança.

Quinta camada.

Camada de Auditoria.

Sexta camada.

Camada de Observabilidade.

Sétima camada.

Orquestrador.

Oitava camada.

Middleware.

Nona camada.

MQ.

Décima camada.

z/OS Connect.

Décima primeira camada.

CICS.

Décima segunda camada.

Programa COBOL.

Décima terceira camada.

COPYBOOK.

Décima quarta camada.

Db2.

Neo respirou fundo.

Perguntou:

— O saldo está errado onde?

Morpheus respondeu.

— Ainda não sabemos.

Você só chegou na metade.

O Oráculo apareceu.

Sorriu.

— Bem-vindo ao Lasagna Code.


O que é Lasagna Code?

Lasagna Code (Código Lasanha) é um antipadrão onde um sistema possui tantas camadas de abstração, componentes intermediários e níveis de encapsulamento que compreender o fluxo completo torna-se extremamente difícil.

Enquanto o Spaghetti Code representa um fluxo caótico e desorganizado...

o Lasagna Code representa um fluxo extremamente organizado...

mas exageradamente profundo.

Cada camada parece correta.

O problema é que existem camadas demais.


A origem do termo

O termo começou a aparecer na década de 1990.

Ele surgiu como contraponto ao famoso Spaghetti Code.

A ideia era simples.

Se o espaguete é um emaranhado horizontal...

a lasanha cresce verticalmente.

Camada.

Sobre camada.

Sobre camada.

Até ninguém mais enxergar a base.


Matrix explica perfeitamente

Durante toda a trilogia descobrimos algo surpreendente.

Existe:

A Matrix.

Dentro dela existem programas.

Dentro dos programas existem agentes.

Dentro dos agentes existem regras.

Depois descobrimos:

O Arquiteto.

O Oráculo.

O Merovíngio.

O Chaveiro.

O Código Fonte.

Cada descoberta revela outra camada.

O software moderno também.


O nascimento da Lasanha

Curiosamente...

Lasagna Code nasce por boas intenções.

Alguém diz:

"Vamos separar responsabilidades."

Excelente ideia.

Depois.

"Vamos criar outra camada."

Boa ideia.

Depois.

"Mais uma para desacoplar."

Também boa.

Depois.

"Outra para facilitar manutenção."

Ainda parece correto.

Quando percebem...

existem quinze camadas para executar um único SELECT.


Um exemplo simples

Objetivo.

Consultar saldo.

Fluxo ideal.

Tela

↓

Programa COBOL

↓

Db2

Agora imagine uma arquitetura exagerada.

Tela

↓

Frontend

↓

BFF

↓

API Gateway

↓

REST

↓

Load Balancer

↓

Service Mesh

↓

Microserviço A

↓

Microserviço B

↓

Serviço de Autenticação

↓

Serviço de Logging

↓

Serviço de Auditoria

↓

MQ

↓

z/OS Connect

↓

CICS

↓

COBOL

↓

Db2

Todas as camadas possuem justificativa.

Mas será que todas são realmente necessárias?


O Programador COBOL Padawan

Imagine.

Você recebe um chamado.

"Corrigir o cálculo do limite."

Você abre o COBOL.

Nada errado.

Depois descobre.

O problema estava:

na serialização JSON.

Não.

Na verdade.

Na camada REST.

Também não.

Era um timeout do Gateway.

Horas depois.

Descobre.

Era uma configuração do Balanceador.


O efeito psicológico

Existe um comportamento curioso.

Arquitetos gostam de criar abstrações.

E abstrações realmente resolvem muitos problemas.

O perigo aparece quando começamos a abstrair...

a própria abstração.


Matrix Reloaded

Neo conversa com o Arquiteto.

O Arquiteto explica.

Existe:

uma Matrix.

Mas também:

uma Matrix para controlar a Matrix.

Depois mecanismos para controlar quem controla.

Arquitetura excessiva segue exatamente essa lógica.


O Arquiteto da Matrix

Imagine um Arquiteto de Software dizendo:

"Vamos criar uma camada para desacoplar outra camada que desacopla uma terceira camada responsável por abstrair a quarta camada."

Pode parecer sofisticado.

Mas talvez ninguém consiga manter isso daqui cinco anos.


Como reconhecer Lasagna Code?

Faça uma pergunta simples.

Quantas camadas um dado percorre?

Se uma consulta simples passa por quinze componentes...

talvez exista excesso.


O exemplo COBOL

Cliente consulta saldo.

Fluxo.

HTML

JavaScript

React

REST

OAuth

Gateway

NGINX

MQ

JSON

CICS

COBOL

COPYBOOK

SQL

Db2

Cada etapa adiciona:

latência.

Complexidade.

Risco.

Logs.

Monitoramento.

Testes.


O Agente Smith adora Lasanha

Porque cada camada cria mais lugares para esconder bugs.

Agora um erro pode estar:

na API.

No Gateway.

No MQ.

No CICS.

No COBOL.

No Db2.

Ou simplesmente na conversão UTF-8.


Os sintomas

Muitas dependências

Tudo depende de tudo.


Debug difícil

Breakpoint atravessa quinze tecnologias.


Logs espalhados

Cada camada gera um log diferente.


Tempo de resposta aumenta

Cada salto possui custo.


Testes demorados

Mais componentes.

Mais cenários.


O Mainframe sofre?

Curiosamente.

Às vezes.

Hoje um programa COBOL pode conversar com:

REST.

JSON.

Kafka.

MQ.

Cloud.

Mobile.

IA.

Tudo isso é excelente.

Desde que exista necessidade.


Um exemplo inspirado na Matrix

Neo pergunta:

"Quem autorizou esta transação?"

Resposta.

"Precisamos consultar sete serviços."

Neo responde.

"Mas ontem eram dois."

Morpheus suspira.

"Ontem havia menos camadas."


Como nasce?

Primeiro.

Uma camada.

Depois.

Outra.

Depois.

Um Framework.

Depois.

Outro Framework.

Depois.

Outro Middleware.

Depois.

Outro Proxy.

Depois.

Outro Adaptador.

Cada um resolve um pequeno problema.

Todos juntos criam um problema maior.


Existe Lasagna boa?

Sim.

Toda arquitetura moderna possui camadas.

MVC.

Hexagonal.

Clean Architecture.

DDD.

Onion.

Todas utilizam camadas.

O segredo está no equilíbrio.

Camadas devem:

reduzir complexidade.

Nunca aumentá-la.


A diferença

Arquitetura saudável.

Cada camada possui responsabilidade clara.

Arquitetura Lasanha.

Cada camada apenas encaminha chamadas.

Sem agregar valor.


O custo invisível

Imagine.

Uma alteração simples.

Antes.

Um programa.

Hoje.

Treze repositórios.

Quatro equipes.

Cinco pipelines.

Duas aprovações.

O mesmo requisito.


O impacto financeiro

Cada camada possui:

infraestrutura.

monitoramento.

backup.

segurança.

deploy.

licenciamento.

Suporte.

Camadas custam dinheiro.


Atenção!

Nem toda arquitetura complexa é ruim.

Bancos precisam:

segurança.

auditoria.

resiliência.

alta disponibilidade.

Mas existe diferença entre:

complexidade necessária

e

complexidade acidental.


O papel do COBOL

COBOL costuma ficar exatamente na última camada.

Recebe dados.

Executa regras.

Grava Db2.

Ele normalmente não cria a lasanha.

Mas participa dela.


Ferramentas ajudam

Hoje podemos visualizar dependências utilizando:

  • IBM ADDI

  • Application Discovery

  • Dynatrace

  • Instana

  • OpenTelemetry

  • Jaeger

  • Zipkin

Elas mostram exatamente quantas camadas existem.


Os riscos

Latência

Cada camada adiciona milissegundos.


Custos

Mais servidores.


Debug

Muito mais difícil.


Segurança

Mais pontos de ataque.


Disponibilidade

Mais componentes.

Maior chance de falhas.


Curiosidade

Grandes empresas descobriram que alguns microsserviços estavam fazendo apenas:

Receber.

Chamar outro.

Retornar.

Sem nenhuma lógica.

Esses serviços foram eliminados.

A arquitetura ficou:

mais simples.

Mais rápida.

Mais barata.


O ensinamento do Oráculo

O Oráculo entrega uma lasanha para Neo.

Pergunta.

"O que você vê?"

Neo responde.

"Camadas."

Ela sorri.

"E se eu colocar cinquenta camadas?"

Neo pensa.

"Não conseguirei comer."

Ela responde.

"Nem manter."


Como evitar?

Cada camada precisa justificar sua existência


Remova abstrações inúteis


Faça diagramas


Meça latência


Revise arquitetura regularmente


Evite Framework por moda


Questione

"Esta camada agrega valor?"


Erros clássicos

  • Criar adaptadores desnecessários.

  • Framework para resolver problema inexistente.

  • Microserviços extremamente pequenos.

  • Excesso de interfaces.

  • Objetos que apenas chamam outros objetos.

  • Camadas vazias.


Aplicabilidade

Lasagna Code aparece em:

  • Java

  • .NET

  • COBOL

  • Cloud

  • Kubernetes

  • APIs

  • Microsserviços

  • Mobile

  • Sistemas Bancários

  • DevOps


Lições para um Programador COBOL Padawan

Ao ingressar em um ambiente corporativo, especialmente no universo IBM Z, você perceberá que sistemas modernos dificilmente são compostos apenas por COBOL e Db2. Eles convivem com APIs REST, gateways, filas MQ, microsserviços, autenticação federada, monitoramento distribuído e plataformas em nuvem.

Essas camadas são importantes quando resolvem problemas reais, como segurança, escalabilidade, desacoplamento ou auditoria. Entretanto, o bom engenheiro aprende a perguntar constantemente:

  • Esta camada tem uma responsabilidade clara?

  • Ela agrega valor ao negócio?

  • Poderia ser removida sem perda funcional?

  • Está simplificando ou apenas escondendo a complexidade?

Essa capacidade de questionar evita que arquiteturas elegantes no papel se tornem impossíveis de manter na prática.


Conclusão — Nem Toda Matrix Precisa de Outra Matrix

No final de Matrix Reloaded, Neo descobre que a realidade era muito mais profunda do que imaginava. Cada resposta revelava uma nova camada. Porém, diferente do filme, na Engenharia de Software nós podemos escolher quando criar uma nova camada — e quando parar.

Uma arquitetura em camadas é uma das maiores conquistas da engenharia moderna. Ela organiza responsabilidades, facilita testes e melhora a manutenção. Mas, quando utilizada sem critério, transforma-se em Lasagna Code, onde cada solicitação percorre um caminho tão longo que localizar um simples defeito torna-se uma expedição.

Para um Programador COBOL, essa lição é especialmente importante. O IBM Z continuará sendo o coração de muitos sistemas críticos, mas esse coração não precisa ficar escondido atrás de dezenas de camadas desnecessárias. Arquitetura existe para reduzir a complexidade percebida, não para multiplicá-la.

No universo Bellacosa Mainframe existe uma regra digna do Arquiteto da Matrix:

"Uma nova camada só merece existir quando elimina mais complexidade do que cria."

Se ela apenas empilha software sobre software, talvez você não esteja construindo uma arquitetura.

Talvez esteja apenas preparando uma lasanha tão alta que ninguém mais conseguirá encontrar o prato.

segunda-feira, 21 de dezembro de 2020

Bala de Prata sem Mistérios

 

Bellacosa Mainframe e a bala de prata sem misterios

☕ Um Café no Bellacosa Mainframe

Bala de Prata sem Mistérios

O Guia Definitivo para um Programador COBOL Padawan Entender Por Que Não Existe Tecnologia Mágica Capaz de Resolver Todos os Problemas

Existe uma frase muito conhecida na Engenharia de Software que costuma aparecer em reuniões, palestras, livros e até em propagandas de novas tecnologias:

"Não existe bala de prata."

Para quem está começando no universo do COBOL e do IBM Mainframe, essa expressão pode soar estranha.

O que uma bala tem a ver com programação?

E por que justamente uma bala feita de prata?

A resposta mistura folclore europeu, literatura fantástica, engenharia, administração, marketing, inteligência artificial e quase cinquenta anos de história da computação.

Pegue seu café.

Hoje vamos descobrir por que "bala de prata" talvez seja uma das expressões mais importantes que um programador COBOL pode aprender.


O significado da expressão

"Bala de prata" (Silver Bullet) significa:

Uma solução única, simples e milagrosa capaz de resolver um problema extremamente complexo.

Na prática, quando alguém diz:

"Essa ferramenta é a bala de prata."

Está dizendo:

"Ela resolve praticamente tudo."

O detalhe é que, quase sempre...

isso não é verdade.

Na Engenharia de Software a expressão costuma ser usada justamente no sentido contrário:

Desconfie de quem promete uma bala de prata.


A origem da bala de prata

A expressão nasceu muito antes dos computadores.

Ela vem do folclore europeu medieval.

Segundo diversas lendas, criaturas sobrenaturais como:

  • lobisomens

  • demônios

  • vampiros

  • monstros amaldiçoados

não podiam ser mortos por armas comuns.

A única arma capaz de derrotá-los era:

uma bala feita de prata pura.

Por isso ela ficou conhecida como a única solução definitiva.

Essa ideia aparece em inúmeras histórias dos séculos XVII, XVIII e XIX.

Mais tarde foi popularizada pela literatura gótica.

Depois pelo cinema.

Depois pelos quadrinhos.

Depois pelos videogames.

Até chegar...

na Engenharia de Software.


O primeiro uso registrado

A ideia da bala de prata existe há centenas de anos.

Mas o uso moderno em tecnologia ficou famoso graças a um único artigo.

Em 1986.

Escrito por um dos maiores cientistas da computação da história.

Frederick P. Brooks Jr.

Seu artigo recebeu o título:

No Silver Bullet — Essence and Accidents of Software Engineering

Publicado na revista IEEE Computer.

Esse artigo mudou completamente a forma como a indústria pensa desenvolvimento de software.

Até hoje ele continua sendo citado.

Quase quarenta anos depois.


Quem foi Frederick Brooks?

Brooks foi gerente do projeto IBM System/360.

Depois liderou o desenvolvimento do sistema operacional OS/360.

Ou seja...

Ele viveu exatamente os problemas que milhões de programadores enfrentam até hoje.

Projetos gigantes.

Milhares de pessoas.

Prazos.

Mudanças.

Complexidade.

Ele percebeu algo interessante.

Toda década aparecia alguém prometendo:

  • nova linguagem

  • novo paradigma

  • novo hardware

  • novo compilador

  • nova metodologia

que resolveria todos os problemas da engenharia de software.

Nunca resolvia.


A grande ideia do artigo

Brooks dividiu os problemas de software em duas categorias.

Complexidade acidental

São dificuldades criadas pelas ferramentas.

Por exemplo:

Programar em Assembly.

Cartões perfurados.

Pouca memória.

Editor ruim.

Compilador limitado.

Esses problemas podem diminuir com tecnologia melhor.


Complexidade essencial

Essa é diferente.

Ela faz parte do próprio problema.

Imagine um banco.

Existem:

clientes

contas

cartões

PIX

TED

DOC

empréstimos

seguros

investimentos

fraudes

compliance

auditoria

LGPD

criptografia

riscos

Tudo isso existe independentemente da linguagem.

Mesmo usando IA.

Mesmo usando Java.

Mesmo usando Python.

Mesmo usando COBOL.

Essa complexidade nunca desaparece.


A famosa conclusão

Brooks escreveu uma frase histórica.

Em resumo:

Não existe nenhuma tecnologia capaz de produzir um ganho de dez vezes na produtividade resolvendo simultaneamente complexidade, confiabilidade e simplicidade.

Ou seja.

Não existe milagre.


Por que essa ideia continua atual?

Porque a indústria muda de nome.

Mas não muda de comportamento.

Ontem era:

CASE

Depois:

Visual Programming

Depois:

RAD

Depois:

SOA

Depois:

Cloud

Depois:

Microservices

Depois:

Containers

Depois:

Low-Code

Depois:

No-Code

Agora:

IA Generativa

Agentes

LLMs

MCP

RAG

Todas essas tecnologias têm enorme valor.

Mas nenhuma elimina a complexidade do negócio.


Um exemplo no Mainframe

Imagine um banco.

Um sistema COBOL possui:

12 milhões de linhas.

5 mil programas.

800 transações CICS.

300 tabelas Db2.

Filas MQ.

Batch.

VSAM.

IMS.

JCL.

SMF.

RACF.

Alguém chega dizendo:

"Vamos migrar tudo para linguagem X."

Pergunta.

O problema desapareceu?

Não.

As regras continuam exatamente iguais.

O sistema apenas mudou de roupa.


Outro exemplo

Um gerente diz:

"Vamos colocar Inteligência Artificial."

Ótimo.

Mas a IA ainda precisa entender:

qual regra calcula juros

qual regra calcula IOF

qual regra trata cheque especial

qual regra trata limite

qual regra trata renegociação

A IA não inventa essas regras.

Ela precisa aprendê-las.


Easter Egg

Pouca gente percebe.

O artigo "No Silver Bullet" foi publicado em 1986.

Na mesma década em que:

COBOL dominava bancos.

CICS crescia.

Db2 amadurecia.

MVS evoluía.

Quase quarenta anos depois...

Todos ainda existem.

Isso mostra que Brooks estava certo.


Curiosidade

Até hoje existem dezenas de artigos chamados:

"The New Silver Bullet"

"The Next Silver Bullet"

"The AI Silver Bullet"

"The Cloud Silver Bullet"

Curiosamente...

todos acabam chegando à mesma conclusão.

Não existe.


Como identificar uma falsa bala de prata

Sempre desconfie quando ouvir frases como:

"Resolve tudo."

"Não precisa mais programar."

"Nunca mais haverá bugs."

"Substitui qualquer linguagem."

"Elimina arquitetos."

"Acabou o COBOL."

"Acabou o Mainframe."

"Nunca mais será necessário DBA."

Essas frases normalmente aparecem antes de uma decepção.


O marketing adora balas de prata

Marketing precisa vender novidade.

Nada vende mais do que prometer facilidade.

Por isso surgem frases como:

"Programação sem programadores."

"Banco de dados sem DBA."

"Infraestrutura sem administradores."

"Aplicação sem arquitetura."

Na prática...

alguém sempre faz esse trabalho.

Apenas mudou de nome.


No universo COBOL

Quantas vezes ouvimos:

"O COBOL morreu."

Depois:

"O Java vai substituir."

Depois:

"O .NET vai substituir."

Depois:

"Python."

Depois:

"Cloud."

Depois:

"IA."

Enquanto isso...

milhões de linhas COBOL continuam processando bilhões de dólares diariamente.

Não porque COBOL seja perfeito.

Mas porque resolve muito bem determinados problemas.


A verdadeira bala de prata do programador

Curiosamente...

Ela não é uma tecnologia.

É conhecimento.

Conhecimento sobre:

negócio

arquitetura

testes

segurança

dados

comunicação

documentação

engenharia

Esse conjunto vale muito mais que qualquer ferramenta.


Exemplo Bellacosa Mainframe

Imagine um Padawan COBOL.

Ele pergunta:

"Qual linguagem devo aprender para nunca mais ter problemas?"

A resposta do Mestre seria:

"Nenhuma."

Depois explicaria:

Aprenda lógica.

Modelagem.

Algoritmos.

Estruturas de dados.

Banco de dados.

Sistemas Operacionais.

Arquitetura.

Comunicação.

Esses conhecimentos sobrevivem a qualquer linguagem.


Os perigos de acreditar em balas de prata

Quando uma empresa acredita em milagres tecnológicos pode acontecer:

Projetos cancelados.

Milhões desperdiçados.

Migrações fracassadas.

Retrabalho.

Perda de conhecimento.

Desmotivação da equipe.

Falhas em produção.

Prazos impossíveis.

Tudo porque alguém acreditou que uma tecnologia resolveria problemas de gestão.


Os sinais de alerta

Um programador experiente costuma desconfiar quando escuta:

"Não precisa testar."

"É automático."

"É impossível errar."

"Não precisa documentação."

"A IA faz tudo."

"Não existe curva de aprendizado."

"É só apertar um botão."

Na Engenharia de Software...

essas frases quase sempre escondem armadilhas.


A Inteligência Artificial é uma bala de prata?

Não.

Ela é uma ferramenta extraordinária.

Pode:

escrever código

explicar programas

gerar documentação

traduzir linguagens

encontrar bugs

criar testes

ajudar aprendizado

Mas continua dependendo de:

dados corretos

prompts corretos

contexto

engenheiros

revisão humana

governança

Ela acelera.

Não substitui conhecimento.


E no IBM Mainframe?

Hoje temos:

IBM watsonx

IBM Z Assist

GitHub Copilot

ChatGPT

Claude

Gemini

Todos ajudam bastante.

Mas nenhum conhece sozinho:

as regras específicas do seu banco.

Nem do seu seguro.

Nem da sua empresa.

Quem conhece isso é a equipe.


A razão de usar essa expressão

A expressão continua viva porque funciona como um lembrete.

Ela combate um dos maiores riscos da tecnologia:

acreditar que ferramentas substituem engenharia.

Toda tecnologia deve ser avaliada por perguntas como:

  • Qual problema ela resolve?

  • Quais problemas ela não resolve?

  • Quanto custa?

  • Qual o retorno?

  • Como integra ao legado?

  • Quem dará manutenção?

  • Qual o impacto operacional?

Essas perguntas são mais importantes do que o nome da tecnologia.


A lição para um COBOL Padawan

Existe uma analogia perfeita com Star Wars.

Todo Padawan procura o sabre de luz perfeito.

Mas Yoda nunca ensinou que a força estava na espada.

Ela estava no treinamento.

Na disciplina.

Na experiência.

Na paciência.

Na capacidade de aprender continuamente.

Na Engenharia de Software acontece exatamente a mesma coisa.

O compilador muda.

A linguagem muda.

O framework muda.

O banco de dados muda.

A infraestrutura muda.

Mas os princípios permanecem.


Conclusão

A expressão "bala de prata" atravessou séculos porque representa um desejo humano muito antigo: encontrar uma solução simples para problemas difíceis. No folclore, era a única arma capaz de derrotar monstros. Na Engenharia de Software, tornou-se um alerta contra promessas exageradas.

Frederick Brooks mostrou que a maior parte dos desafios do desenvolvimento não nasce da linguagem, do compilador ou do hardware, mas da própria complexidade do negócio. É por isso que, décadas depois, bancos, seguradoras, governos e grandes empresas continuam evoluindo seus sistemas em IBM Z e COBOL enquanto incorporam IA, APIs, containers e computação em nuvem. As novas tecnologias ampliam capacidades, mas não eliminam a necessidade de entender regras de negócio, projetar boas arquiteturas, testar, documentar e manter sistemas críticos.

Para o Programador COBOL Padawan, a verdadeira "bala de prata" não está em uma linguagem da moda nem em uma ferramenta milagrosa. Ela está na combinação de curiosidade, estudo contínuo, domínio dos fundamentos, capacidade de compreender o negócio e humildade para reconhecer que toda tecnologia tem pontos fortes e limitações.

Da próxima vez que alguém afirmar que encontrou a solução definitiva para todos os problemas da computação, sorria, tome um gole de café e lembre-se da maior lição de Frederick Brooks:

Na Engenharia de Software, não existem atalhos mágicos. Existem profissionais que aprendem continuamente e constroem soluções sólidas, um programa de cada vez.

 

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