Translate

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

domingo, 19 de abril de 2026

💀 RONIN DO MAINFRAME: O CÓDIGO SEM SENHOR NO MUNDO CORPORATIVO

 

Bellacosa Mainframe fala sobre Ronins e Terceirização

💀 RONIN DO MAINFRAME: O CÓDIGO SEM SENHOR NO MUNDO CORPORATIVO

Existe um tipo de profissional que não pertence a lugar nenhum… mas é essencial em todos os lugares.
No Japão feudal, ele era chamado de ronin.
No mundo corporativo — especialmente no universo mainframe — ele atende por outro nome: o terceirizado de projeto.

E a semelhança vai muito além da estética.


⚔️ O QUE É UM RONIN, AFINAL?

A palavra ronin (浪人) significa literalmente “homem à deriva”.

No Japão feudal:

  • Era um samurai sem mestre (daimyō)
  • Perdia seu senhor por morte, desonra ou queda política
  • Ficava sem propósito fixo, sem renda e sem proteção

Mas não se engane…
Um ronin não era um fracasso.

Ele era, muitas vezes:

  • Extremamente habilidoso
  • Independente
  • Perigoso
  • E… livre demais para um sistema que exigia lealdade absoluta

💻 O RONIN DO MAINFRAME

Agora transporta isso para o nosso mundo…

O profissional que:

  • Entra em projetos críticos
  • Resolve o que ninguém resolve
  • Domina COBOL, JCL, CICS, DB2 como poucos
  • E… quando tudo estabiliza, é dispensado

Esse é o ronin corporativo.

Sem squad fixo.
Sem “casa”.
Sem pertencimento.

Mas com algo que poucos têm:
👉 capacidade de sobrevivência em qualquer ambiente hostil de TI


🔥 ANALOGIA DIRETA (SEM FILTRO)

Japão FeudalMainframe Corporativo
DaimyōCliente / Empresa
SamuraiFuncionário CLT
RoninTerceirizado
KatanaConhecimento técnico
Código de honra (Bushidō)Boas práticas, governança
SobrevivênciaAlocação em projetos

E aqui vem o ponto mais forte…

👉 O ronin não escolhe estabilidade.
👉 Ele escolhe movimento.


🧠 FILOSOFIA RONIN (QUE TODO DEV DEVERIA ENTENDER)

O ronin vive sob três regras não escritas:

1. 🧭 Você é sua própria reputação

Sem empresa para te “defender”, só existe:

  • Seu nome
  • Sua entrega
  • Seu histórico

No mainframe isso pesa ainda mais…
porque todo mundo se conhece.


2. ⚡ Aprender não é opcional

O ronin não tem zona de conforto.

Hoje é:

  • Batch noturno quebrando

Amanhã:

  • Problema em CICS com transação travando

Depois:

  • SQL de 1978 que ninguém entende

Se você não evolui… você desaparece.


3. 🏹 Desapego é sobrevivência

Terminou o projeto?

Você vai embora.

Sem despedida dramática.
Sem “vamos manter contato” que nunca acontece.

👉 Só o próximo desafio.


🏯 ORIGEM HISTÓRICA (CURIOSIDADE RAIZ)

Os ronin ficaram especialmente famosos após eventos como:

  • A era Tokugawa (1603–1868), quando guerras diminuíram
  • Muitos samurais ficaram sem função
  • Alguns viraram mercenários
  • Outros… professores, escritores ou até criminosos

O caso mais icônico:
👉 Os 47 Ronin

Um grupo que vingou seu mestre mesmo após anos — um dos maiores símbolos de lealdade da cultura japonesa.


🧩 EASTER EGGS QUE POUCA GENTE PERCEBE

  • 🔍 Muitos personagens de anime são “ronins modernos” (sem mestre, sem vínculo)
  • 💡 No mundo corporativo, o ronin é frequentemente o cara que “salva o legado”
  • ⚠️ Empresas dependem deles… mas raramente os valorizam corretamente
  • 🧠 O conhecimento deles é tácito, não documentado — um risco gigante

⚠️ O LADO SOMBRIO DO RONIN CORPORATIVO

Nem tudo é poesia.

Ser um ronin no mainframe também significa:

  • Falta de estabilidade
  • Pouco reconhecimento institucional
  • Desgaste constante
  • Necessidade de provar valor repetidamente

👉 É uma vida de guerra contínua.


🚀 O GRANDE PARADOXO

As empresas dizem querer:

  • Estabilidade
  • Padronização
  • Governança

Mas quando o sistema cai…

👉 Elas chamam o ronin.


☕ CONCLUSÃO ESTILO BELLACOSA

O ronin do mainframe não é só um profissional.

Ele é:

  • O cara que entra no caos
  • Entende código legado sem documentação
  • Resolve em silêncio
  • E desaparece antes dos aplausos

Enquanto muitos buscam conforto…

👉 O ronin busca relevância.

E no fundo, no fundo…

Todo ambiente crítico de mainframe sabe:

“Sem os ronins… muita coisa simplesmente pararia.”

 

domingo, 17 de outubro de 2021

Technical Debt Rules : Quando um Programador COBOL Descobriu que Cada Atalho Criava um Agente Smith Dentro do Sistema

 

Bellacosa Mainframe e as technical debt rules

☕ Um Café no Bellacosa Mainframe

Technical Debt Rules sem Mistérios

Quando um Programador COBOL Descobriu que Cada Atalho Criava um Agente Smith Dentro do Sistema

"Infelizmente, ninguém pode explicar o que é a Dívida Técnica. Você precisa vê-la por si mesmo." — inspirado no universo de Matrix


Bem-vindo à Matrix do Desenvolvimento

Imagine que você acorda em uma sala escura.

Na sua frente existe um monitor verde.

Linhas de caracteres descem como chuva.

Um homem de óculos escuros aproxima-se.

Não é Morpheus.

É o Analista de Sistemas mais antigo da empresa.

Ele coloca duas fitas magnéticas sobre a mesa.

Uma vermelha.

Outra azul.

A azul compila hoje.

A vermelha exige refatoração, testes, documentação e arquitetura.

Você pergunta:

— Qual delas devo escolher?

Ele sorri.

— A azul entrega o projeto este mês.

— A vermelha salva os próximos dez anos.

Naquele instante você entende que toda equipe de desenvolvimento vive diariamente essa escolha.

Esse é o universo da Technical Debt, ou Dívida Técnica, um dos conceitos mais importantes — e mais mal compreendidos — da Engenharia de Software.

Para quem trabalha com COBOL, CICS, Db2, JCL e sistemas legados, entender a Dívida Técnica é quase tão importante quanto saber interpretar um ABEND. Ela explica por que alguns sistemas envelhecem com dignidade enquanto outros se tornam um labirinto impossível de manter.


O que é Technical Debt?

Technical Debt é o custo futuro provocado por decisões técnicas tomadas para ganhar velocidade no presente.

Em outras palavras:

É quando você economiza tempo hoje emprestando tempo do seu próprio futuro.

Assim como um empréstimo bancário, a dívida técnica pode ser útil quando administrada conscientemente.

O problema não é contrair uma dívida.

O problema é esquecer que ela existe.


A origem do termo

O termo Technical Debt foi criado em 1992 por Ward Cunningham, um dos autores do Manifesto Ágil e criador do primeiro Wiki da história.

Ward percebeu que muitos gestores entendiam dinheiro, juros e empréstimos, mas tinham dificuldade para compreender problemas de arquitetura de software.

Então fez uma analogia brilhante.

Ele disse:

"Entregar um software antes de terminar sua arquitetura é como fazer um empréstimo. Pode ser uma boa decisão, desde que você pague rapidamente."

O problema aparece quando os juros começam.

E em software...

...os juros aparecem em forma de:

  • bugs

  • retrabalho

  • lentidão

  • dificuldades para alterar regras

  • aumento do tempo de testes

  • aumento de incidentes


Matrix explica melhor que muitos livros

Imagine que cada linha de código seja parte da Matrix.

Quando tudo é desenvolvido corretamente...

a simulação permanece estável.

Mas sempre existe alguém dizendo:

"Depois a gente arruma."

Esse "depois" nunca chega.

Cada pequeno atalho cria pequenas distorções.

No começo parecem insignificantes.

Depois surgem pequenos defeitos.

Mais tarde aparecem exceções.

Finalmente...

a Matrix inteira começa a produzir Agentes Smith.


Quem são os Agentes Smith?

No mundo do software, os Agentes Smith representam problemas que surgem continuamente.

Cada vez que um desenvolvedor resolve um bug rapidamente sem corrigir sua causa...

nasce um novo Smith.

Cada IF duplicado...

mais um Smith.

Cada variável mal nomeada...

outro Smith.

Cada programa COBOL de cinquenta mil linhas...

centenas deles.

Eles continuam se multiplicando até dominar todo o sistema.


Um exemplo COBOL

Imagine este código:

IF TIPO = "A"
    MOVE 15 TO DESCONTO
END-IF

Alguns meses depois.

Nova regra.

IF TIPO = "A"
    MOVE 20 TO DESCONTO
END-IF

Mais tarde.

Outro programador.

IF CLIENTE-PREMIUM
    MOVE 25 TO DESCONTO
END-IF

Depois.

Outro módulo.

Mesmo código.

Depois outro.

E outro.

Agora existem quinze versões diferentes da mesma regra.

Toda alteração exige procurar manualmente.

Esse é um clássico exemplo de dívida técnica.


O que gera Technical Debt?

Pressão por prazo

"Entrega sexta."

Mesmo sabendo que deveria levar três semanas.


Falta de testes

"Depois escrevemos."

Nunca escrevem.


Documentação inexistente

"Todo mundo entende."

Dois anos depois ninguém entende.


Copiar código

CTRL+C

CTRL+V

CTRL+C

CTRL+V

Assim nasce o caos.


Arquitetura improvisada

Funciona.

Mas ninguém sabe explicar.


Falta de revisão

Sem Code Review...

os problemas entram em produção.


Falta de treinamento

Programadores repetem erros porque nunca aprenderam alternativas melhores.


A dívida nem sempre é ruim

Essa é uma curiosidade interessante.

Nem toda dívida técnica é um erro.

Imagine um banco.

Existe uma exigência legal.

Prazo:

48 horas.

A equipe decide criar uma solução provisória.

Entrega.

Banco evita multas.

Depois reserva tempo para refatorar.

Excelente decisão.

Foi uma dívida consciente.


Dívida consciente x dívida inconsciente

Dívida consciente

"Sabemos que esse código está temporário."

Existe plano.

Existe prazo.

Existe orçamento.


Dívida inconsciente

"Nunca percebemos que fizemos errado."

Muito mais perigosa.


Os juros da dívida

Todo empréstimo possui juros.

Software também.

Os juros aparecem como:

Mais tempo para manutenção

Uma alteração simples leva dias.


Bugs recorrentes

Conserta um.

Quebra outro.


Medo

"Não mexe."

Frase clássica do legado.


Performance

Cada remendo adiciona processamento.

No mainframe isso significa:

  • CPU

  • MIPS

  • consumo

  • custo


Novos profissionais demoram meses

Porque entender ficou difícil.


Como a dívida cresce?

Imagine um cartão de crédito.

Primeiro mês:

100 reais.

Segundo mês:

Terceiro:

Depois:

Depois:

Software faz exatamente isso.

Cada nova funcionalidade construída sobre código ruim aumenta exponencialmente a complexidade.


O Mainframe sofre muito?

Curiosamente...

sim.

E não.

Mainframes normalmente possuem código extremamente robusto.

Mas muitos sistemas existem há quarenta anos.

Durante quatro décadas...

centenas de programadores passaram por eles.

Cada geração deixou pequenas modificações.

O resultado pode ser:

  • GOTO esquecidos

  • IFs duplicados

  • COPYBOOKS redundantes

  • programas gigantescos

  • tabelas obsoletas

  • JCLs nunca revisados


Um exemplo realista

Imagine um programa COBOL chamado:

PGMFIN01

1988

2.300 linhas.

1992

3.800 linhas.

1998

6.500 linhas.

2007

11.000 linhas.

2016

19.000 linhas.

2026

41.000 linhas.

Ninguém teve coragem de dividir.

Cada manutenção ficou mais cara.

A dívida cresceu silenciosamente.


O Oráculo explica

No universo Matrix, o Oráculo nunca entrega respostas prontas.

Ela oferece entendimento.

Na Engenharia de Software acontece igual.

A dívida técnica raramente aparece em relatórios.

Ela aparece nos sintomas.

Equipe cansada.

Prazo aumentando.

Mudanças simples demorando semanas.

Clientes reclamando.

ABENDs aparecendo após pequenas alterações.

Esses são os sinais.


Como reduzir a dívida?

Refatoração

Melhorar código sem alterar comportamento.

É a principal arma.


Testes automatizados

Permitem mudar com segurança.


Revisão de código

Dois olhos veem mais que um.


Arquitetura

Planejamento evita improvisos.


Documentação viva

Nunca deixe conhecimento apenas na memória.


Pair Programming

Conhecimento compartilhado.


Mentoria

Programadores experientes aceleram iniciantes.


Limpeza contínua

Nunca espere uma grande reescrita.

Melhore um pouco todos os dias.


A Regra do Escoteiro

Robert C. Martin popularizou uma ideia simples:

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

Imagine milhares de desenvolvedores fazendo isso durante anos.

A dívida diminui naturalmente.


Atenção!

Existe um erro muito comum.

Confundir:

Refatoração

com

Reescrita.

São coisas completamente diferentes.

Refatorar melhora.

Reescrever substitui.

Nem sempre reescrever é inteligente.

Muitos projetos falharam tentando "começar do zero".


O perigo da Grande Reescrita

Na Matrix Reloaded, Neo descobre que destruir tudo não resolve.

Em software acontece igual.

Jogar fora um sistema COBOL de quarenta anos pode significar perder décadas de conhecimento de negócio.

O ideal é evoluir gradualmente.


Ferramentas que ajudam

Hoje existem excelentes ferramentas.

  • IBM ADDI

  • IBM Application Discovery

  • SonarQube

  • IBM COBOL Check

  • IBM Z Open Editor

  • IBM Developer for z/OS

  • GitHub Copilot

  • ChatGPT

  • Claude

  • ZUnit

Elas ajudam a identificar:

  • duplicações

  • complexidade

  • dependências

  • código morto

  • riscos


Sinais de alerta

Você deve investigar dívida técnica quando ouvir frases como:

"Não sabemos por que funciona."

"Não mexe nesse módulo."

"Compila assim mesmo."

"Só o João entende."

"Depois documentamos."

"Tem um GOTO aí... mas deixa."

"É gambiarra temporária."

Seis meses depois...

continua igual.


O papel do Programador COBOL Padawan

Um Padawan costuma pensar:

"Meu trabalho é escrever código."

Na verdade, não.

Seu trabalho é entregar soluções sustentáveis.

Sempre pergunte:

  • Isso poderá ser entendido daqui cinco anos?

  • Outro programador conseguirá manter?

  • Existe teste?

  • Existe documentação?

  • Existe duplicação?

  • Essa regra deveria estar em um COPYBOOK?

  • Esse programa precisa mesmo crescer mais mil linhas?

Essas perguntas evitam que você alimente a Matrix com novos Agentes Smith.


Curiosidades sobre a Dívida Técnica

  • Existem empresas que dedicam 20% do tempo de desenvolvimento apenas para pagar dívida técnica.

  • Grandes bancos mantêm backlogs exclusivos de refatoração, separados das novas funcionalidades.

  • Algumas organizações medem a dívida técnica com ferramentas que estimam quantos dias de trabalho seriam necessários para corrigir todos os problemas encontrados.

  • Em projetos críticos, reduzir dívida técnica pode gerar economia significativa em horas de manutenção, consumo de CPU, incidentes e retrabalho.


Outros "parentes" da Dívida Técnica

Ela costuma caminhar ao lado de diversos conceitos conhecidos:

  • Code Smell – sinais de que algo pode estar mal projetado.

  • Big Ball of Mud – sistema sem arquitetura definida.

  • Spaghetti Code – código confuso e altamente acoplado.

  • God Object – um único módulo faz tudo.

  • Bus Factor – conhecimento concentrado em poucas pessoas.

  • Shotgun Surgery – uma pequena alteração exige modificar dezenas de arquivos.

  • Lava Flow – código antigo que ninguém remove por medo.

Todos esses conceitos frequentemente aparecem juntos.


A Grande Escolha: Pílula Azul ou Pílula Vermelha?

No final de Matrix, Neo percebe que conhecer a verdade traz responsabilidade.

Na Engenharia de Software acontece exatamente o mesmo.

Você pode escolher a pílula azul:

  • copiar código;

  • ignorar testes;

  • adiar documentação;

  • aceitar "gambiarras permanentes";

  • acreditar que "funcionando está bom".

Ou pode escolher a pílula vermelha:

  • compreender a arquitetura;

  • investir em refatoração;

  • escrever código legível;

  • compartilhar conhecimento;

  • documentar regras de negócio;

  • pensar no próximo programador que abrirá aquele programa COBOL daqui a dez anos.

A primeira opção parece mais rápida, mas cobra juros crescentes. A segunda exige disciplina, porém constrói sistemas resilientes que atravessam décadas — exatamente como os grandes sistemas IBM Z que sustentam bancos, seguradoras, governos e companhias aéreas ao redor do mundo.

No universo Bellacosa Mainframe, a maior lição é clara: o inimigo não é o legado; é o legado abandonado. Sistemas COBOL envelhecem muito bem quando recebem manutenção consciente, arquitetura sólida e equipes comprometidas em reduzir continuamente a dívida técnica. Assim como Neo precisou aprender a enxergar além do código verde da Matrix, o Programador COBOL Padawan precisa aprender a enxergar além da próxima entrega e pensar no impacto que cada linha escrita hoje terá no futuro da organização.

Porque, no fim, toda dívida será paga. A única dúvida é quem pagará a conta: você hoje ou toda a equipe amanhã?

sexta-feira, 2 de julho de 2021

Golden Hammer Rules : Quando um Programador COBOL Descobriu que Nem Todo Problema da Matrix Deve Ser Resolvido com a Mesma Ferramenta

 

Bellacosa Mainframe e a golden hammer rules

☕ Um Café no Bellacosa Mainframe

Golden Hammer Rules sem Mistérios

Quando um Programador COBOL Descobriu que Nem Todo Problema da Matrix Deve Ser Resolvido com a Mesma Ferramenta

"Se tudo o que você possui é um martelo dourado, a Matrix fará você acreditar que todos os problemas são pregos."


Prólogo — O Arsenal da Nebuchadnezzar

A Nebuchadnezzar atravessa silenciosamente os túneis subterrâneos de Zion.

Neo acaba de retornar de uma missão.

Na tela principal aparecem dezenas de chamados críticos.

Morpheus aponta para o painel.

— Precisamos resolver tudo isso antes que os Sentinelas encontrem nossa posição.

Neo observa a lista.

  • Lentidão no banco de dados.

  • Falha de autenticação.

  • Erro em uma API REST.

  • ABEND S0C7 em um programa COBOL.

  • Saturação da fila MQ.

  • Gargalo em processamento batch.

  • Interface gráfica travando.

Antes que alguém diga qualquer coisa...

Cypher responde:

— Fácil.

Vamos resolver tudo em Java.

Trinity balança a cabeça.

Logo outro programador interrompe.

— Não.

Tudo deveria ser Python.

Um arquiteto sorri.

— Na verdade...

Tudo deveria virar microsserviço.

O operador do mainframe responde.

— Nada disso.

COBOL resolve tudo.

Morpheus olha para Neo.

— Acabamos de encontrar o Golden Hammer.


O que é Golden Hammer?

Golden Hammer (Martelo Dourado) é um dos antipadrões mais conhecidos da Engenharia de Software.

Ele descreve uma situação muito comum:

Quando uma pessoa insiste em usar sempre a mesma tecnologia, linguagem, arquitetura ou ferramenta para resolver qualquer problema, independentemente de existir uma solução mais adequada.

É o famoso pensamento:

"Se tudo o que você possui é um martelo, todos os problemas parecem pregos."


A origem do conceito

O conceito nasceu inspirado em uma frase atribuída ao psicólogo Abraham Maslow, na década de 1960.

Ele escreveu:

"I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail."

("Suponho que seja tentador, se a única ferramenta que você possui é um martelo, tratar tudo como se fosse um prego.")

Décadas depois, a Engenharia de Software adotou essa ideia.

O "martelo" tornou-se uma tecnologia favorita.

O "prego" virou qualquer problema.


Matrix explica isso perfeitamente

Imagine que Neo acabou de aprender Kung Fu.

Ele está empolgado.

Agora tenta resolver tudo usando artes marciais.

Portas trancadas?

Kung Fu.

Computador travado?

Kung Fu.

Problema de criptografia?

Kung Fu.

Banco de dados?

Kung Fu.

Morpheus sorri.

— Neo...

Saber usar uma ferramenta não significa que ela seja adequada para tudo.

Na Engenharia de Software acontece exatamente isso.


O Golden Hammer no Mainframe

Imagine um programador COBOL extremamente experiente.

Trinta anos de carreira.

Excelente profissional.

Recebe um novo desafio.

Criar um chatbot baseado em IA Generativa.

Sua primeira resposta:

"Vamos fazer tudo em COBOL."

Será que COBOL consegue participar?

Claro.

Mas será que deve implementar o modelo de linguagem?

Provavelmente não.

COBOL pode integrar.

Python pode treinar modelos.

Java pode expor APIs.

MQ pode transportar mensagens.

Cada ferramenta possui seu papel.


Outro exemplo

Agora imagine o contrário.

Um desenvolvedor recém-chegado diz:

"Vamos reescrever todo o core bancário em Node.js."

Pode parecer moderno.

Mas será sensato substituir milhões de linhas COBOL altamente estáveis apenas porque a tecnologia está na moda?

Também não.

Golden Hammer funciona nos dois sentidos.


O nascimento do Martelo Dourado

Como alguém desenvolve esse comportamento?

Normalmente acontece assim.

O profissional aprende profundamente uma tecnologia.

Ela resolve vários problemas.

Recebe promoções.

Ganha reconhecimento.

Depois de alguns anos...

começa a enxergar aquela ferramenta como solução universal.

Sem perceber...

entra na Matrix do Golden Hammer.


O efeito psicológico

Existe um fenômeno chamado:

Comfort Zone Bias

Nosso cérebro prefere utilizar aquilo que já domina.

É muito mais confortável escrever:

COBOL

do que aprender Rust.

Muito mais confortável usar:

Python

do que entender CICS.

Muito mais confortável usar:

Java

do que estudar Db2.

A Matrix adora conforto.


Exemplo COBOL

Projeto:

Integração com OpenAI.

O arquiteto propõe:

Python.

REST.

JSON.

OAuth.

HTTPS.

Mas alguém insiste:

"Vamos implementar um parser manual de JSON em COBOL para tudo."

Será que funciona?

Sim.

É a melhor solução?

Nem sempre.


Exemplo inverso

Outro projeto.

Processamento de cinquenta milhões de transações diárias.

Alguém sugere:

"Vamos migrar tudo para microsserviços."

Pergunta importante.

Por quê?

Resposta:

"Porque todo mundo está fazendo."

Isso também é Golden Hammer.


Matrix Reloaded

O Arquiteto conhece milhares de linguagens.

Ele nunca pergunta:

"Qual tecnologia eu gosto?"

Ele pergunta:

"Qual tecnologia resolve melhor este problema?"

Essa é a pergunta que diferencia um arquiteto de um fanático.


O Agente Smith representa o fanatismo

Smith acredita existir apenas uma forma correta.

Todos devem ser iguais.

Mesmo comportamento.

Mesmo pensamento.

Mesmo padrão.

Golden Hammer funciona exatamente assim.

Existe apenas:

uma linguagem.

uma arquitetura.

uma solução.

Na vida real...

isso nunca é verdade.


O perigo para Programadores COBOL

Alguns profissionais acreditam:

"Tudo deve ser COBOL."

Outros:

"Tudo deve ser Java."

Outros:

"Tudo deve ser Python."

Outros:

"Tudo deve ser IA."

Nenhum extremo é saudável.


O COBOL continua importante?

Absolutamente.

Ele continua sendo excelente para:

  • processamento batch

  • regras de negócio

  • alta disponibilidade

  • transações financeiras

  • integração com Db2

  • CICS

  • sistemas críticos

Mas isso não significa que deva resolver tudo sozinho.


O Arsenal da Frota

Imagine a Frota de Zion.

Ela possui:

EMP.

Hovercraft.

Sentinelas capturadas.

Explosivos.

Robôs.

Cada equipamento possui uma função.

Nenhum substitui todos os outros.

Software também.


Ferramenta certa para o problema certo

ProblemaMelhor opção (exemplo)
Processamento financeiroCOBOL
Interface WebReact
IAPython
IntegraçãoJava / Go
MensageriaMQ / Kafka
PersistênciaDb2
Busca textualElasticsearch
AutomaçãoAnsible
ContainersDocker

Nenhuma tecnologia vence todas.


Como identificar Golden Hammer?

Faça perguntas.

Estou escolhendo isso porque:

É a melhor solução?

Ou

Porque é a única que conheço?

Essa pergunta muda carreiras.


Sinais de alerta

Frases clássicas.

"COBOL resolve tudo."

"Java resolve tudo."

"Python resolve tudo."

"IA resolve tudo."

"Microsserviços resolvem tudo."

"Kubernetes resolve tudo."

Sempre que alguém usa:

"Tudo"

desconfie.


Os riscos

Arquitetura inadequada

Ferramenta errada.

Problema certo.

Resultado ruim.


Custos elevados

Tecnologia inadequada gera desperdício.


Performance

Nem toda linguagem foi feita para todas as cargas.


Manutenção

Equipe sofre.


Escalabilidade

Nem sempre acompanha crescimento.


Dependência tecnológica

Empresa fica presa.


O Golden Hammer e o hype

A Matrix também cria modismos.

Hoje:

IA.

Ontem:

Blockchain.

Antes:

Microservices.

Antes:

SOA.

Antes:

XML.

Antes:

CORBA.

Antes:

Cliente-Servidor.

Toda geração acredita ter encontrado a solução definitiva.

Nenhuma encontrou.


Curiosidade

Empresas maduras raramente perguntam:

"Qual tecnologia usamos?"

Perguntam:

"Qual problema estamos resolvendo?"

Essa diferença parece pequena.

Mas muda completamente a arquitetura.


O papel do Arquiteto

O verdadeiro arquiteto conhece muitas ferramentas.

Não porque gosta delas.

Mas porque precisa escolher.

Escolher exige comparação.


Matrix e o Escolhido

Neo não vence porque usa apenas força.

Ele vence porque aprende.

Aprende:

quando lutar.

quando fugir.

quando negociar.

quando confiar.

Tecnologia também.


Como evitar o Golden Hammer?

Aprenda continuamente

Quanto maior seu repertório...

menor o fanatismo.


Compare alternativas

Nunca escolha a primeira solução.


Faça provas de conceito

POCs reduzem riscos.


Escute especialistas

Ninguém domina tudo.


Entenda o negócio

Tecnologia serve ao negócio.

Não o contrário.


O COBOL Padawan

Você não precisa abandonar COBOL.

Muito pelo contrário.

Domine COBOL profundamente.

Mas aprenda também:

  • APIs

  • JSON

  • Python

  • Git

  • Docker

  • Linux

  • SQL

  • MQ

  • Cloud

  • IA

Assim seu martelo vira uma caixa de ferramentas.


Atenção!

Existe um erro comum.

Confundir:

Especialização

com

Fanatismo.

Ser especialista em COBOL é excelente.

Acreditar que COBOL resolve absolutamente tudo...

não.


Aplicabilidade

Golden Hammer aparece em:

  • Arquitetura

  • Infraestrutura

  • Banco de Dados

  • IA

  • Cloud

  • Segurança

  • DevOps

  • Mainframe

  • Mobile

  • Web

É universal.


Curiosidades

IBM utiliza dezenas de linguagens diferentes internamente.

Google também.

Amazon.

Microsoft.

Meta.

Nenhuma empresa gigante aposta em apenas uma tecnologia.

Todas trabalham com ecossistemas.


O Ensinamento do Oráculo

O Oráculo entrega uma caixa de ferramentas para Neo.

Dentro existem:

uma chave inglesa.

um alicate.

um martelo.

uma chave Phillips.

uma chave Allen.

Neo pergunta.

"Qual delas é a melhor?"

Ela responde.

"Depende do parafuso."

Essa talvez seja a melhor definição de Arquitetura de Software.


Erros comuns

  • Escolher tecnologia por moda.

  • Escolher tecnologia por preferência pessoal.

  • Ignorar restrições do negócio.

  • Reescrever sistemas estáveis sem necessidade.

  • Recusar novas ferramentas por orgulho.

  • Adotar ferramentas novas sem avaliar maturidade.


Lições para um Programador COBOL Padawan

No universo IBM Z, você trabalhará com sistemas que combinam COBOL, CICS, Db2, MQ, APIs REST, Java, Python, Zowe, Ansible e ferramentas de observabilidade. Um bom profissional entende que essas tecnologias não competem entre si; elas se complementam.

Seu objetivo não deve ser provar que COBOL é superior a Java, ou que Python é melhor que COBOL. Seu objetivo é entregar uma solução segura, eficiente, sustentável e adequada ao problema de negócio.

Quanto maior seu repertório técnico, maior será sua capacidade de tomar decisões equilibradas.


Conclusão — A Verdadeira Escolha Fora da Matrix

No final de Matrix Revolutions, Neo compreende que vencer não depende de força bruta, mas de compreender o sistema como um todo.

Na Engenharia de Software acontece exatamente o mesmo.

O profissional que enxerga apenas uma linguagem, um framework ou uma arquitetura está preso dentro de sua própria Matrix. Seu "martelo dourado" limita sua visão e faz com que qualquer desafio pareça exigir exatamente a mesma solução.

O verdadeiro Arquiteto da Frota Bellacosa Mainframe aprende uma lição diferente:

  • COBOL não substitui Python.

  • Python não substitui COBOL.

  • Microsserviços não substituem Mainframes.

  • Mainframes não eliminam a necessidade de APIs.

  • IA não elimina engenharia de software.

Cada ferramenta possui seu momento.

Cada tecnologia possui seu propósito.

Cada decisão deve ser guiada pelo problema de negócio, pelos requisitos não funcionais, pelos riscos e pelo contexto operacional.

Porque existe uma frase que todo Programador COBOL Padawan deveria gravar em sua memória:

"O melhor engenheiro não é aquele que possui o maior martelo. É aquele que sabe exatamente quando guardá-lo e escolher outra ferramenta."

Esse é o caminho para sair da Matrix do Golden Hammer e evoluir para um verdadeiro Arquiteto de Sistemas.

quarta-feira, 13 de maio de 2020

O Fator Ônibus Rules : O Dia em que um Programador COBOL Descobriu que o Maior Risco do Mainframe Não Era um ABEND... Era uma Pessoa Só

 

Bellacosa Mainframe e o fator onibus rules em engenharia de software

☕ Um Café no Bellacosa Mainframe

O Fator Ônibus Rules sem Mistérios

O Dia em que um Programador COBOL Descobriu que o Maior Risco do Mainframe Não Era um ABEND... Era uma Pessoa Só

"Computadores não guardam conhecimento. Pessoas guardam. O problema começa quando apenas uma pessoa sabe como tudo funciona."


Introdução — O Incidente na USS Enterprise

Imagine que a USS Enterprise esteja explorando um setor desconhecido da galáxia.

O Capitão Kirk está em uma missão diplomática.

Spock foi capturado pelos romulanos.

Scotty está preso na casa de máquinas tentando impedir uma explosão no núcleo de dobra.

McCoy está operando um tripulante.

Sulu está pilotando uma nave auxiliar.

Chekov perdeu comunicação.

Quem sabe operar toda a Enterprise?

Se apenas Scotty conhece o funcionamento do motor de dobra...

...a missão inteira depende dele.

No desenvolvimento de software acontece exatamente a mesma coisa.

Existe um conceito bastante conhecido na Engenharia de Software chamado Bus Factor (Fator Ônibus).

É uma métrica extremamente simples.

E extremamente assustadora.


O que é o Bus Factor?

Bus Factor mede:

Quantas pessoas podem deixar um projeto antes que ele deixe de funcionar.

Ou, na definição clássica:

Quantas pessoas precisariam ser atropeladas por um ônibus para que o projeto ficasse inviável.

Apesar do nome parecer humor negro, o objetivo nunca foi falar de acidentes.

Hoje muitas empresas preferem nomes como:

  • Lottery Factor

  • Truck Factor

  • Beer Truck Factor

  • Departure Factor

A ideia é a mesma.

Se apenas uma pessoa conhece todo o sistema...

Bus Factor = 1

Se cinco pessoas dominam tudo...

Bus Factor = 5

Quanto maior o número...

mais saudável é o projeto.


A origem do termo

O conceito apareceu informalmente nos anos 1990 em equipes de desenvolvimento.

Depois foi bastante difundido por comunidades Open Source.

Grandes projetos como:

  • Linux

  • Apache

  • PostgreSQL

  • Kubernetes

passaram a discutir continuamente como aumentar seu Bus Factor.

Hoje empresas como Google, Microsoft, IBM, Amazon e Meta utilizam práticas justamente para evitar esse risco.


Por que isso acontece?

Porque conhecimento técnico é caro.

E conhecimento acumulado durante anos é mais caro ainda.

Imagine um sistema bancário COBOL criado em 1987.

Foram feitas:

  • milhares de correções

  • centenas de integrações

  • dezenas de migrações

Mas apenas João conhece:

  • o motivo daquele IF estranho

  • porque existe aquele PERFORM GO TO

  • porque aquele arquivo VSAM não pode ser reorganizado na sexta-feira

Sem João...

ninguém entende.


O verdadeiro patrimônio não é o código

Muitos pensam:

"O código está no Git."

Não.

O código é apenas uma fotografia.

O conhecimento está na cabeça das pessoas.

Por exemplo.

Imagine este trecho:

IF CODIGO = 98
    MOVE "N" TO PROCESSAR
END-IF

Todo mundo consegue ler.

Mas somente um programador sabe que:

"98 significa agência incorporada antes da fusão de 1999."

Isso nunca foi documentado.


O Bus Factor no Mainframe

Mainframe possui uma característica curiosa.

Sistemas vivem por décadas.

Enquanto aplicações Web costumam durar poucos anos...

há programas COBOL executando desde os anos 80.

Isso cria um fenômeno interessante.

Os programadores mudam.

O sistema permanece.

Quem sobrevive?

O conhecimento.


O Programador Lendário

Toda empresa possui um.

Normalmente conhecido por frases como:

"Pergunta para o Carlos."

ou

"Só a Maria sabe."

ou

"Não mexe nisso."

ou

"Esse módulo é do Roberto."

Quando alguém fala isso...

o Bus Factor acabou de aparecer.


Um caso clássico

Imagine um programa COBOL de 250 mil linhas.

Existe um JOB chamado:

PGM=FECHAMES

Todos sabem executá-lo.

Ninguém sabe como funciona.

Quando aparece erro...

esperam José voltar das férias.

Isso significa:

Bus Factor = 1


Como identificar um Bus Factor baixo?

Existem sinais muito claros.

Sempre chamam a mesma pessoa

"Fulano resolve."

Isso é risco.


Férias geram pânico

A equipe evita liberar férias.

Outro alerta.


Ninguém revisa aquele código

Porque ninguém entende.


Documentação inexistente

Tudo está "na memória".


Medo de alterar

Frases como:

"Melhor não mexer."

indicam conhecimento concentrado.


O impacto nos projetos

Um Bus Factor baixo provoca:

  • atrasos

  • retrabalho

  • bugs

  • decisões lentas

  • dependência

  • burnout

E principalmente:

medo.


Burnout técnico

O especialista nunca descansa.

Nunca tira férias.

Nunca muda de área.

Nunca cresce.

Porque virou gargalo.

Ele deixa de ser desenvolvedor.

Passa a ser suporte permanente.


O paradoxo

Muitos profissionais acreditam:

"Quanto menos gente souber, mais indispensável eu fico."

Na realidade acontece o contrário.

Empresas modernas promovem quem compartilha conhecimento.

Porque líderes multiplicam.

Guardiões escondem.


O Bus Factor no COBOL

Imagine um sistema composto por:

800 programas COBOL

120 CICS

300 JCL

90 PROC

60 COPYBOOK

15 VSAM

120 tabelas DB2

Apenas um analista conhece:

  • arquitetura

  • fluxo

  • dependências

Esse sistema possui Bus Factor baixíssimo.


Como aumentar o Bus Factor?

1. Documentação viva

Não basta Word esquecido.

Documentação precisa acompanhar o código.


2. Code Review

Todo código passa por outra pessoa.

Assim o conhecimento circula.


3. Pair Programming

Duas pessoas desenvolvendo juntas.

Muito comum em Extreme Programming.


4. Rotação de equipes

Hoje você mantém cobrança.

Amanhã cartões.

Depois investimentos.

Conhecimento distribuído.


5. Treinamentos internos

Mini workshops.

Lightning Talks.

Brown Bag Sessions.

Lunch & Learn.


6. Diagramas

Fluxos ajudam mais do que textos enormes.


7. Wiki

Confluence.

GitHub Wiki.

Markdown.

Obsidian.

Qualquer coisa melhor que memória humana.


8. Comentários úteis

Não explique COBOL.

Explique regra de negócio.

Ruim:

MOVE X TO Y

Bom:

* Conta especial criada após Resolução BACEN 2451

O papel dos COPYBOOKS

No Mainframe, COPYBOOKS também espalham conhecimento.

Padronizam:

  • layouts

  • mensagens

  • estruturas

  • contratos

Isso reduz dependências.


A importância dos testes

Testes também documentam.

Um bom teste responde:

"O que esse programa deveria fazer?"


Integração com IA

Hoje IA ajuda muito.

Ela pode:

  • explicar COBOL

  • gerar documentação

  • criar diagramas

  • resumir programas

Mas atenção.

Ela aprende com o código disponível.

Se o conhecimento nunca foi registrado...

nem a IA consegue descobrir.


Bus Factor e sucessão

Toda empresa deveria perguntar:

"Se João sair amanhã, conseguimos continuar?"

Se a resposta for "não"...

o problema já existe.


Curiosidade

Algumas empresas medem oficialmente:

  • percentual de conhecimento compartilhado

  • quantidade de revisores

  • cobertura de documentação

Tudo isso influencia o Bus Factor.


Um exemplo divertido

Imagine o motor de dobra da Enterprise.

Scotty conhece:

  • manutenção

  • peças

  • ajustes

  • gambiarra klingon

Se Scotty aposentar...

a nave para.

Kirk então decide:

  • treinar Geordi (sim, ele ainda nem nasceu nesta linha temporal!)

  • criar manuais

  • registrar procedimentos

Bus Factor aumenta.


Erros mais comuns

Heroísmo

"O sistema depende de mim."

Não deveria.


Falta de documentação

Erro clássico.


Não ensinar

Conhecimento escondido envelhece.


Medo de perder espaço

Na prática ocorre o contrário.

Quem ensina cresce.


Sistemas sem arquitetura

Tudo funciona.

Ninguém entende.


O que um Padawan COBOL deve aprender?

Nunca seja apenas executor.

Entenda:

  • negócio

  • arquitetura

  • fluxo

  • integração

  • histórico

Quanto mais contexto...

mais valor você gera.


Outros termos curiosos da Engenharia de Software

O Bus Factor faz parte de uma enorme coleção de conceitos curiosos usados por arquitetos de software.

1. Technical Debt (Dívida Técnica)

Atalhos tomados hoje que gerarão custo no futuro.


2. Yak Shaving

Resolver dezenas de problemas irrelevantes antes do verdadeiro.


3. Bike Shedding

Horas discutindo detalhes pequenos.

Exemplo:

"A cor do botão."

Enquanto ninguém fala da arquitetura.


4. Golden Hammer

Usar sempre a mesma tecnologia.

"Para tudo usamos Java."

Mesmo quando não faz sentido.


5. Cargo Cult Programming

Copiar código sem entender.

Muito comum na internet.


6. Spaghetti Code

Código totalmente desorganizado.


7. Lasagna Code

Camadas demais.

Tudo depende de tudo.


8. Big Ball of Mud

Sistema gigantesco sem arquitetura definida.

Muito comum em sistemas antigos.


9. God Object

Objeto que faz absolutamente tudo.


10. Lava Flow

Código antigo que ninguém remove.

Porque ninguém sabe se ainda é usado.


11. Boiling Frog

Problemas pequenos acumulam lentamente.

Quando percebem...

o sistema virou caos.


12. Death March Project

Projeto impossível desde o início.

Prazo irreal.

Equipe pequena.

Escopo gigante.


13. Brooks's Law

Do clássico The Mythical Man-Month:

"Adicionar pessoas a um projeto atrasado o atrasará ainda mais."

Porque novos membros precisam aprender.


14. Conway's Law

O software reflete a estrutura organizacional.

Departamentos separados criam sistemas separados.


15. Murphy's Law

Tudo que pode falhar...

falhará.

Por isso existem testes.


16. KISS

Keep It Simple.

Soluções simples sobrevivem mais.


17. YAGNI

You Aren't Gonna Need It.

Não implemente funcionalidades imaginárias.


18. DRY

Don't Repeat Yourself.

Evite duplicação.


19. SOLID

Cinco princípios para software sustentável.


20. Boy Scout Rule

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

Uma pequena melhoria por vez transforma um sistema inteiro ao longo dos anos.


O grande ensinamento

O verdadeiro objetivo do Bus Factor não é medir acidentes.

É medir resiliência organizacional.

Em um ambiente Mainframe, onde sistemas podem sobreviver por 30, 40 ou até 50 anos, o ativo mais valioso não é o servidor IBM Z, nem o Db2, nem o CICS, nem o código COBOL. É o conhecimento coletivo da equipe.

Quando apenas uma pessoa conhece um módulo crítico, cria-se um ponto único de falha tão perigoso quanto um disco sem redundância ou um banco de dados sem backup. Por outro lado, quando o conhecimento é compartilhado por meio de documentação, revisões de código, mentorias, treinamentos, programação em pares e rotação de responsabilidades, o sistema torna-se mais robusto e a equipe evolui em conjunto.

Para um Programador COBOL Padawan, a maior lição é esta: não aspire ser insubstituível; aspire ser inesquecível. O profissional que ensina, documenta, orienta e forma novos especialistas deixa um legado muito maior do que aquele que guarda segredos técnicos. Assim como na Frota Estelar, uma nave não depende de um único oficial para cumprir sua missão. Ela depende de uma tripulação preparada, colaborativa e capaz de assumir o comando quando necessário.

No fim das contas, o melhor indicador de maturidade de uma equipe não é quantas pessoas sabem tudo, mas quantas conseguem continuar navegando com segurança quando qualquer membro precisa se afastar. Esse é o verdadeiro espírito do Bus Factor: transformar conhecimento individual em patrimônio coletivo, garantindo que a missão continue, independentemente de quem esteja na ponte de comando.

sábado, 28 de abril de 2007

O que é Análise Funcional?

 

Bellacosa Mainframe o que é analise funcional

O que é Análise Funcional?

Imagine que um banco deseja lançar uma nova funcionalidade:

"O cliente poderá parcelar automaticamente uma compra realizada no cartão de crédito."

Antes que qualquer programador COBOL altere um programa ou um analista técnico pense em tabelas Db2, CICS ou APIs, alguém precisa responder uma pergunta fundamental:

Como essa funcionalidade deve funcionar para o usuário e para o negócio?

Essa resposta é construída durante a Análise Funcional.

Ela descreve o comportamento esperado do sistema, as regras de negócio e os resultados desejados, sem entrar em detalhes de programação.


Definição simples

A Análise Funcional é a atividade que transforma uma necessidade do negócio em uma especificação clara sobre o que o sistema deve fazer.

Seu foco está no funcionamento da solução e nas regras de negócio, não em como ela será programada.

Em outras palavras:

A Análise Funcional explica o "o quê"; a Análise Técnica explica o "como".


Uma analogia simples

Imagine a construção de um elevador.

O cliente diz:

"Quero um elevador que leve pessoas do térreo ao décimo andar."

A Análise Funcional define:

  • capacidade para 10 pessoas;

  • velocidade;

  • número de andares;

  • botões;

  • sistema de emergência;

  • acessibilidade.

Já o engenheiro decidirá:

  • tipo de motor;

  • cabos;

  • circuitos;

  • materiais.

No Mainframe ocorre exatamente a mesma separação.


Como funciona?

O fluxo normalmente é:

Necessidade do Negócio

↓

Análise Funcional

↓

Especificação Funcional

↓

Análise Técnica

↓

Desenvolvimento COBOL

↓

Testes

↓

Produção

Objetivos da Análise Funcional

Ela busca responder perguntas como:

  • O que o usuário deseja?

  • Como será o funcionamento?

  • Quais regras de negócio existem?

  • Quais validações serão feitas?

  • O que acontece em caso de erro?

  • Quais informações serão apresentadas?

  • Quem poderá utilizar a funcionalidade?


Quem realiza a Análise Funcional?

Dependendo da empresa:

  • Analista Funcional;

  • Analista de Sistemas;

  • Product Owner;

  • Especialista de Negócio;

  • Consultor Funcional;

  • Arquiteto de Soluções.

Normalmente essas pessoas trabalham em conjunto.


O que um Analista Funcional faz?

Entre suas atividades estão:

  • entrevistar usuários;

  • levantar requisitos;

  • entender processos;

  • documentar regras de negócio;

  • desenhar fluxos;

  • validar soluções;

  • acompanhar testes;

  • apoiar a homologação.


Exemplo prático

Imagine um banco criando um PIX Agendado.

A Análise Funcional responderá perguntas como:

  • O cliente poderá cancelar?

  • Até que horário?

  • Haverá cobrança de tarifa?

  • O agendamento poderá ser recorrente?

  • O que acontece se não houver saldo?

  • Como o cliente será avisado?

Somente depois dessas respostas a equipe técnica começará a implementação.


O documento funcional

Normalmente contém:

  • objetivo;

  • descrição da funcionalidade;

  • regras de negócio;

  • fluxos;

  • exceções;

  • mensagens;

  • telas;

  • validações;

  • critérios de aceitação;

  • impactos para o usuário.

Ele evita ambiguidades e serve como referência para desenvolvimento e testes.


Diferença entre Análise Funcional e Técnica

Análise Funcional

Responde:

  • O que fazer?

  • Por quê?

  • Para quem?

  • Em quais situações?

  • Quais regras devem ser respeitadas?


Análise Técnica

Responde:

  • Como implementar?

  • Quais programas COBOL mudar?

  • Quais tabelas Db2 alterar?

  • Quais transações CICS serão utilizadas?

  • Haverá novas APIs?

  • Como será o deploy?


Tecnologias envolvidas

Embora o foco seja o negócio, um analista funcional costuma conhecer:

  • COBOL;

  • CICS;

  • Db2;

  • JCL;

  • VSAM;

  • MQ;

  • APIs REST;

  • z/OS Connect;

  • Git;

  • DevOps.

Esse conhecimento ajuda a avaliar impactos e conversar com a equipe técnica.


Exemplo completo

Imagine uma alteração no limite do cartão.

A análise funcional define:

Cliente solicita aumento

↓

Sistema verifica elegibilidade

↓

Consulta score

↓

Calcula novo limite

↓

Exibe resultado

↓

Registra auditoria

A análise técnica transformará esse fluxo em programas, tabelas e integrações.


Benefícios

Uma boa análise funcional:

  • reduz retrabalho;

  • melhora a comunicação;

  • evita interpretações diferentes;

  • facilita os testes;

  • aumenta a qualidade;

  • reduz custos do projeto.


Curiosidades

1. A maioria dos problemas começa na fase funcional

Diversos projetos falham porque a necessidade do negócio foi mal compreendida, e não porque o código foi mal escrito.


2. Um bom Analista Funcional entende mais de negócio do que de programação

Ele precisa conhecer profundamente produtos como contas correntes, cartões, PIX, empréstimos, seguros e investimentos.


3. A documentação funcional pode durar décadas

Em sistemas Mainframe, documentos funcionais servem de referência para aplicações que permanecem em produção por muitos anos.


4. IA está auxiliando a Análise Funcional

Ferramentas de Inteligência Artificial já conseguem resumir documentos, identificar inconsistências, sugerir regras e gerar casos de teste, mas a validação com o negócio continua sendo responsabilidade humana.


Erros comuns de iniciantes

"Análise Funcional é programação"

Não.

Ela define o comportamento esperado do sistema, enquanto a programação implementa esse comportamento.


"Somente o analista funcional precisa conhecer as regras"

Não.

Programadores, testadores e arquitetos também precisam compreender as regras para desenvolver e validar corretamente a solução.


"Análise Funcional e levantamento de requisitos são a mesma coisa"

Não exatamente.

O levantamento de requisitos coleta as necessidades do negócio. A Análise Funcional organiza, detalha, valida e transforma essas necessidades em uma especificação clara e implementável.


Quando estudar Análise Funcional?

Depois de aprender:

  1. Lógica de Programação.

  2. COBOL.

  3. JCL.

  4. CICS.

  5. Db2.

  6. Requisitos.

  7. Processos de Negócio.

  8. Engenharia de Software.

Esse conhecimento permitirá compreender não apenas como desenvolver programas, mas por que eles existem e quais problemas do negócio resolvem.


Conclusão

A Análise Funcional é uma das etapas mais importantes do desenvolvimento de sistemas Mainframe. Ela conecta as necessidades do negócio às soluções tecnológicas, definindo regras, fluxos e comportamentos que serão implementados posteriormente pela equipe técnica.

No ambiente IBM Z, onde aplicações movimentam bilhões de transações diariamente, uma análise funcional bem executada reduz riscos, evita retrabalho e garante que programas COBOL, transações CICS, bancos Db2 e integrações via APIs atendam exatamente às expectativas do negócio. Para quem deseja evoluir de programador para analista ou arquiteto, dominar Análise Funcional é um passo essencial na carreira.

sexta-feira, 27 de abril de 2007

O que são Requisitos de Sistema no Mainframe?

 

Bellacosa Mainframe o que são requisitos no mainframe

O que são Requisitos de Sistemas no Mainframe?

Imagine que um banco deseja criar uma nova funcionalidade:

"Permitir que clientes aumentem temporariamente o limite do cartão de crédito pelo aplicativo."

Antes que qualquer programador escreva uma única linha de COBOL, diversas perguntas precisam ser respondidas.

  • Quem poderá usar essa função?

  • Qual será o limite máximo?

  • Quanto tempo o aumento ficará válido?

  • Como será feita a validação?

  • Quais programas serão alterados?

  • Haverá mudanças no Db2?

  • Será necessário alterar APIs?

  • Como ficará a segurança?

Todas essas respostas fazem parte dos requisitos.

Sem requisitos bem definidos, um projeto dificilmente será desenvolvido corretamente.


Definição simples

Os requisitos são as necessidades, regras e expectativas que um sistema deve atender.

Eles descrevem o que o sistema deve fazer, como deve funcionar e quais restrições devem ser respeitadas.

Em outras palavras:

Os requisitos são o projeto da solução antes do desenvolvimento começar.


Uma analogia simples

Imagine a construção de uma casa.

Antes do pedreiro começar a obra é necessário definir:

  • número de quartos;

  • tamanho da cozinha;

  • localização das portas;

  • quantidade de banheiros;

  • tipo do telhado.

Sem essas definições, ninguém consegue construir corretamente.

No desenvolvimento Mainframe acontece exatamente o mesmo.


Como funciona?

O processo normalmente segue este fluxo:

Necessidade do Negócio

↓

Levantamento de Requisitos

↓

Análise

↓

Especificação

↓

Desenvolvimento COBOL

↓

Testes

↓

Produção

Quem define os requisitos?

Normalmente participam:

  • usuários;

  • especialistas do negócio;

  • Product Owner;

  • Analistas de Sistemas;

  • Arquitetos;

  • Desenvolvedores;

  • equipes de Qualidade;

  • gestores.


Tipos de requisitos

Requisitos Funcionais

Descrevem o que o sistema deve fazer.

Exemplos:

  • emitir boleto;

  • calcular juros;

  • gerar fatura;

  • autorizar cartão;

  • consultar saldo;

  • registrar pagamento PIX.

São as funcionalidades do sistema.


Requisitos Não Funcionais

Descrevem como o sistema deve funcionar.

Exemplos:

  • responder em até 2 segundos;

  • funcionar 24x7;

  • suportar 10.000 usuários simultâneos;

  • utilizar criptografia;

  • manter disponibilidade de 99,99%.

Esses requisitos tratam de qualidade, desempenho e segurança.


Regras de Negócio

São decisões da empresa.

Exemplo:

"O cliente somente poderá solicitar empréstimo se possuir renda mínima."

Outro exemplo:

"O limite do PIX noturno será diferente do diurno."

Essas regras normalmente são implementadas em programas COBOL.


Requisitos Técnicos

Definem aspectos da implementação.

Exemplo:

  • utilizar Db2;

  • utilizar CICS;

  • criar nova API REST;

  • atualizar MQ;

  • criar nova tabela;

  • alterar Copybook.


Exemplo prático

Imagine uma nova funcionalidade para cartão.

Os requisitos podem ser:

Cliente poderá bloquear o cartão pelo aplicativo.

↓

Alterar programa COBOL.

↓

Criar API REST.

↓

Atualizar Db2.

↓

Registrar auditoria.

↓

Enviar mensagem MQ.

Somente depois disso começa o desenvolvimento.


Documentação de requisitos

Normalmente contém:

  • objetivo;

  • descrição funcional;

  • regras de negócio;

  • telas;

  • mensagens;

  • validações;

  • campos;

  • arquivos;

  • tabelas;

  • APIs;

  • impactos.


Tecnologias envolvidas

Dependendo da demanda podem aparecer:

  • COBOL;

  • CICS;

  • JCL;

  • Db2;

  • VSAM;

  • MQ;

  • z/OS Connect;

  • APIs REST;

  • Git;

  • DevOps.


Benefícios

Requisitos bem definidos permitem:

  • reduzir erros;

  • evitar retrabalho;

  • facilitar testes;

  • melhorar documentação;

  • acelerar desenvolvimento;

  • reduzir custos.


Exemplo completo

Imagine que um banco queira implantar um novo PIX internacional.

Os requisitos podem determinar:

Novo serviço

↓

Nova API

↓

Alteração COBOL

↓

Nova tabela Db2

↓

Integração MQ

↓

Testes

↓

Produção

Cada etapa depende dos requisitos definidos inicialmente.


Curiosidades

1. A maioria dos erros nasce antes da programação

Diversos estudos de engenharia de software mostram que muitos defeitos têm origem em requisitos incompletos, incorretos ou ambíguos.


2. O COBOL apenas implementa os requisitos

O programa não decide sozinho as regras do negócio.

Ele executa exatamente o que foi especificado.


3. Um pequeno requisito pode impactar dezenas de programas

Alterar uma única regra bancária pode exigir mudanças em programas COBOL, tabelas Db2, transações CICS, APIs, mensagens MQ e processos batch.


4. Requisitos mudam durante o projeto

É comum que novas leis, mudanças de mercado ou decisões do negócio levem à revisão dos requisitos antes da entrega final.


Erros comuns de iniciantes

"Requisito é o programa COBOL"

Não.

O requisito existe antes do código e orienta sua implementação.


"Somente o Analista conhece os requisitos"

Não.

Desenvolvedores, testadores, arquitetos e usuários também precisam entendê-los.


"Depois de aprovado o requisito nunca muda"

Na prática, mudanças de prioridade, legislação ou estratégia podem exigir ajustes ao longo do projeto.


Quando estudar requisitos?

Logo no início da carreira.

Mesmo um programador COBOL júnior deve aprender a interpretar documentos de requisitos, pois é a partir deles que o código será desenvolvido.

Esse conhecimento também facilita a comunicação com analistas, usuários e equipes de testes.


Conclusão

Os requisitos no Mainframe representam a base de qualquer projeto de software. Eles definem as funcionalidades, regras de negócio, restrições técnicas e critérios de qualidade que orientam o desenvolvimento de aplicações em IBM Z.

Dominar a leitura, interpretação e análise de requisitos é uma habilidade essencial para programadores COBOL, analistas de sistemas, arquitetos e líderes técnicos. Quanto mais claros e completos forem os requisitos, maior será a qualidade do sistema entregue e menor será o risco de retrabalho, falhas e custos adicionais durante o ciclo de vida da aplicação.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...