domingo, 3 de janeiro de 2010

Como treinar IA para Mainframe

 


Passo a passo para evoluir legado em IA

Definição de Padrões Técnicos, Controle de Qualidade e Melhoria de Processos

Definir métricas de sucesso de qualidade específicas para COBOL em projetos de anotação de código e rotulagem de conjuntos de dados.

Desenvolver Procedimentos Operacionais Padrão (POPs), rubricas de garantia da qualidade (QA) e materiais de referência específicos para cada projeto, a fim de garantir que os resultados estejam alinhados com os padrões técnicos do cliente.

Revisar os resultados do projeto (scripts COBOL, anotações de código, exemplos de modernização de sistemas legados) em relação aos padrões definidos, sinalizando e corrigindo defeitos antes da entrega ao cliente.

Realizar verificações de QA estruturadas nos entregáveis; rastrear, sinalizar e resolver defeitos de forma eficiente para cumprir os prazos de entrega.

Devolver o trabalho aos contratados com notas de correção precisas e contexto sobre a sintaxe COBOL, lógica e padrões de sistemas legados.

Fornecer consultoria sobre ferramentas, frameworks, emuladores e melhorias de fluxo de trabalho para manter os padrões de qualidade em ambientes de mainframe e processamento em lote.

Lidar com alterações de especificações e cenários extremos (por exemplo, diferentes dialetos COBOL, codificação EBCDIC vs. ASCII, dependências de JCL) e elaborar os critérios de aceitação ou soluções alternativas correspondentes.

Organize bibliotecas de exemplos de código COBOL de "padrão ouro", exemplos de modernização e anotações de conjuntos de dados para calibração e consistência entre projetos.

Avaliação de Talentos e Melhoria de Resultados

Participe de avaliações técnicas de talentos terceirizados, incluindo a revisão de avaliações de código COBOL e avaliações baseadas em tarefas.

Revise exemplos de resultados de terceirizados e forneça feedback escrito claro e acionável para melhorar a correção, legibilidade e eficiência do código.

Desenvolva recursos de treinamento e calibração direcionados, como:

Diretrizes de qualidade de código COBOL (por exemplo, consistência de divisão de dados, estruturação de parágrafos)

Melhores práticas para código procedural limpo e de fácil manutenção

Documentação de referência para padrões de interação com sistemas legados

Padrões de rotulagem de conjuntos de dados para treinamento de modelos relacionados a COBOL


Suporte à Entrega de Projetos

Aconselhe sobre o escopo e os requisitos técnicos durante a configuração do projeto, incluindo versionamento de COBOL, integração de JCL e formatos de dados de mainframe.

Forneça orientação especializada para casos extremos e alterações de especificações, como o tratamento de copybooks, registros de comprimento variável ou integração com DB2 e VSAM.

Contribuir para as revisões pós-projeto a fim de capturar lições aprendidas e refinar continuamente os padrões.

Identificar e resumir insights do sistema do cliente, como problemas recorrentes de sintaxe, erros de lógica ou inconsistências na formatação de dados.

Criar painéis ou rastreadores de defeitos com problemas categorizados para revelar temas recorrentes e impulsionar melhorias de processo.

Conduzir análises pós-projeto para analisar tendências de defeitos e propor etapas de garantia de qualidade atualizadas, melhorias na documentação ou treinamentos de reciclagem.


terça-feira, 29 de dezembro de 2009

Que beijinho mais gostoso o Luigi e os Esquilos natalinos.

 Feliz Natal do pequeno Luigi para a famiglia Bellacosa. O pequenino Luigi aprontando arte, brincando com os Esquilinhos dançantes. Na época para ele era uma loucura ouvir esses esquilinhos, ele adorava brincar, agarrar, abraçar, apertar as musiquinhas sempre fazendo bagunca com eles.




sábado, 19 de dezembro de 2009

📋 Checklist Executável de Auditoria z/OS (SMP/E + RACF)

 

Bellacosa Mainframe e um Checklist de Auditoria Z/OS

📋 Checklist Executável de Auditoria z/OS (SMP/E + RACF)

Objetivo: permitir que o sysprog execute, colecione evidências e registre conformidade antes (e durante) uma auditoria.


🧭 Como usar este checklist

  • Execute cada item na ordem

  • Cole comandos/outputs como evidência

  • Marque OK / N/A / FAIL

  • Anexe decisões e aprovações quando houver


🔐 1) Controle de Acesso (RACF)

1.1 CSI protegido

  • Evidência (exemplo):

RLIST DATASET HLQ.SMP.CSI ALL
  • Esperado: UACC=NONE, ALTER restrito

1.2 Bibliotecas SMP/E protegidas

  • Evidência:

RLIST DATASET HLQ.SMP.* ALL

1.3 IDs privilegiados revisados

  • Evidência:

LISTUSER * SPECIAL

📦 2) Integridade do SMP/E (CSI)

2.1 CSI acessível e íntegro

  • Evidência: job SMP/E simples (ex.: LIST)

2.2 Backup periódico do CSI

  • Evidência: política / job de backup


🔁 3) Processo RECEIVE / APPLY / ACCEPT

3.1 RECEIVE documentado

  • Evidência: output RECEIVE

3.2 APPLY CHECK executado

  • Evidência:

SET BDY(TARGET).
APPLY CHECK.

3.3 APPLY aprovado e executado

  • Evidência: output APPLY

3.4 ACCEPT autorizado

  • Evidência: output ACCEPT + aprovação


🚨 4) Gestão de ++HOLD e ++ERROR

4.1 HOLDS analisados

  • Evidência: cover letter / decisão

4.2 ERRORS tratados

  • Evidência: APAR / mitigação


🧩 5) USERMOD

5.1 USERMOD identificado e justificado

  • Evidência: histórico SMP/E

5.2 Plano de remoção definido



🧪 6) Evidências Técnicas

6.1 Outputs arquivados


6.2 JCL versionado



🔄 7) Rollback / RESTORE

7.1 Processo RESTORE definido

  • Evidência:

SET BDY(TARGET).
RESTORE.

🛡️ 8) Segurança e Atualizações

8.1 PTFs de segurança atualizados


8.2 Backlog controlado



🧾 9) Assinaturas e Responsáveis

  • Sysprog: __________________ Data: //____

  • Segurança: ________________ Data: //____

  • Auditoria: ________________ Data: //____


🏁 Resultado Final


Observações:


Checklist executável, evidenciável e auditável — estilo Bellacosa Mainframe.

Checklist executável criado com sucesso ✅

Ele já está pronto para:

  • 🧪 execução técnica real (com comandos e evidências)

  • 🛡️ auditoria interna e externa

  • 📄 impressão / PDF

  • 🎓 treinamento de sysprogs

Checklist Executável De Auditoria Z/os (smp/e + Racf)

sexta-feira, 18 de dezembro de 2009

📜 COBOL é Autoexplicativo? Problemas na documentação do legado.

  




📜 COBOL é Autoexplicativo?

Documentação, Mitos, Boas Práticas e Sobrevivência no Mainframe Real

“Se o código fosse realmente autoexplicativo, não existiria analista sênior, dump, nem planilha escondida na gaveta.”
— Provérbio não-oficial do Sysprog


1️⃣ O mito do COBOL auto-documentado

Desde sua origem, o COBOL foi vendido como uma linguagem:

  • legível,

  • próxima do inglês,

  • acessível a gestores e usuários de negócio.

Na teoria:

IF CUSTOMER-STATUS = 'A' PERFORM PROCESS-ACTIVE-CUSTOMER END-IF

Na prática, sabemos que:

  • legível ≠ compreensível

  • código não explica regra de negócio

  • o “porquê” quase nunca está no fonte

📌 Primeiro choque de realidade
COBOL ajuda a ler a intenção técnica, mas não documenta contexto histórico, exceções fiscais, gambiarra regulatória ou acordo verbal de 1998.

👉 E isso não é culpa da linguagem. É da ausência de documentação.


2️⃣ Self-documenting code: sonho bonito, realidade dura

Existe um conceito romântico no mundo de software:

“Código limpo se documenta sozinho”

No mainframe isso vira rapidamente:

“Código limpo ajuda, mas não se explica sozinho”

⚠️ Gotcha clássico

IF WS-FLAG = 'Y' MOVE ZERO TO WS-TAX END-IF

Perguntas que o código não responde:

  • Por que zera imposto?

  • Qual legislação?

  • Em que data isso foi criado?

  • Quem autorizou?

  • Isso ainda é válido?

📌 Regra de ouro Bellacosa

Código mostra o que o sistema faz.
Documentação explica por que ele faz isso.


3️⃣ Onde a documentação realmente mora no COBOL

📂 3.1 No código (sim, mas com juízo)

❌ Comentário inútil

* Move value to variable MOVE A TO B.

✅ Comentário que salva vidas

* REGRA FISCAL BR-ICMS-2017 * Conforme decreto 12.887, clientes com FLAG = 'Y' * estao isentos de imposto nesta operacao IF WS-FLAG = 'Y' MOVE ZERO TO WS-TAX END-IF

📌 Comentário bom envelhece melhor que código bonito.


📘 3.2 Cabeçalho de programa (o RG do sistema)

Todo programa COBOL deveria começar com algo assim:

***************************************************************** * PROGRAMA....: FINC1023 * DESCRICAO...: Calculo de impostos para faturamento * MODULO......: Financeiro * AUTOR.......: J. SILVA * DATA........: 12/03/2017 * ALTERACOES..: * - 05/06/2019 - Ajuste ICMS MG (CHG#45871) * - 10/08/2022 - Isencao clientes FLAG=Y (LEGAL-889) *****************************************************************

🧠 Easter Egg #1
Programas sem cabeçalho quase sempre:

  • quebram em virada de ano

  • explodem em auditoria

  • ninguém quer assumir


4️⃣ Público-alvo da documentação: quem você está tentando salvar?

Nem toda documentação é para todo mundo.

🎯 Públicos clássicos no mainframe

PúblicoPrecisa de
DesenvolvedorComentários técnicos, layout, lógica
Analista de negócioRegras, exceções, impacto
Suporte/ProduçãoFluxo, erros, RC, abends
AuditorRastreabilidade, histórico, motivo

📌 Erro comum
Achar que um comentário no código resolve tudo.

👉 Não resolve. Ele ajuda.


5️⃣ Padrões: o verdadeiro caminho do “autoexplicativo”

COBOL só fica “auto-documentável” quando existe:

  • Naming convention clara

  • Layout consistente

  • Regras de codificação

  • Comentários padronizados

❌ Legado sem padrão

01 A. 05 B PIC 9(05).

✅ Código legível e sustentável

01 WS-INVOICE-TOTAL PIC 9(07)V99. 01 WS-INVOICE-TAX PIC 9(07)V99.

🧠 Easter Egg #2
Quem usa ABX1X2 geralmente:

  • herdou código sem documentação

  • tem trauma de manutenção

  • sabe interpretar dump no olho 😅


6️⃣ Documentando o “não documentado” (zona de guerra)

Agora vem a parte crítica.

⚠️ Realidade dura do mainframe

  • Sistemas com 30, 40, 50 anos

  • Regras que ninguém lembra

  • Desenvolvedores se aposentando

  • Conhecimento tribal indo embora

📌 O que fazer?

  • Usar ferramentas modernas

  • Mapear fluxos reais

  • Analisar batch, CICS, DB2

  • Documentar depois que entende

“Se está funcionando, existe uma regra.
Se ninguém sabe qual é, ela precisa ser documentada.”


7️⃣ COBOL, modernização e sobrevivência

Documentação não é nostalgia. É:

  • pré-requisito de modernização

  • base de DevOps

  • segurança contra falha humana

  • seguro contra auditoria

Sistemas mission critical não podem falhar.
E eles só sobrevivem porque:

  • alguém documentou

  • alguém deixou pistas

  • alguém pensou no próximo

🧠 Easter Egg #3
O programa mais crítico da empresa:

  • roda em batch às 02:13

  • ninguém sabe explicar tudo

  • mas todo mundo tem medo de mexer


8️⃣ Conclusão Bellacosa Mainframe

✔ COBOL não é mágico
✔ Código limpo ajuda, mas não basta
✔ Documentação é responsabilidade técnica
✔ Padrões salvam sistemas
✔ Comentários certos salvam carreiras

Documentar não é escrever mais.
É escrever o que o código nunca vai conseguir explicar.

☕💾

terça-feira, 15 de dezembro de 2009

Brincadeiras de criança, memoria do Luigi a enviar beijinhos a Tia Nana...

 Nanazinha com carinho e amor do seu pequeno sobrinho Luigi, um super beijo para começar 2010 com ótimo estilo.

Fim de ano, 2009 terminando e o pequeno Luigi bem animado, brincando com seu pai lelé, mandando muitos beijos e abraços.... Ficando com frio e fazendo careta por causa do cheirinho ruim, ai esse pequeno é um barato, que rapazola fofo... te amo pequenino.



terça-feira, 8 de dezembro de 2009

Coral dos Esquilinhos Malucos


O Natal dos Esquilinhos

Foi uma diversao quando comprei os Esquilinhos Cantores e ainda nao tinha ideia que o Luigi voce adorar a brincadeira. Imagine ele do alto dos seus quase 2 anos... iria abraçar, agarrar e brincar com eles.

E aproveitando o espirito natalino, aproveitamos para deixar mensagens de carinho para a familha.


sexta-feira, 6 de novembro de 2009

🔷 QUIESCE no DB2: Congelando Tabelas com Segurança

 

Bellacosa Mainframe apresente IBM Mainframe Quiesce

🔷 QUIESCE no DB2: Congelando Tabelas com Segurança

No DB2 para IBM z/OS, QUIESCE é uma operação usada para garantir consistência de dados durante operações administrativas, especialmente quando você precisa fazer backup, reorganização ou manutenção de tabelas sem corromper os dados.


🕰️ Origem e Contexto

  • Em ambientes mainframe, tabelas DB2 são acessadas 24/7, com milhares de transações simultâneas.

  • Antigamente, para garantir integridade, os DBAs precisavam parar o sistema inteiro para fazer backups ou reorganizações.

  • A IBM introduziu o QUIESCE para “congelar” temporariamente uma tabela ou partição, permitindo:

    • Manutenção de tabelas

    • Criação de backups consistentes

    • Redução do impacto nas transações online


⚙️ O que o QUIESCE faz?

Quando você executa um QUIESCE TABLE, o DB2:

  1. Impede alterações na tabela

    • Nenhum INSERT, UPDATE ou DELETE é permitido.

  2. Permite leitura

    • Transações de SELECT ainda podem ser executadas normalmente (dependendo da configuração).

  3. Cria um ponto de consistência

    • Ideal para backup ou reorganização.

Pense no QUIESCE como uma pausa temporária e controlada na tabela, sem desligar o banco ou impactar outras tabelas.


🔹 Sintaxe básica

-- Congela a tabela para manutenção QUIESCE TABLE schema.tabela;
  • schema.tabela → tabela que você quer “congelar”

  • DB2 mantém o estado consistente até que você libere a tabela.

Liberando a tabela:

QUIESCE TABLE schema.tabela RELEASE;
  • Permite que transações de escrita voltem ao normal.


💡 Dicas e Boas Práticas

  1. Use somente quando necessário

    • Congelar muitas tabelas por muito tempo = impacto em aplicações.

  2. Combine com backups offline

    • QUIESCE + COPY OUT = backup consistente sem travar o banco inteiro.

  3. Evite longos períodos de quiesce

    • Transações concorrentes ficam bloqueadas, podendo causar timeout ou deadlocks.

  4. Verifique o status

SELECT * FROM SYSIBM.SYSTABLES WHERE NAME = 'TABELA' AND CREATOR = 'SCHEMA';
  • O estado QUIESCED indica que a tabela está congelada.


🔍 Curiosidades / Easter Eggs Bellacosa

  • O comando QUIESCE só existe no DB2 para z/OS. Em DB2 LUW (Linux/Unix/Windows), a abordagem é diferente (LOCK + BACKUP).

  • Internamente, DB2 usa locks especiais e pontos de consistência para garantir que mesmo transações longas não corrompam o backup.

  • Alguns DBAs chamam o QUIESCE de “pause mágico”, porque a tabela parece congelada, mas outras operações continuam normalmente.


⚡ Impacto na Performance

  • Transações de escrita ficam suspensas, então:

    • Muitas sessões concorrentes → podem acumular espera

    • Bancos com alto volume de updates → planejar QUIESCE fora do horário de pico

  • Transações de leitura não são bloqueadas (depende do tipo de lock).

  • É mais leve que DB2 LOCK TABLE ou downtime total.


🔑 Resumo Bellacosa

ConceitoDetalhe
O que éCongela temporariamente uma tabela para manutenção/backup
SintaxeQUIESCE TABLE schema.tabela; e RELEASE
Permite SELECT?Sim (dependendo do lock)
Permite INSERT/UPDATE/DELETE?Não durante o quiesce
Quando usarBackup consistente, reorganização, manutenção de dados
ImpactoLeve se curto; bloqueia transações de escrita

💡 Easter Egg:

Se você fizer QUIESCE de uma tabela grande, é quase como colocar a tabela em “hibernação”: DB2 mantém tudo consistente internamente, e você nem sente nada até liberar.