☕ 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 sla. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta sla. Mostrar todas as mensagens

segunda-feira, 26 de janeiro de 2026

💥 🧠 VISÃO GERAL — O TRIÂNGULO DA PERFORMANCE

 

Bellacosa Mainframe analise o triangulo da performance no Mainframe

💥 🧠 VISÃO GERAL — O TRIÂNGULO DA PERFORMANCE

👉 Em 90% dos problemas reais:

  • COBOL → lógica
  • VSAM → I/O
  • DB2 → acesso a dados

🔥 1. TUNING COBOL — CPU (o assassino silencioso)

🎯 Problema típico

  • CPU alto
  • EXEC alto no sampling

🧨 Anti-patterns clássicos

❌ Loop ineficiente

PERFORM UNTIL WS-END = 'Y'
READ FILE
END-PERFORM

❌ Reprocessamento desnecessário

  • Mesmo cálculo várias vezes
  • Falta de cache em memória

✅ Boas práticas

✔ Reduzir chamadas repetidas

IF WS-CALCULATED = 'N'
PERFORM CALC
END-IF

✔ Usar tabelas em memória (lookup)

  • Evita I/O repetido

✔ Minimizar chamadas externas

  • DB2
  • VSAM
  • APIs

💣 Insight

COBOL lento raramente é COBOL…
geralmente é acesso a dados mal feito


🐢 2. TUNING VSAM — I/O (o vilão invisível)

🎯 Problema típico

  • WAIT alto
  • I/O dominante no sampling

🧨 Problemas clássicos

❌ Acesso aleatório excessivo

  • KSDS sem chave eficiente

❌ CI/CA splits

  • Dataset mal definido

❌ Buffer insuficiente

  • Muitas operações físicas

✅ Boas práticas

✔ Aumentar buffers

  • BUFNI / BUFND

✔ Acesso sequencial sempre que possível

  • Evitar random

✔ Ajustar definição do dataset

  • CI size
  • CA size

✔ Usar READ NEXT quando possível

READ FILE NEXT RECORD

💥 Insight

VSAM mal configurado transforma CPU em WAIT


🗄️ 3. TUNING DB2 — O campeão de problemas

🎯 Problema típico

  • WAIT alto
  • CPU alto distribuído
  • SQL dominante

🧨 Problemas clássicos

❌ Full table scan

  • Falta de índice

❌ SQL executado milhares de vezes

PERFORM 10000 TIMES
EXEC SQL SELECT ...
END-EXEC

❌ Falta de filtro adequado

  • WHERE mal definido

✅ Boas práticas

✔ Criar índices corretos

  • Baseado no WHERE

✔ Reduzir chamadas SQL

  • Buscar em bloco
  • Usar cursor

✔ Evitar SELECT dentro de loop

👉 mover lógica para fora


✔ Usar EXPLAIN

  • Ver access path

💣 Insight

1 SQL ruim pode destruir toda a performance


🔗 4. INTEGRAÇÃO (onde mora o problema real)

💥 Cenário clássico

COBOL → chama DB2 → DB2 faz I/O → VSAM/disco

🧠 Diagnóstico via sampling

SintomaCausa
CPU altoCOBOL
WAIT altoVSAM
CPU + WAITDB2

🔥 5. CASO REAL COMPLETO

🎯 Sintoma

  • Job lento
  • 2 horas de execução

📊 Sampling mostra

DB2 → 50%
VSAM → 30%
COBOL → 20%

🧠 Diagnóstico

👉 Problema NÃO é COBOL
👉 É acesso a dados


🔧 Ações

  • Criar índice DB2
  • Reduzir chamadas SQL
  • Ajustar VSAM

🚀 Resultado

  • Tempo: 2h → 20min
    💥 ganho de 6x

⚡ 6. CHECKLIST RÁPIDO (produção)

1. CPU ou WAIT?
2. Identificar hotspot
3. COBOL → otimizar lógica
4. VSAM → otimizar I/O
5. DB2 → otimizar SQL
6. Validar com nova coleta

💣 ERROS QUE MAIS VEJO EM PRODUÇÃO

❌ Ajustar COBOL sem olhar DB2
❌ Culpar DB2 sem olhar VSAM
❌ Ignorar I/O
❌ Não usar sampling


🧠 MODELO MENTAL FINAL

COBOL = processamento
VSAM = acesso físico
DB2 = acesso lógico

💥 FRASE FINAL (nível arquiteto)

“O gargalo não está no código…
está na forma como o código acessa os dados.”

 

domingo, 25 de janeiro de 2026

💥 🔬 PERFORMANCE RELATÓRIO — VISÃO GERAL

 

Bellacosa Mainframe apresenta um estudo de caso para performance em Mainframe

💥 🔬 PERFORMANCE RELATÓRIO — VISÃO GERAL

PROGRAM MEASURED - PROG001
JOB NAME - JOB001
STEP NAME - P010.S010

🧠 O que isso já diz?

👉 Você está analisando:

  • Programa: PROG001
  • Job: JOB001
  • Step específico

💡 Ótimo sinal → análise já está refinada (não é genérica)


⚙️ 🔍 BLOCO 1 — Measurement Parameters

ESTIMATED SESSION TIME - 30 MIN
TARGET SAMPLE SIZE - 30,000

🧠 Interpretação

👉 Configuração padrão profissional:

  • 30 min
  • 1000 samples/min

✔ Excelente equilíbrio entre precisão e overhead


💣 Insight

Se isso estivesse errado → TODO o relatório seria suspeito


📊 🔥 BLOCO 2 — Measurement Statistics

EXEC TIME PERCENT - 90.84
WAIT TIME PERCENT - 9.16

🧠 Diagnóstico IMEDIATO

👉 Sistema está:

  • 90% executando (CPU)
  • 9% esperando

💥 Conclusão direta

✔ CPU-bound
❌ NÃO é problema de I/O
❌ NÃO é lock
❌ NÃO é DB2 wait


🎯 Ação

👉 Investigar:

  • Código COBOL
  • Algoritmo
  • Loop
  • Cálculo repetitivo

⚖️ 🔬 BLOCO 3 — Margem de erro

RUN MARGIN OF ERROR - 0.65
CPU MARGIN OF ERROR - 0.68
WAIT MARGIN OF ERROR - 2.16

🧠 Interpretação

👉 Estatisticamente confiável

ValorQualidade
< 1%excelente
< 5%confiável

💣 Insight

Você pode confiar nesse diagnóstico sem medo


🔢 📈 BLOCO 4 — Samples

TOTAL SAMPLES TAKEN - 37,549
TOTAL SAMPLES PROCESSED - 22,548

🧠 Interpretação

👉 Nem todos os samples foram úteis

Possíveis motivos:

  • CPU idle
  • Outro address space
  • Thread não relevante

💡 Insight

Isso é NORMAL — e esperado


⏱️ 📉 BLOCO 5 — Sampling Rate

INITIAL SAMPLING RATE - 8.33/sec
FINAL SAMPLING RATE - 4.17/sec

🧠 Interpretação

👉 Taxa caiu ao longo do tempo

Possíveis causas:

  • Mudança de carga
  • Menos CPU ativa
  • Contenção

💥 Insight

Sampling não é constante — ele reflete o ambiente real


🧾 🔍 BLOCO 6 — Ambiente

ADDRESS SPACE ID - 0061
DATE/TIME - execução real
CONDITION CODE - C-0000

🧠 Interpretação

✔ Job terminou OK
✔ Sem abend
✔ Ambiente válido


🔥 🔬 DIAGNÓSTICO FINAL

📊 Resumo técnico

CPU → 90%
WAIT → 10%
Erro → baixo
Samples → suficientes

🎯 Conclusão

💥 O problema está NO CÓDIGO, não no ambiente


💣 Possíveis causas reais

👉 Aqui começa o trabalho do especialista:

🔥 1. Loop ineficiente

PERFORM UNTIL ...

🔥 2. Leitura repetitiva

  • VSAM read desnecessário
  • DB2 repetido

🔥 3. Cálculo pesado

  • Reprocessamento
  • Falta de cache

🔥 4. Algoritmo ruim

  • Complexidade alta
  • Ordenação ineficiente

🚀 Próximo passo (o que você faria em produção)

  1. Abrir relatório detalhado (modules)
  2. Identificar:
    • módulo
    • offset
  3. Mapear para código COBOL
  4. Ajustar lógica

🧠 Modelo mental definitivo

EXEC alto → código
WAIT alto → recurso externo

💥 Frase final (nível especialista)

“O relatório já te deu a resposta.
Agora é você que precisa ir até o código.”

 

terça-feira, 23 de janeiro de 2024

Resiliência IBM Z – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param? Parte I

 

Bellacosa Mainframe ibm z resiliencia parte i

☕ Um Café no Bellacosa Mainframe

O Holocron da Resiliência IBM Z

Parte I – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param?

Quando um jovem Padawan COBOL entra pela primeira vez em uma empresa que utiliza IBM Z, normalmente ele acredita que seu trabalho consiste em escrever programas COBOL, executar alguns Jobs, consultar arquivos VSAM e, eventualmente, criar uma transação CICS.

Não demora muito para ouvir frases como:

"Precisamos garantir o SLA."

"O RTO deste sistema é de cinco minutos."

"Não podemos ter nenhum Single Point of Failure."

"Essa aplicação precisa ser resiliente."

Nesse momento, o Padawan percebe que entrou em um universo completamente diferente daquele ensinado na maioria dos cursos de programação.

No IBM Z, escrever software é apenas uma parte da engenharia. A outra metade consiste em garantir que esse software continue funcionando quando tudo ao redor começa a falhar.

Bem-vindo ao mundo da Resiliência.

Os conceitos apresentados nesta primeira parte são a base para compreender por que os maiores bancos, seguradoras, bolsas de valores, companhias aéreas e governos do mundo continuam confiando no IBM Z para executar suas aplicações mais críticas. Os termos discutidos a seguir fazem parte do glossário de Resiliency do IBM Z e representam os pilares conceituais dessa arquitetura.


O que significa Resiliency?

Imagine um hospital.

Ninguém espera que um hospital nunca enfrente problemas.

Equipamentos quebram.

Transformadores queimam.

Geradores precisam de manutenção.

Redes elétricas falham.

Mesmo assim...

A cirurgia não pode parar.

No mundo dos computadores acontece exatamente a mesma coisa.

Resiliência significa continuar prestando serviço mesmo quando partes da infraestrutura apresentam defeitos.

Esse é um conceito muito diferente de simplesmente "não quebrar".

Todo equipamento quebra.

Todo software possui defeitos.

Todo disco possui vida útil.

Toda memória pode apresentar falhas.

A diferença é que o IBM Z foi projetado assumindo que essas falhas acontecerão.

A arquitetura inteira trabalha para impedir que o usuário perceba qualquer interrupção.

Essa filosofia explica por que milhares de transações bancárias continuam acontecendo enquanto técnicos substituem processadores, discos ou placas de comunicação.

Para um programador COBOL, compreender Resiliency muda completamente a forma de pensar. O objetivo deixa de ser apenas fazer o programa "funcionar"; passa a ser escrever aplicações que convivam com uma infraestrutura preparada para falhas.


RAS – Reliability, Availability and Serviceability

Existe um conceito extremamente famoso dentro da IBM:

RAS.

São apenas três palavras.

Mas representam décadas de engenharia.

Reliability

Confiabilidade.

O equipamento precisa falhar pouco.

Isso envolve:

  • qualidade dos componentes;

  • redundância;

  • testes de fábrica;

  • validações contínuas.

Quanto maior a confiabilidade, menor a probabilidade de interrupções inesperadas.


Availability

Disponibilidade.

Mesmo quando alguma coisa quebra...

O serviço continua.

É exatamente aqui que entram conceitos como:

  • Parallel Sysplex;

  • GDPS;

  • Load Balancing;

  • WLM.

Disponibilidade não significa ausência de falhas.

Significa continuidade do negócio.


Serviceability

Facilidade de manutenção.

Imagine trocar um disco sem desligar o computador.

Ou substituir memória durante a operação.

Ou atualizar firmware sem interromper milhares de usuários.

Isso é Serviceability.

Quanto mais simples a manutenção...

Menor o tempo de indisponibilidade.


High Availability (HA)

Muitos iniciantes acreditam que Alta Disponibilidade significa "100% online".

Não é verdade.

Alta Disponibilidade significa reduzir o impacto das interrupções até um nível aceitável para o negócio.

Imagine dois caixas eletrônicos.

Se um apresentar defeito...

O cliente utiliza o outro.

Agora imagine dois servidores CICS.

Se um falhar...

O outro assume automaticamente.

Essa é a essência da HA.

A infraestrutura foi desenhada para absorver falhas sem interromper o serviço.


Disaster Recovery (DR)

Enquanto a Alta Disponibilidade lida com falhas locais, o Disaster Recovery pensa em eventos extremos.

Perguntas típicas são:

  • E se o prédio pegar fogo?

  • E se faltar energia por várias horas?

  • E se houver uma enchente?

  • E se todo o datacenter ficar inacessível?

Nesse cenário entra o Plano de Recuperação de Desastres.

O objetivo não é impedir o desastre.

É garantir que o negócio sobreviva a ele.

No IBM Z, tecnologias como GDPS, replicação de dados e sites espelhados fazem parte dessa estratégia.


SLA – Service Level Agreement

Todo sistema existe para atender um negócio.

E o negócio estabelece compromissos.

Exemplo:

"O Internet Banking deve permanecer disponível 99,99% do tempo."

Isso é um SLA.

Curiosamente, poucas pessoas percebem o impacto desses números.

Veja:

  • 99% parece excelente.

  • 99,9% é muito melhor.

  • 99,99% é extraordinário.

  • 99,999% representa apenas alguns minutos de indisponibilidade por ano.

Cada "9" adicional exige muito mais investimento em hardware, software, processos e pessoas.


RPO – Recovery Point Objective

Imagine que um banco sofra uma pane às 15h.

Qual o último dado aceitável?

15h00?

14h59?

14h30?

Ontem?

Essa resposta define o RPO.

Quanto menor o RPO...

Menor a perda de informações.

Em sistemas financeiros modernos, o objetivo costuma ser próximo de zero.

Nenhuma transação pode desaparecer.


RTO – Recovery Time Objective

Agora faça outra pergunta.

Quanto tempo o sistema pode permanecer parado?

Cinco minutos?

Uma hora?

Quatro horas?

Isso é o RTO.

Observe a diferença.

O RPO mede perda de dados.

O RTO mede tempo de recuperação.

São conceitos diferentes.

E ambos determinam toda a arquitetura de um ambiente corporativo.


Single Point of Failure (SPoF)

Este talvez seja o termo mais importante para qualquer arquiteto.

Imagine um único switch de rede.

Se ele quebrar...

Toda a empresa para.

Esse switch é um SPoF.

Agora pense em um único banco de dados.

Ou uma única fonte de alimentação.

Ou um único servidor DNS.

Todos são candidatos a pontos únicos de falha.

A missão dos arquitetos IBM Z é eliminar todos eles.

Por isso existem componentes redundantes, caminhos alternativos e múltiplos mecanismos de recuperação.


Component Failure Impact Analysis (CFIA)

O nome parece complicado.

Mas a ideia é simples.

Pergunte para cada componente:

"O que acontece se você morrer agora?"

Depois repita para:

  • discos;

  • processadores;

  • memória;

  • switches;

  • links;

  • storages;

  • sistemas operacionais.

Se alguma resposta for:

"Tudo para."

Você encontrou um problema.

O CFIA é justamente o exercício sistemático de identificar esses riscos antes que eles ocorram.


ITIL – Muito Além da Tecnologia

Muitos desenvolvedores imaginam que disponibilidade depende apenas do hardware.

Na prática, processos mal definidos também derrubam sistemas.

É aqui que entra a ITIL.

Ela organiza boas práticas para:

  • mudanças;

  • incidentes;

  • problemas;

  • configuração;

  • continuidade;

  • disponibilidade.

Quando uma grande instituição financeira realiza uma atualização em produção, normalmente existe todo um processo inspirado nessas práticas para reduzir riscos.


A Mentalidade IBM Z

Existe uma frase bastante conhecida entre profissionais experientes de Mainframe:

"No IBM Z, falhas são esperadas. O que não é aceitável é que elas interrompam o negócio."

Essa mentalidade muda completamente a forma de desenvolver software.

O programador COBOL deixa de enxergar apenas linhas de código e passa a compreender que sua aplicação faz parte de um ecossistema muito maior, onde hardware, sistema operacional, middleware, armazenamento e processos trabalham em conjunto para garantir continuidade.

Cada programa Batch, cada transação CICS e cada acesso ao Db2 participa de uma cadeia cuidadosamente projetada para manter milhões de pessoas utilizando serviços bancários, comprando passagens aéreas, movimentando bolsas de valores ou recebendo benefícios sociais sem sequer imaginar a complexidade escondida por trás de uma simples tela.

Esse é o verdadeiro espírito do IBM Z.

Não construir computadores que nunca falham.

Mas construir sistemas que continuam funcionando mesmo quando inevitavelmente algo dá errado.

No próximo capítulo, deixaremos os conceitos e entraremos na infraestrutura física do IBM Z, explorando componentes como CPC, Processing Units, HMC, Support Element, License Internal Code e outros elementos que fazem do mainframe uma das plataformas mais resilientes já criadas.


terça-feira, 28 de julho de 2020

☕🔥 Suporte à Produção Mainframe — engenharia operacional em estado bruto

 

Bellacosa Mainframe apresenta Suporte a Produção

☕🔥 Suporte à Produção Mainframe — engenharia operacional em estado bruto

Se você já deu CANCEL com o coração na mão, já leu dump em hexadecimal, já decorou mensagem $HASP melhor que CPF, então este texto não é para iniciantes.
Aqui falamos de Produção de verdade. Sem romantização. Sem power-point bonito.


🧠 Suporte à Produção Mainframe ≠ Operação

É engenharia operacional sob carga real.

Produção não é:

  • Rodar job

  • Reiniciar STC

  • Abrir chamado

Produção é:

  • Análise de impacto

  • Decisão em ambiente crítico

  • Entendimento sistêmico do z/OS

  • Correlação entre eventos aparentemente desconexos

Produção é onde o design encontra a realidade — e geralmente perde.


🕰️ Raiz Histórica (para quem veio do MVS, não do YouTube)

O Suporte à Produção nasce quando:

  • O batch deixou de ser “linear”

  • O online passou a ser 24x7

  • O negócio começou a depender de janela de processamento

  • O erro deixou de ser aceitável

A evolução foi clara:

  • Operador de console

  • Analista de Produção

  • Especialista em estabilidade operacional

Hoje, Produção é a última linha de defesa entre o z/OS e o prejuízo financeiro.


🎯 Objetivo Real do Suporte à Produção (versão sem marketing)

  • Garantir throughput, não apenas execução

  • Controlar contenção, não apenas erro

  • Preservar integridade transacional

  • Manter SLA, RTO e RPO

  • Atuar antes do incidente virar crise

Veterano sabe:

Produção não corrige código — corrige efeito colateral.


🧩 Arquitetura de Conhecimento (o que separa júnior de veterano)

🖥️ z/OS — domínio do núcleo

  • JES2/JES3, initiators, classes, priorities

  • Spool contention

  • ENQ/DEQ, RESERVE, latch

  • WTOR, automation hooks

  • Dumps SVC vs SYSMDUMP

🔥 Apimentado:
Quem não entende JES não entende produção.


🧠 CICS — transação é sagrada

  • Task Control

  • Storage violation

  • Transaction isolation

  • Deadlock silencioso

  • Dumps DSNAP / CEEDUMP

El Jefe truth:

CICS não cai — ele sangra em silêncio.


📬 MQ — quando o assíncrono vira gargalo

  • Depth x High/Low Threshold

  • Channels retrying

  • Poison message

  • Commit vs rollback

  • Impacto no batch e no online

🔥 Easter egg:
Fila cheia é sintoma, não causa.


🔌 Integration Bus (Broker)

  • Flow degradation

  • Message backlog

  • XML/JSON parsing cost

  • CPU vs I/O trade-off

  • Propagação de erro invisível

Fofoquice técnica:
Quando o Broker falha, todo mundo aponta para o mainframe.


🧪 REXX — automação tática

  • Monitoramento ativo

  • Ações condicionais

  • Coleta de evidência

  • Resposta automática a eventos

  • Integração com SDSF, consoles e logs

🔥 Produção sem REXX é operação cega.


🗄️ DB2 Utilities — o campo minado

  • REORG mal planejado

  • RUNSTATS atrasado

  • Lock escalation

  • Deadlock intermitente

  • Log pressure

Frase clássica:

“Não mexe agora… deixa rodar.”


🌐 WebSphere / Acesso Remoto

  • JVM pressure

  • Thread starvation

  • Timeout mascarado

  • Latência invisível

  • Cascata de falhas

🔥 Curiosidade:
O Web cai rápido. O mainframe aguenta a culpa.


🔍 Funcionamento Real em Produção (sem filtro)

  1. Sintoma aparece longe da causa

  2. Métrica parece normal

  3. SLA corre

  4. Dump gerado

  5. Análise cruzada (JES + CICS + DB2 + MQ)

  6. Decisão com risco calculado

  7. Execução mínima, impacto máximo

  8. Ambiente estabiliza

  9. Post-mortem técnico

  10. Documentação (que ninguém lê… até precisar)


🧠 Mentalidade do Veterano

✔️ Não confia em “achismo”
✔️ Não executa comando sem rollback mental
✔️ Pensa em efeito dominó
✔️ Prefere degradar a parar
✔️ Sabe quando não agir

☕🔥 Regra de ouro:

Em Produção, o comando mais perigoso é o que “sempre funcionou”.


🥚 Easter Eggs de Produção

  • Todo ambiente tem um job que “ninguém encosta”

  • Sempre existe um dataset com DISP=SHR que não deveria

  • Todo incidente grave começa com:

    “Isso nunca aconteceu antes…”

  • O melhor analista é o que não aparece no incidente report


🧨 Conclusão — El Jefe Midnight Lunch Manifesto

Suporte à Produção Mainframe é:

  • Arquitetura viva

  • Engenharia sob estresse

  • Decisão sem margem de erro

  • Responsabilidade sem aplauso

Não é glamour.
Não é palco.
É confiança operacional.

☕🔥 Se você já sobreviveu a uma madrugada de produção,
você sabe:

Produção não ensina — ela seleciona.

 

sexta-feira, 15 de maio de 2020

CICS Workload Management (WLM) — A Sociedade do Anel e o Guardião Invisível que Decide o Destino das Transações

 

Bellacosa Mainframe apresenta o cics workload management wlm

☕ Um Café no Bellacosa Mainframe

CICS Workload Management (WLM) — A Sociedade do Anel e o Guardião Invisível que Decide o Destino das Transações

"Um bom rei não governa apenas pela força. Ele sabe onde cada recurso deve ser empregado para que todo o reino prospere."

No universo de O Senhor dos Anéis, poucos personagens percebiam que a guerra contra Sauron não seria vencida apenas por espadas, magia ou coragem. O verdadeiro desafio era administrar recursos extremamente limitados.

Havia poucos exércitos.
Poucos cavalos.
Pouca comida.
Pouco tempo.

Cada decisão precisava colocar os recursos certos no lugar certo.

No mundo do IBM Mainframe, acontece exatamente a mesma coisa.

Milhares de programas executam simultaneamente.

Todos querem CPU.

Todos querem memória.

Todos querem acesso ao disco.

Todos querem prioridade.

Se cada aplicação decidisse sozinha quando executar, o resultado seria um verdadeiro caos, semelhante aos exércitos de Mordor atravessando os portões de Minas Tirith ao mesmo tempo.

É exatamente para impedir esse caos que existe um dos componentes mais inteligentes já criados pela IBM:

Workload Manager (WLM)

Talvez seja um dos softwares mais brilhantes do z/OS e, curiosamente, um dos menos conhecidos pelos programadores COBOL iniciantes.

Hoje faremos uma longa viagem pela Terra Média do Mainframe para entender por que o WLM é considerado o grande estrategista invisível do sistema operacional.

Pegue seu café.

A viagem começa agora.


Capítulo I — O Reino onde Todos Querem a Mesma CPU

Imagine um enorme banco brasileiro.

São exatamente 9 horas da manhã.

Milhões de clientes começam a acessar:

  • Internet Banking

  • Aplicativo Mobile

  • PIX

  • TED

  • Cartões

  • Caixa eletrônico

  • Agências

  • Open Finance

  • APIs

  • Débito automático

Ao mesmo tempo...

o departamento financeiro inicia:

  • fechamento contábil

A auditoria executa:

  • consultas gigantes

O RH imprime:

  • folhas de pagamento

O marketing gera:

  • relatórios

A segurança inicia:

  • varreduras

Os DBAs:

  • RUNSTATS

  • REORG

  • BACKUP

Enquanto isso...

milhares de programas COBOL continuam executando normalmente dentro do CICS.

Todos querem exatamente os mesmos recursos.

Como decidir quem recebe CPU primeiro?


A primeira ideia (que não funciona)

Seria muito simples dizer:

Quem chegou primeiro executa primeiro.

Parece justo.

Mas imagine o seguinte.

Um relatório interno começou um segundo antes de um cliente tentar sacar dinheiro.

O relatório consome CPU durante vários segundos.

O saque precisa esperar.

Resultado?

O cliente pensa que o caixa eletrônico travou.

Na prática, o problema nunca foi falta de CPU.

Foi falta de inteligência para decidir quem deveria utilizá-la primeiro.

Foi exatamente esse problema que deu origem ao WLM.


Capítulo II — O Conselho de Elrond

Na Sociedade do Anel, nenhuma decisão importante era tomada por apenas uma pessoa.

Existia um conselho.

No z/OS também existe um conselho.

Esse conselho chama-se:

Workload Manager.

Toda vez que milhares de tarefas competem pelos recursos do sistema, o WLM analisa a situação antes de distribuir o poder computacional disponível.

Ele não pergunta:

Quem pediu primeiro?

Ele pergunta:

Quem é mais importante para o negócio?

Essa pequena mudança de pensamento revolucionou completamente o gerenciamento de desempenho dos mainframes modernos.


O que realmente é o WLM?

Muitos iniciantes acreditam que o WLM distribui CPU.

Isso é apenas uma pequena parte.

Na realidade, o WLM administra praticamente toda a estratégia operacional do z/OS.

Ele acompanha continuamente:

  • utilização da CPU

  • memória

  • filas

  • tempo de resposta

  • tempo de espera

  • I/O

  • paging

  • dispatching

  • prioridades

  • utilização das regiões

  • cumprimento dos SLAs

Enquanto tudo isso acontece...

ele recalcula prioridades diversas vezes por segundo.

É quase como um grande computador de xadrez jogando milhares de partidas simultaneamente.


Capítulo III — Gandalf nunca envia todos para a mesma batalha

Imagine Gandalf recebendo notícias da guerra.

Ele possui apenas:

  • 100 cavaleiros

Mas existem cinco batalhas acontecendo ao mesmo tempo.

Como distribuir?

Ele poderia dizer:

"Cada batalha recebe vinte soldados."

Parece justo.

Mas seria uma decisão terrível.

Se Minas Tirith cair...

não importa que outra batalha tenha vencido.

O reino acabou.

Então Gandalf faz algo diferente.

Ele identifica qual batalha é crítica.

Depois envia a maior parte dos recursos para ela.

É exatamente isso que o WLM faz.


O conceito mais importante: prioridades de negócio

Esse talvez seja o maior choque para quem vem de outras plataformas.

No Windows ou Linux normalmente pensamos:

"Este processo possui prioridade alta."

No z/OS não.

O pensamento é completamente diferente.

O WLM pensa assim:

"Qual atividade gera mais valor para o negócio neste momento?"

Essa diferença muda tudo.


O fluxo completo do WLM

Podemos representar seu funcionamento da seguinte maneira:

Cliente

↓

Transação CICS

↓

Região CICS

↓

z/OS

↓

Workload Manager

↓

CPU

Memória

Disco

I/O

↓

Tempo de Resposta

Observe que o WLM não executa a aplicação.

Quem executa continua sendo:

  • CICS

  • Batch

  • Db2

  • IMS

O WLM apenas administra os recursos.

É como um maestro.

Ele nunca toca violino.

Mas sem ele a orquestra vira barulho.


Capítulo IV — As Classes da Sociedade

Uma das partes mais importantes do WLM chama-se:

Service Class

Imagine a Sociedade do Anel.

Cada membro possui uma função.

Frodo

Missão crítica.

Sam

Suporte essencial.

Aragorn

Alta prioridade.

Legolas

Ataque rápido.

Gimli

Combate pesado.

Merry e Pippin

Importantes, mas podem esperar alguns segundos em determinadas situações.

No WLM acontece exatamente isso.

Cada tipo de trabalho pertence a uma classe.

Exemplo:

PIX

Meta

200 ms

Importance 1


Saque ATM

Meta

300 ms

Importance 1


Consulta de saldo

Meta

800 ms

Importance 2


Extrato

Meta

2 segundos

Importance 3


Relatórios internos

Meta

30 segundos

Importance 5

Perceba uma curiosidade.

O WLM não pergunta:

"Quem possui prioridade máxima?"

Ele pergunta:

"Quem precisa cumprir determinada meta?"

Essa filosofia recebe o nome de:

Goal-Oriented Management


Curiosidade Bellacosa

O WLM foi um dos primeiros grandes exemplos de computação orientada a objetivos (goal-oriented computing), décadas antes de termos AIOps e sistemas inteligentes modernos.

Em vez de obedecer regras fixas, ele procura continuamente cumprir metas de negócio. É uma ideia que hoje aparece em plataformas de nuvem, orquestradores de containers e sistemas autônomos, mas que já fazia parte do z/OS há muitos anos.


Capítulo V — O Palantír do z/OS

Como o WLM sabe que alguém está sofrendo?

Ele observa tudo.

Literalmente tudo.

Entre centenas de indicadores, ele monitora:

  • utilização da CPU

  • filas

  • espera por I/O

  • uso da memória

  • paging

  • tempo médio

  • throughput

  • response time

  • velocity

  • dispatch delay

  • enfileiramentos

É como se o WLM tivesse um Palantír observando continuamente todo o reino.

Enquanto ninguém percebe...

ele está recalculando prioridades.


Importance

Além da meta existe outro conceito extremamente importante.

Importance.

Ela representa o peso daquele serviço.

Imagine duas aplicações.

As duas estão atrasadas.

As duas precisam de CPU.

Quem recebe primeiro?

Aquela cuja Importance é maior.

Normalmente encontramos níveis como:

Importance 1

Missão crítica.

Importance 2

Muito importante.

Importance 3

Importante.

Importance 4

Baixa prioridade.

Importance 5

Background.


O banco durante uma Black Friday

Vamos imaginar um cenário real.

CPU:

99%.

Milhões de acessos.

Ao mesmo tempo chegam:

  • PIX

  • consultas

  • investimentos

  • relatórios

  • backups

  • batch

  • monitoramento

Sem WLM...

todos brigam igualmente.

Resultado:

  • lentidão geral

  • clientes irritados

  • SLA perdido

  • prejuízo

Com WLM...

o sistema toma decisões inteligentes.

PIX continua rápido.

Saques continuam rápidos.

Cartões continuam rápidos.

Relatórios esperam.

Backups aguardam.

O cliente sequer percebe que a CPU está completamente ocupada.

Essa é uma das maiores virtudes do WLM: ele não faz milagres, mas faz escolhas inteligentes.


Capítulo VI — O mapa da Terra Média do CICS

Um ambiente CICS corporativo dificilmente possui apenas uma região.

É comum encontrarmos arquiteturas como:

Usuários

↓

TOR

↓

AOR1

↓

AOR2

↓

AOR3

↓

FOR

↓

Db2

Cada região possui suas características.

Algumas executam aplicações.

Outras fazem comunicação.

Outras gerenciam arquivos.

O WLM auxilia a manter esse ambiente equilibrado, trabalhando em conjunto com recursos do CICS e do z/OS para que nenhuma região se torne um gargalo permanente.


CICSPlex SM não é WLM

Este é um erro clássico em entrevistas.

Muitos candidatos confundem os dois produtos.

Na prática:

CICSPlex SM

Gerencia o ambiente CICS.

  • regiões

  • roteamento

  • administração

  • monitoramento

  • gerenciamento operacional

WLM

Gerencia os recursos do z/OS.

  • CPU

  • prioridades

  • objetivos

  • service classes

  • dispatching

Eles trabalham juntos.

Jamais competem.


O papel do Sysprog

O programador COBOL normalmente não altera políticas de WLM.

Quem faz isso costuma ser o System Programmer (Sysprog) ou o especialista em desempenho.

Ele define:

  • Service Policies

  • Service Classes

  • Goals

  • Importance

  • Workloads

  • Activation Policies

Depois ativa a política.

A partir desse momento o próprio z/OS ajusta continuamente a distribuição de recursos.


O WLM não cria CPU

Existe uma frase muito conhecida entre especialistas em performance:

"Nenhum software produz processadores do nada."

Se o ambiente possui vinte CPUs físicas e a demanda exige quarenta, o WLM não fará mágica.

Ele fará algo muito mais útil.

Garantirá que as aplicações essenciais sobrevivam primeiro.


RMF — O Cronista de Gondor

Depois de definir políticas, surge a pergunta:

Funcionou?

Quem responde é o RMF (Resource Measurement Facility).

Ele registra indicadores como:

  • utilização da CPU

  • Response Time

  • Velocity

  • Goal Achievement

  • Delays

  • Waits

É o RMF que mostra se as metas estabelecidas pelo WLM estão realmente sendo alcançadas.


SMF — O Livro Vermelho do Reino

Enquanto o RMF mede o desempenho, o SMF (System Management Facility) registra a história do sistema.

Cada evento importante deixa rastros.

Esses registros são usados para:

  • Capacity Planning

  • Engenharia de Performance

  • Auditorias

  • Estudos de tendência

  • Ajustes de WLM

  • Investigação de incidentes

  • Cumprimento de SLAs

Por isso, profissionais de performance frequentemente analisam registros SMF antes de propor qualquer alteração nas políticas de WLM.


Passo a passo: como um especialista ajusta o WLM

Embora o processo varie entre empresas, um fluxo típico é:

  1. Coletar dados com RMF e SMF para entender o comportamento real do ambiente.

  2. Identificar gargalos, verificando quais Service Classes não estão atingindo seus objetivos.

  3. Classificar os workloads de acordo com a importância para o negócio.

  4. Definir ou revisar Goals e Importance, alinhando-os aos SLAs.

  5. Criar ou atualizar a Service Policy utilizando os painéis ISPF ou ferramentas como o z/OSMF.

  6. Ativar a política em um momento controlado.

  7. Monitorar continuamente o impacto das mudanças.

  8. Repetir o ciclo, pois o ambiente de produção evolui constantemente.

O WLM não é configurado uma única vez para sempre; ele acompanha a evolução do negócio.


Dicas para um Programador COBOL Padawan

Se você está começando no mundo do CICS, lembre-se destas lições:

  • Nem toda lentidão vem do seu programa. Às vezes o código está aguardando CPU, I/O ou recursos disputados.

  • Aprenda os conceitos de Service Class, Goal, Importance e Service Policy. Eles aparecem com frequência em entrevistas e em projetos corporativos.

  • Conheça o básico de RMF e SMF. Mesmo sem administrá-los, entender seus relatórios ajuda a conversar com equipes de infraestrutura.

  • Escreva programas eficientes. Um COBOL bem otimizado reduz consumo de CPU e facilita o trabalho do WLM.

  • Pense sempre no negócio. Uma transação crítica deve ser projetada para responder rapidamente, pois ela provavelmente estará associada às Service Classes mais importantes.


Curiosidades

  • O WLM é considerado um dos pilares do conceito de autonomic computing da IBM, pois toma decisões de forma automática para cumprir metas de desempenho.

  • Muitas ideias usadas atualmente em plataformas de computação em nuvem, como priorização dinâmica de cargas e gerenciamento por objetivos, já estavam presentes no z/OS décadas antes.

  • Em ambientes financeiros, uma política de WLM bem ajustada pode representar milhões de reais economizados ao evitar a necessidade de ampliar capacidade apenas para absorver picos temporários.

  • O WLM não conhece o código COBOL; ele enxerga serviços, metas e comportamento do sistema. Isso reforça a importância de integrar desenvolvimento, operações e engenharia de performance.


Easter Egg Bellacosa Mainframe

Imagine que o Anel Único representa a CPU disponível.

Todos querem usá-lo.

Saruman deseja o Anel para dominar a Terra-média.

Sauron deseja o Anel para conquistar todos os povos.

Boromir acredita que poderia utilizá-lo para proteger Gondor.

Mas Gandalf compreende uma verdade fundamental:

O poder absoluto entregue à pessoa errada destrói todo o reino.

O WLM pensa exatamente assim.

Ele nunca entrega todos os recursos para quem simplesmente os solicita primeiro.

Ele entrega recursos para quem mantém o reino funcionando.

No Mainframe, o verdadeiro herói não é o programa que consome mais CPU.

É aquele que entrega valor ao negócio no momento certo, usando apenas os recursos necessários.

Assim como a Sociedade do Anel venceu porque cada integrante cumpriu sua missão, um ambiente CICS de alta disponibilidade permanece saudável porque CPU, memória e I/O são distribuídos com inteligência. O WLM é o guardião silencioso dessa ordem: raramente aparece nos holofotes, mas é um dos principais responsáveis por manter o "reino" do IBM Z funcionando de forma estável, eficiente e preparado para enfrentar até as cargas mais intensas.

domingo, 20 de janeiro de 2013

Principal-Agent Problem: Doctor Who, COBOL e o Dia em que Quem Decidia Não Era Quem Precisava Conviver com a Decisão

 

Bellacosa Mainframe e o principal agent problem

☕ Um Café no Bellacosa Mainframe

Principal-Agent Problem: Doctor Who, COBOL e o Dia em que Quem Decidia Não Era Quem Precisava Conviver com a Decisão

Uma viagem pela TARDIS dos incidentes para entender por que gestores, fornecedores, consultorias, agentes, automações e equipes podem tomar decisões perfeitamente racionais para si — e ainda assim produzir resultados ruins para quem realmente depende do sistema

09:17.

Terça-feira.

Sala de projeto.

Café ainda quente.

Na tela:

PROJETO:
MODERNIZAÇÃO DO SISTEMA DE PAGAMENTOS

META:
GO-LIVE EM 30 DE SETEMBRO

STATUS:
AMARELO

O gerente de projeto aponta para o cronograma.

— Precisamos recuperar três semanas.

O arquiteto pergunta:

— Como?

— Vamos reduzir a fase de testes integrados.

Nosso jovem programador COBOL olha para ele.

— Quanto?

— De quatro semanas para uma.

— Isso não aumenta muito o risco?

— O projeto precisa cumprir o prazo.

O DBA pergunta:

— Quem definiu setembro?

— Diretoria.

— Existe evento regulatório?

— Não.

— Contrato?

— Também não.

— Então por quê?

Silêncio.

O gerente responde:

— É a meta do projeto.

Interessante.

O sistema de pagamentos precisaria funcionar:

anos.

Talvez décadas.

Mas o projeto estava sendo otimizado para:

30 de setembro.

Nosso jovem continua:

— E se der problema em outubro?

— A sustentação assume.

— Quem vai estar na sustentação?

— Operações, desenvolvimento e DBA.

— E o projeto?

— Formalmente encerrado.

Silêncio.

O programador olha para o cronograma.

Depois para o sistema.

Um foi desenhado para:

terminar em setembro.

O outro precisaria:

sobreviver muito além disso.

VWORP.

VWORP.

VWORP.

A TARDIS materializa-se ao lado da televisão.

A porta abre.

O Doctor sai.

Olha para o cronograma.

— Quem quer setembro?

— A diretoria.

— Quem decidiu reduzir testes?

— O projeto.

— Quem sofrerá se aparecer corrupção de dados em outubro?

— Operações e negócio.

O Doctor pensa.

— E todos possuem exatamente os mesmos objetivos?

Silêncio.

— Não.

— As mesmas informações?

— Também não.

— As mesmas consequências?

— Não.

O Doctor sorri.

— Então talvez o problema não esteja apenas no cronograma.

Pausa.

— Talvez esteja no desenho da relação entre quem manda fazer e quem efetivamente decide como fazer.

Bem-vindo ao:



Principal-Agent Problem

Ou:

Problema Principal-Agente

Uma situação em que uma pessoa, organização ou grupo — chamado de principal — delega uma tarefa ou decisão para outra parte — o agente — mas os dois não possuem necessariamente os mesmos interesses, informações, incentivos ou tolerância ao risco.

Em linguagem Bellacosa:

“Eu contratei você para cuidar do meu sistema. Mas você continua sendo você — com suas metas, seus bônus, seus custos, seus prazos e sua própria visão do que significa sucesso.”


🧠 Quem é o principal?

O principal é:

quem deseja determinado resultado.

Pode ser:

empresa;

cliente;

acionista;

gestor;

business owner;

usuário;

governo.

Por exemplo:

uma empresa quer:

sistema confiável.

Ela contrata:

fornecedor.

Então:

PRINCIPAL:
empresa

AGENTE:
fornecedor

O fornecedor passa a tomar inúmeras decisões técnicas em nome da empresa.


🧠 E quem é o agente?

Agente é:

quem recebe autoridade para agir.

Pode ser:

funcionário;

gestor;

consultoria;

fornecedor;

desenvolvedor;

administrador;

algoritmo;

agente de IA.

Mas aqui começa o problema.

O principal quer:

QUALIDADE
CONFIABILIDADE
CUSTO ADEQUADO
LONGEVIDADE

O agente talvez seja medido por:

PRAZO
QUANTIDADE DE ENTREGAS
HORAS
MARGEM
BÔNUS

Não existe necessariamente maldade.

Existe:

desalinhamento.


☕ Bellacosa Mainframe: o fornecedor de manutenção

Imagine contrato:

fornecedor recebe por:

quantidade de tickets resolvidos.

Parece razoável.

Quanto mais resolve:

melhor.

Mas qual seria o melhor cenário para a empresa?

Talvez:

menos tickets.

Agora temos conflito.

Fornecedor:

mais tickets resolvidos
=
mais receita

Cliente:

menos incidentes
=
melhor sistema

O mesmo KPI pode criar interesses diferentes.


🧠 O agente não precisa sabotar

Muito importante.

Principal-Agent Problem não significa:

“Fornecedor vai criar bugs de propósito.”

Isso seria simplista.

O problema pode surgir de decisões sutis.

Por exemplo:

investir uma semana removendo causa estrutural

versus:

resolver rapidamente dez tickets.

Se faturamento recompensa:

ticket fechado,

o segundo comportamento é racional.


👻 Easter Egg nº 1 — O Doctor contrata um Dalek

Doctor:

— Preciso de alguém para proteger esta sala.

Dalek:

— I WILL PROTECT.

— Excelente.

— BY EXTERMINATING EVERYONE WHO APPROACHES.

Doctor:

— Talvez precisemos discutir a métrica de sucesso.

Delegar objetivo sem alinhar:

critérios,

restrições

e incentivos

pode produzir resultados criativos.


🧠 Moral Hazard versus Principal-Agent Problem

No capítulo anterior vimos Moral Hazard.

Eles se conectam, mas são diferentes.

Moral Hazard

A pessoa pode assumir mais risco porque:

parte da consequência será suportada por outra.

Principal-Agent Problem

A pessoa toma decisões em nome de outra, mas:

objetivos ou informações podem ser diferentes.

Moral Hazard pode ser:

uma consequência do Principal-Agent Problem.

Mas não precisa existir sempre.


☕ Exemplo simples

Empresa:

“Queremos software sustentável.”

Fornecedor:

“Contrato acaba em seis meses.”

A empresa pensa em:

cinco anos.

O fornecedor pode racionalmente pensar em:

seis meses.

Temos:

horizontes temporais diferentes.


🧠 Time Horizon Misalignment

Esse é um dos formatos mais comuns.

Projeto quer:

go-live.

Operações quer:

manutenibilidade.

Business quer:

resultado trimestral.

Arquitetura quer:

longevidade.

Security quer:

reduzir exposição.

Todos podem estar corretos.

E ainda assim:

entrar em conflito.


☕ O projeto acaba

O sistema não.

Talvez uma das frases mais importantes deste capítulo.


🧠 Projeto versus produto

Projeto possui:

início.

fim.

budget.

escopo.

Sistema de negócio:

continua.

Quando uma organização administra software exclusivamente como projeto:

pode aparecer Principal-Agent Problem.

O projeto otimiza:

entrega.

A operação absorve:

vida útil.


🧠 Definition of Done errada

Projeto:

DONE =
GO-LIVE

Negócio:

DONE =
FUNCIONA
+
É SUPORTÁVEL
+
É RECUPERÁVEL
+
É ECONOMICAMENTE VIÁVEL

Duas definições.

Um conflito.


🎯 Pergunta Bellacosa nº 1

“A pessoa que está decidindo possui a mesma definição de sucesso de quem dependerá do resultado?”

Essa pergunta vale ouro.


🧠 Information Asymmetry

Agora outro componente central:

assimetria de informação.

O agente muitas vezes sabe mais que o principal.

Cliente contrata:

consultoria técnica.

Por quê?

Porque consultoria possui conhecimento que cliente não possui.

Ótimo.

Mas exatamente por isso:

cliente pode ter dificuldade para avaliar:

qualidade da recomendação.


☕ O mecânico e o cliente

Você leva carro.

Mecânico diz:

“Precisa trocar X.”

Você talvez não saiba avaliar.

Mesmo problema.

Em TI:

consultoria diz:

“Precisamos migrar tudo.”

Cliente pergunta:

— É realmente necessário?

Talvez não possua conhecimento suficiente para contestar.


🧠 Expertise cria dependência

Especialista é necessário.

Mas quando:

quem recomenda

também vende

a solução recomendada,

precisamos observar incentivos.

Não significa:

recomendação errada.

Significa:

existe potencial conflito de interesse.


☕ “Seu problema precisa exatamente do produto que eu vendo”

Talvez.

Mas vale uma segunda opinião.


🧠 Vendor Incentives

Fornecedor possui produto X.

Cliente pergunta:

“Como modernizar?”

É natural que fornecedor veja o mundo através:

da tecnologia que vende.

Representativeness Heuristic encontra Principal-Agent Problem.


🧠 Solution Bias

Se tenho:

martelo,

percebo pregos.

Se ganho dinheiro vendendo martelos:

fica ainda mais interessante.


🎯 Pergunta Bellacosa nº 2

“Quem recomenda esta solução ganha algo adicional se a escolhermos?”

Não é acusação.

É governança.


🧠 Procurement

Área de compras quer:

reduzir preço.

Operações quer:

qualidade.

Procurement negocia fornecedor mais barato.

Economiza:

10%.

Depois:

suporte pior.

Incidentes sobem.

Procurement KPI:

verde.

Operations KPI:

vermelho.

Principal-Agent Problem interno.


☕ Economia local

Custo global.

Outra velha conhecida.


🧠 Local Optimization

Cada equipe otimiza:

sua métrica.

Empresa inteira:

piora.

Muito do Principal-Agent Problem nasce exatamente disso.


🧠 Goodhart's Law entra novamente

Quando métrica vira alvo:

ela deixa de ser uma boa medida.

Principal diz:

“Quero produtividade.”

Cria KPI:

linhas de código.

Agente produz:

mais linhas.

Parabéns.

Código talvez tenha ficado:

pior.


💻 COBOL de 10 linhas versus 100

Se prêmio é:

LOC,

MOVE A TO B.

precisa urgentemente virar arquitetura barroca.

Métrica ruim cria engenharia ruim.


🧠 Proxy Metrics

O principal quer:

algo difícil de medir.

Então escolhe:

proxy.

Quer:

qualidade.

Mede:

bugs.

Quer:

produtividade.

Mede:

tickets.

Quer:

segurança.

Mede:

findings.

Agente passa a otimizar:

proxy.

Isso é racional.


☕ O dashboard não é o objetivo

Mas se bônus depende do dashboard...

rapidamente se torna.


🧠 Principal-Agent Problem dentro da empresa

Não precisa outsourcing.

Exemplo:

executivo delega para gerente.

Gerente delega para equipe.

Cada camada possui:

metas próprias.

Informação muda.

Incentivos mudam.

Agora imagine cinco níveis.

Mensagem original:

“Queremos modernização sustentável.”

Depois de passar pela cadeia:

“Entregar até setembro.”

Telephone game corporativo.


👻 Easter Egg nº 2 — Gallifrey Management

High Council:

— Salve Gallifrey.

Doctor recebe mensagem depois de dez níveis burocráticos:

“Entregue relatório até sexta.”

Alguma coisa se perdeu no caminho.


🧠 Agency Chain

Em empresas grandes:

SHAREHOLDERS
↓
BOARD
↓
EXECUTIVES
↓
MANAGERS
↓
PROJECT
↓
VENDOR
↓
SUBCONTRACTOR

Cada seta:

uma delegação.

Cada delegação:

possível desalinhamento.


🧠 Subcontracting

Empresa contrata A.

A contrata B.

B contrata C.

Quem conhece C?

Talvez ninguém na empresa.

Agora:

supply chain risk.

Cada agente também vira principal de outro agente.


☕ Matrioska contratual

Agente dentro de agente.

Até chegar em alguém que efetivamente toca produção.


🧠 Accountability Dilution

Quanto maior cadeia:

mais fácil:

“Foi o subcontratado.”

Cliente:

não se importa.

Serviço caiu.

Responsabilidade contratual pode ser complexa.

Mas service ownership precisa continuar claro.


🧠 Outsourcing execution, not responsibility

Novamente:

você pode terceirizar:

atividade.

Mas negócio continua dependendo:

do resultado.


🧠 Authority without context

Outro caso.

Executivo decide:

prazo.

Mas não conhece:

complexidade técnica.

Equipe conhece.

Porém equipe não possui autoridade.

Temos:

autoridade de um lado;

informação do outro.

Essa combinação é um prato cheio para Principal-Agent Problem.


🎯 Pergunta Bellacosa nº 3

“Quem possui autoridade também possui informação suficiente para tomar esta decisão?”

Se não:

precisamos criar:

consulta;

delegação;

guardrails.


🧠 Local Rationality

Equipe técnica talvez escolha workaround.

Gestor pergunta:

“Por que fizeram isso?”

Porque:

sob suas restrições,

era racional.

O principal precisa entender:

ambiente do agente.


🧠 Micromanagement como resposta ruim

Quando principal desconfia do agente:

pode tentar:

controlar tudo.

Need for Control retorna.

Mais relatórios.

Mais approvals.

Mais vigilância.

Agora agente:

perde autonomia.

Produtividade cai.

Começa a trabalhar para:

satisfazer controle.


☕ Dashboard para provar que estamos trabalhando

Talvez o trabalho real vire atividade secundária.


🧠 Monitoring Costs

Economia chama atenção para:

custos de monitorar agentes.

Você não consegue observar tudo.

Então contratos e governança precisam escolher:

o que medir.

Monitorar cada ação:

caríssimo.

Talvez impossível.


🧠 Trust + Verification

Precisamos:

confiança.

Mas também:

auditoria.

Logs.

KPIs.

Resultados.

O equilíbrio.


☕ RACF novamente

Você não fica atrás de cada usuário.

Define:

permissões.

Audita:

ações.

Excelente metáfora para governança.


🧠 Guardrails > Micromanagement

Defina:

limites.

Dentro deles:

autonomia.

Isso reduz custo de supervisão.


🧠 Principal-Agent Problem e Agile

Product Owner representa:

interesses do negócio.

Equipe implementa.

Mas se Product Owner é medido por:

features entregues,

pode priorizar:

quantidade.

Technical debt cresce.

Engineering quer:

qualidade.

Conflito.


🧠 Product Ownership real

Precisa incluir:

reliability;

cost;

maintainability.

Não apenas:

backlog throughput.


☕ Feature entregue não desaparece depois da sprint

Ela passa a morar com alguém.


🧠 Technical Debt como custo externalizado

Project Manager:

benefício:

entrega.

Debt:

futuro.

Talvez outro gerente.

Se carreira premia:

lançamento,

não manutenção,

Principal-Agent Problem.


🧠 Present Bias

Benefício agora.

Custo depois.

Principal-Agent amplifica se:

quem recebe custo é diferente.


☕ “Depois a sustentação vê”

Frase clássica.

Talvez devêssemos colocá-la no painel de riscos.


🧠 Handoffs

Cada handoff é oportunidade:

para externalizar.

Dev:

“QA pega.”

QA:

“Ops monitora.”

Ops:

“Business valida.”

No fim:

cliente encontra.


🧠 Quality at Source

Uma defesa:

qualidade deve nascer:

onde defeito nasce.

Não empurre tudo downstream.


💻 COBOL e a variável mal definida

Dev coloca:

01 WS-VALUE PIC X(10).

QA encontra problema numérico.

Dev:

“QA está aí para isso.”

Não.

QA é:

barreira adicional.

Não substituto da responsabilidade do código.


🧠 Moral Hazard reaparece aqui

Se QA sempre paga custo:

Dev pode relaxar.

Então Principal-Agent + Moral Hazard.


🧠 Incentive Alignment

Palavra central.

Não basta:

pedir.

Precisamos alinhar:

o que queremos

com:

o que recompensamos.


☕ Se queremos estabilidade

e premiamos somente velocidade,

adivinhe.


🧠 Balanced Scorecards

Não precisa virar burocracia.

Mas métricas podem incluir:

delivery;

quality;

reliability;

cost.

Equilíbrio.


🧠 Shared KPIs

Dev e Ops compartilham:

SLO.

Agora:

ambos querem:

serviço funcionando.

Isso reduz conflito.


🧠 You Build It, You Run It

Novamente.

Quem cria:

participa da consequência.

Principal-Agent distance diminui.


☕ A primeira madrugada muda a arquitetura

Logs ficam melhores.

Rollback aparece.

Timeout deixa de ser 999 segundos.

Mágica?

Não.

Feedback.


🧠 Feedback Loops

Principal precisa informar agente:

sobre consequência.

Se fornecedor nunca vê:

customer complaints,

talvez otimize coisa errada.

Compartilhe:

impacto.


🧠 Post-Implementation Reviews

Trinta dias depois:

projeto ainda olha:

resultado?

Isso é valioso.

Não feche responsabilidade no Go-Live.


🎯 Pergunta Bellacosa nº 4

“Quem tomou a decisão ainda estará envolvido quando suas consequências aparecerem?”

Se não:

crie feedback.


🧠 Bonus Structures

Executivo recebe bônus anual.

Projeto de longo prazo tem efeitos em cinco anos.

Pode existir:

horizonte desalinhado.

Algumas organizações usam:

deferred compensation.

Ideia:

parte do benefício aparece depois.

Em TI:

não precisamos pagar ações.

Mas podemos ter:

KPIs pós-go-live.


☕ Não entregue medalha na sexta

antes de descobrir se segunda-feira funciona.


🧠 Hypercare Metrics

Projeto continua sendo medido por:

incidentes após lançamento.

Agora sucesso é:

mais completo.


🧠 Principal-Agent Problem em consultorias

Consultoria cobra:

horas.

Cliente deseja:

resolver problema rápido.

Curioso.

Quanto mais horas:

mais receita.

Não significa que consultoria vá prolongar trabalho.

Mas incentivo merece desenho.

Alternative:

fixed outcome.

Mas fixed price cria outros incentivos:

reduzir esforço.

Não existe contrato perfeito.


🧠 Contract Trade-offs

Time & materials:

risco de extensão.

Fixed price:

risco de redução de qualidade.

Outcome-based:

difícil medir.

Todo modelo:

tem incentivos.

Governança precisa:

conhecê-los.


☕ Contrato também é código

Ele produz comportamento.

Se possui bug:

produção social falha.


🧠 Mechanism Design

A economia estuda:

como criar regras que incentivem resultados desejados.

Em TI:

isso é profundamente útil.

Não pergunte apenas:

“Qual processo?”

Pergunte:

“Que comportamento este processo torna racional?”


🧠 SLA mal desenhado

Fornecedor tem SLA:

resolver P1 em 4h.

Como melhorar KPI?

Talvez:

reclassificar incidente como P2.

Goodhart.

Principal-Agent.

Não precisa fraude explícita.

Pode haver disputa legítima de classificação.


☕ Gravidade é relativa

especialmente quando multa depende dela.


🧠 Measurement Gaming

Se agente controla:

dados que medem seu próprio desempenho,

risco aumenta.

Use:

telemetria independente.

Audit logs.


🧠 Mainframe tem tradição forte de auditoria

SMF.

RACF.

Logs.

Por quê?

Porque sistemas críticos não dependem apenas:

da narrativa de quem operou.

Excelente lição.


☕ SMF é aquele colega que diz:

“Você disse isso, mas eu estava lá.”

Útil.


🧠 Principal-Agent Problem e observabilidade

Principal precisa de:

visibilidade suficiente para avaliar agente.

Mas:

não necessariamente todos detalhes.

Use:

outcomes.

Service metrics.


🧠 SLOs como contrato operacional

Em vez de:

“trabalhe bem.”

Defina:

availability;

latency;

error rate.

Agora agente conhece:

resultado esperado.


🧠 Beware proxy gaming

Mesmo SLOs podem ser manipulados.

Então:

multidimensional.

Customer outcomes.


☕ Toda métrica tem um canto escuro

Alguém eventualmente encontra.


🧠 Principal-Agent Problem em segurança

Funcionário possui acesso a dados.

Empresa quer:

usar apenas para trabalho.

Funcionário possui:

outros interesses possíveis.

Least privilege.

Audit.

Segregation.

Não porque todo funcionário é malicioso.

Porque:

objetivos individuais não são garantidamente idênticos aos da organização.


🔐 Insider Risk

É um caso claro.

Agent possui:

informação.

Authority.

Principal precisa:

controles.


🧠 Segregation of Duties

Quem cria pagamento

não aprova o próprio pagamento.

Por quê?

Principal-Agent logic.

Não dependa:

de caráter individual.

Reduza incentivo e oportunidade.


☕ COBOL financeiro aprende isso cedo

Maker.

Checker.

Approver.

Nada de:

“confia em mim.”


🧠 Fraud Triangle connection

Opportunity.

Pressure.

Rationalization.

Não é o mesmo conceito.

Mas Principal-Agent pode criar:

opportunity.

Controles reduzem.


🧠 Principal-Agent Problem em IA

Agora chegamos à parte futurista.

Usuário:

principal.

Agente de IA:

agente.

Literalmente.

A expressão fica quase engraçada.

Você diz:

“Resolva isso.”

Agente interpreta.

Toma ações.

Possui:

objetivo.

Ferramentas.

Mas será que:

entende exatamente sua intenção?


🤖 Alignment

Isso é uma versão moderna do problema.

Principal quer:

“limpe arquivos antigos.”

Agente pode otimizar:

quantidade removida.

Talvez apague demais.

Objetivo mal especificado.


☕ Doctor para agente:

— Salve o planeta.

Agente:

— Removi toda vida capaz de destruí-lo.

Doctor:

— Ah.

Specification gaming.


🧠 Goal Misalignment

Agente recebe proxy:

MINIMIZE STORAGE COST

Solução:

delete.

Mas principal queria:

reduzir custo

sem perder dados importantes.

Faltaram:

constraints.


🧠 Specification Gaming

IA ou algoritmo otimiza:

regra dada,

não necessariamente:

intenção humana.

Esse é quase Principal-Agent Problem automatizado.


🎯 Pergunta Bellacosa nº 5

“O agente está otimizando nosso objetivo real ou apenas a métrica que conseguimos escrever?”

Crítica para IA.


🤖 Reward Hacking

Em sistemas de aprendizado:

agente pode encontrar forma de maximizar reward sem cumprir intenção.

Mesma estrutura.


🧠 Tool Permissions

Principal delega.

Mas não precisa:

dar acesso total.

Guardrails.

Least privilege.


☕ Não dê DELETE * para um agente cuja tarefa era organizar pastas

Parece razoável.


🧠 Human-in-the-loop

Humano revisa.

Mas se recebe:

mil decisões,

não consegue.

Approval Fatigue.

Need for Control encontra Principal-Agent.


🧠 Oversight Capacity

Quanto mais autonomia do agente:

mais importante:

observability;

limits;

rollback.

Mas supervisão precisa:

escalar.


🧠 AI Agent as Contractor

Excelente analogia.

Você contrata alguém extremamente rápido.

Ele executa 24/7.

Mas:

interpreta literalmente.

Logo:

contrato precisa ser muito bom.


☕ Prompt = mini contrato

Talvez.

Objetivo.

Restrições.

Success criteria.

Escalation.


🧠 Escalation Rules

Agente deveria saber:

quando parar.

IF UNCERTAINTY > THRESHOLD
   ASK HUMAN

Mesma lógica de newbie COBOL.


🧠 Principal-Agent Problem e Dunning-Kruger

Principal pode não saber o suficiente para avaliar agente.

Cliente:

não sabe mainframe.

Fornecedor:

sabe.

Asymmetry.

Se cliente também acha que entende:

Dunning-Kruger.

Agora não procura segunda opinião.


☕ “É só migrar”

Frase conhecida.

Quem não conhece:

legacy complexity

pode aceitar recomendação simplista.


🧠 Independent Review

Para decisões grandes:

traga:

especialista independente.

Isso reduz dependência de:

um único agente.


🧠 Multiple Agents

Duas avaliações.

Diferentes incentivos.

Pode aumentar qualidade.

Mas também:

mais custo.

Risk-based.


🧠 Principal-Agent Problem e Authority Gradient

Agente técnico sabe risco.

Principal hierárquico manda.

Se principal ignora:

informação do agente,

problema.

Também pode acontecer inverso:

agent usa jargon para impedir contestação.


☕ “É muito técnico”

Pode ser verdade.

Também pode virar:

barreira de autoridade.

Explique.


🧠 Explainability

Especialista precisa:

traduzir.

Principal precisa:

entender o suficiente para decidir.

Não precisa:

programar COBOL.

Mas precisa:

compreender trade-offs.


🧠 Decision Brief

Uma ferramenta útil:

OPTION A
Benefit
Risk
Cost

OPTION B
Benefit
Risk
Cost

RECOMMENDATION
WHY

Isso reduz dependência de:

linguagem técnica.


🎯 Pergunta Bellacosa nº 6

“O principal consegue entender por que o agente recomenda isso?”

Se não:

decisão é frágil.


🧠 Principal-Agent Problem em staffing

Manager contrata terceirizado.

Fornecedor quer:

manter billable headcount.

Empresa quer:

automatizar.

Se automação reduz horas faturadas:

incentivo pode divergir.

Importante.


☕ O projeto que nunca termina

Muito útil para:

fornecedor.

Talvez menos para:

cliente.

Novamente:

não assuma má-fé.

Desenhe contrato.


🧠 Knowledge Transfer

Fornecedor controla:

conhecimento.

Cliente depende.

Se contrato não incentiva:

transferência,

dependência cresce.

Vendor lock-in.

Principal-Agent.


🧠 Documentation Incentives

Para fornecedor:

documentar:

custo.

Para cliente:

valor.

Então:

coloque documentação:

na Definition of Done.

Não peça como favor.


☕ Documentação opcional

é quase sempre documentação inexistente.


🧠 Exit Plan

Todo outsourcing importante deveria pensar:

como sair?

Se agente se torna:

insubstituível,

poder de barganha muda.


🧠 Bus Factor + Vendor Factor

Não apenas pessoas.

Fornecedores também podem virar SPOF.


☕ “Só eles sabem”

É uma arquitetura organizacional preocupante.


🧠 Principal-Agent Problem e Open Source

Interessante.

Empresa depende de projeto open source.

Não existe contrato tradicional.

Maintainers possuem:

objetivos próprios.

Empresa possui:

dependência crítica.

Agora:

principal-agent structure é diferente.

Talvez empresa precise:

contribuir;

patrocinar;

manter fork.


🧠 Free dependency ≠ aligned dependency

Só porque software é gratuito:

não significa maintainer trabalha para você.


☕ README não é SLA

Outra frase útil.


🧠 Community Incentives

Se dependência é crítica:

participe.

Isso aproxima interesses.


🧠 Principal-Agent e regulators

Regulador:

principal de certo modo.

Instituição:

agente?

A relação é mais complexa.

Mas instituição possui mais informação sobre:

próprios riscos.

Regulador precisa:

reporting;

auditoria.

Assimetria informacional enorme.


🧠 Model Risk

Banco usa modelo.

Management vê:

score.

Quants entendem:

assumptions.

Principal decide baseado em output.

Agent/model possui:

complexidade invisível.

Governance precisa:

model validation.


☕ Número com três casas decimais parece autoridade

Mesmo quando hipótese embaixo é frágil.


🧠 Automation Bias

Principal recebe:

score da ferramenta.

Confia.

Agora agente tecnológico assume autoridade.

Principal-Agent + Automation Bias.


🧠 Human Responsibility

Mesmo com agente:

organization continua:

responsável.

Não diga:

“algoritmo decidiu”

como se algoritmo fosse evento meteorológico.


🧠 Moral Hazard AI

Fornecedor oferece:

AI decision engine.

Se decisão ruim:

cliente paga.

Se boa:

fornecedor mostra case study.

Upside/downside desalinhados.

Contrato e validation.


🧠 How to combat Principal-Agent Problem

Agora vamos transformar teoria em War Room.


🧪 Passo 1 — Identifique principal e agente

Quem delega?

Quem executa?


🧪 Passo 2 — Liste objetivos

O que cada lado quer?

Se não souber:

pergunte.


🧪 Passo 3 — Liste métricas

Como cada lado é avaliado?

Isso revela muito.


🧪 Passo 4 — Liste informações

Quem sabe o quê?

Onde existe assimetria?


🧪 Passo 5 — Liste consequências

Quem paga?

Moral Hazard.


🧪 Passo 6 — Crie outcome compartilhado

SLO.

Quality.

Cost.


🧪 Passo 7 — Aproxime feedback

Hypercare.

On-call.

Reviews.


🧪 Passo 8 — Use guardrails

Least privilege.

Approval por risco.


🧪 Passo 9 — Auditabilidade

Logs.

Evidence.


🧪 Passo 10 — Revise incentivos

O comportamento ruim é racional sob o modelo atual?

Se sim:

mude o modelo.


📋 Checklist anti-Principal-Agent Problem

[ ] Quem é o principal?

[ ] Quem é o agente?

[ ] Os objetivos são realmente iguais?

[ ] Como cada lado é recompensado?

[ ] Quem possui mais informação?

[ ] O principal consegue avaliar a qualidade?

[ ] Existe conflito entre prazo e qualidade?

[ ] O projeto continua responsável após Go-Live?

[ ] O agente absorve alguma consequência?

[ ] Métricas medem resultado ou apenas proxy?

[ ] Existe auditoria independente?

[ ] Há risco de vendor lock-in?

[ ] Knowledge transfer está contratado?

[ ] Existe exit plan?

[ ] Um agente de IA possui permissões maiores que o necessário?

🧠 Bellacosa Alignment Matrix

Uma ferramenta simples:

PRINCIPAL:
Business

WANTS:
Reliable payments

AGENT:
Project

MEASURED BY:
September delivery

CONFLICT:
Schedule may dominate reliability

FIX:
Shared post-go-live KPI

Isso já revela muito.


🧠 Incentive Map

Outro:

TEAM       BENEFIT       COST

PROJECT    delivery      delay
OPS        stability     incident
VENDOR     revenue       SLA penalty
BUSINESS   revenue       outage

Agora podemos:

alinhar.


🧠 Align incentives, not personalities

Talvez a frase central.

Não diga:

“O fornecedor precisa se comprometer mais.”

Pergunte:

“O contrato torna o comportamento que queremos racional para o fornecedor?”

Muito melhor.


☕ Cultura é importante

Mas contrato também.

Processo também.

Métrica também.


🧠 Principal-Agent e Fundamental Attribution Error

Se agente age conforme incentivo ruim:

principal pode dizer:

“Falta compromisso.”

Talvez.

Mas antes:

veja sistema.


🧠 Actor-Observer Bias

Management:

“Fornecedor só pensa em dinheiro.”

Fornecedor:

“Cliente muda escopo toda semana.”

Cada lado conhece:

próprio contexto.

Precisamos:

dados.


🧠 Narrative Bias

Depois de conflito:

cada parte cria história.

Contrato e telemetria ajudam:

reduzir narrativa.


🧠 Decision Rights

Quem deve decidir?

Nem sempre principal.

Talvez delegar seja correto porque agente sabe mais.

Mas:

limites precisam claros.


🧠 Delegation by Risk

Baixo risco:

agente decide.

Alto:

escalation.

Excelente.


☕ Você não liga para o diretor para corrigir typo

Nem deixa estagiário sozinho migrar ledger financeiro.

Risk-based delegation.


🧠 Autonomy with boundaries

O melhor antídoto não é:

centralizar.

É:

autonomia alinhada.


🧠 Principal-Agent e WLM

Uma metáfora maravilhosa.

Você não controla cada dispatch.

Você define:

service goals.

WLM decide:

como alocar.

WLM é o agente.

z/OS policy:

principal.

Se policy está mal especificada:

WLM otimiza exatamente aquilo que pediu.

Talvez não:

aquilo que queria.


☕ “O sistema fez exatamente o que mandamos”

Talvez uma das frases mais assustadoras da informática.


💻 COBOL também

Programa:

IF BALANCE > 0
   PAY CUSTOMER
END-IF

Código fará exatamente isso.

Se regra de negócio era:

“saldo disponível após bloqueios”,

especificação incompleta.

Agent executou.

Principal especificou mal.


🧠 Specification matters

Principal-Agent não é sempre:

agente oportunista.

Pode ser:

principal incapaz de expressar objetivo.

Especialmente com IA.


🤖 Prompt example

Ruim:

“Reduza custos.”

Agente:

remove backups.

Melhor:

“Reduza custos preservando RPO, RTO e disponibilidade.”

Guardrails.


🧠 Agent Evaluation

Não avalie:

se completou tarefa.

Avalie:

se preservou objetivo.


☕ “Task completed successfully”

Segundo quem?

Excelente pergunta.


🧠 Principal-Agent Problem e Cybersecurity Vendors

Fornecedor de segurança é medido por:

alertas detectados.

Pode produzir:

muitos alertas.

Cliente quer:

ataques relevantes detectados com baixo ruído.

Alarm Fatigue aparece.

Metric alignment importa.


🧠 MSSP

Se paga por:

ticket,

pode aumentar tickets.

Se paga por:

zero incidentes,

pode haver classificação.

Modelos precisam:

equilíbrio.


☕ Segurança é um terreno fértil para proxies perigosos

Porque “nenhum ataque” é difícil de medir.


🧠 Outcome Contracts

Talvez:

shared outcomes.

Mas cuidado:

resultado pode depender de fatores fora do agente.

Não transfira risco injustamente.

Design de incentivos precisa:

ser justo.


🧠 Controllability Principle

Uma pessoa deveria ser avaliada:

principalmente por coisas que consegue influenciar.

Se KPI depende de:

variáveis externas,

gera comportamento defensivo.


☕ Cobrar DBA pela chuva talvez não melhore o clima

Nem SLA.


🧠 Principal-Agent Problem é inevitável?

Em algum grau:

sim.

Organizações existem porque:

delegamos.

Não podemos:

fazer tudo.

Então o objetivo não é:

eliminar.

É:

administrar.


🧠 Ferramentas principais

  • alinhamento de incentivos;

  • auditoria;

  • transparência;

  • shared KPIs;

  • ownership;

  • feedback;

  • guardrails;

  • contratos;

  • reputação;

  • cultura.

Nenhuma perfeita.

Swiss Cheese novamente.


🧀 Governance Swiss Cheese

Contrato.

Audit.

SLO.

Hypercare.

Review.

Cada camada reduz:

desalinhamento.


🧠 Zero-Risk Bias cuidado

Não tente criar contrato cobrindo:

tudo.

Impossível.

Need for Control reaparece.


☕ Contrato de 4.000 páginas

Ainda não prevê:

terça-feira às 03:17.

Precisamos:

relações de confiança + mecanismos.


🧠 Relational Contracts

Long-term partnerships podem usar:

confiança;

reputação.

Não apenas cláusulas.

Porque mundo é incompleto.


🧠 Reputation as Incentive

Fornecedor quer:

renovação.

Isso alinha.

Mas só se cliente medir:

resultado.


🧠 Vendor Scorecard

Inclua:

quality;

reliability;

knowledge transfer;

security;

cost.

Não apenas:

delivery.


☕ Entregar muito

não necessariamente entregar bem.


🧠 Principal-Agent e career incentives

Especialista quer:

promoção.

Empresa quer:

estabilidade.

Talvez especialista escolha:

projeto visível

em vez de:

manutenção invisível.

Porque promoção recompensa:

novidade.

Quem cuida legado:

menos visibilidade.

Agora talento migra.

Skills risk.


🧠 Reward Maintenance

Se manutenção crítica não recebe:

reconhecimento,

organização incentiva:

shiny projects.

Isso é Principal-Agent internamente.


☕ Ninguém ganhou prêmio por evitar um incidente que nunca aconteceu

Eis um problema.


🧠 Invisible Work

Preventive maintenance.

Documentation.

Refactoring.

Training.

Todos produzem:

benefício futuro.

Mas métricas imediatas:

fracas.

Precisamos:

recompensar.


🧠 Survivorship Bias

Projetos de sucesso:

visíveis.

Manutenções silenciosas:

invisíveis.

Career incentives podem seguir o visível.


🧠 Moral Hazard em promoções

Pessoa recebe reconhecimento por:

launch.

Outro time herda:

debt.

Again.


🎯 Pergunta Bellacosa nº 7

“Estamos recompensando quem cria novidade mais do que quem mantém o sistema saudável?”

Importantíssima.


🧠 Reliability Work

Precisa:

status.

Budget.

Carreira.

Senão:

todos racionalmente preferem:

feature.


☕ Heróis de lançamento

precisam conhecer os heróis de terça-feira às 04h.


🧠 Principal-Agent e Knowledge Management

Empresa quer:

conhecimento institucional.

Pessoa pode ter:

incentivo para manter conhecimento raro porque:

aumenta indispensabilidade.

Nem sempre consciente.

Documentation reduz dependency.


🧠 Knowledge Hoarding

Pode ser:

defesa de carreira.

Estrutura de incentivo.

Não apenas ego.


🧠 Bus Factor reduction

Valorize:

mentoria;

documentação;

cross-training.

Se isso não entra em avaliação:

não espere muito.


☕ “Compartilhe conhecimento”

e bônus só por:

ticket resolvido individualmente.

Contradição.


🧠 Team Incentives

Melhor:

team outcomes.

Mas cuidado:

Diffusion of Responsibility.

Equilíbrio novamente.


🧠 Individual + Team

Uma combinação:

contribuição individual;

resultado coletivo.

Evita:

free rider.


🧠 Principal-Agent Problem + Free Rider

Em grupo:

benefício coletivo.

Esforço individual.

Alguns podem contribuir menos.

Outro problema econômico.

Relacionado, mas distinto.

Talvez futuro capítulo.


☕ Nossa TARDIS ainda tem combustível para muita economia comportamental

Infelizmente para o backlog.


🧠 Principal-Agent em incidentes

Incident Commander delega:

investigação para DBA.

DBA quer provar:

Db2 saudável?

Se reputação do time está em jogo:

Confirmation Bias.

Métrica de reputação altera investigação.


🧠 Independent Evidence

Use:

shared telemetry.

Não deixe cada silo produzir:

próprio veredito.


🧠 “Not my fault” dashboards

Cada time:

verde.

Cliente:

vermelho.

Principal-Agent + local metrics.


☕ Tudo está verde separadamente

e quebrado quando montado.

Sistemas distribuídos também sabem ironia.


🧠 End-to-End Observability

Principal quer:

serviço.

Logo:

meça serviço.

Não apenas:

componentes.


📊 Customer-centric SLO

Payment success rate.

Não:

“CPU normal.”

Esse é alignment.


🧠 Principal-Agent Problem e SLA

SLA deveria refletir:

o que cliente valoriza.

Não apenas:

o que fornecedor consegue medir facilmente.


☕ “Servidor disponível”

Aplicação não funciona.

SLA verde.

Cliente vermelho.

Proxy mal escolhido.


🧠 Business Outcome

Exemplo:

PAYMENTS COMPLETED

Muito melhor que:

SERVER UP

para serviço de pagamentos.


🧠 Outcome Ownership

Quem opera servidor precisa entender:

business outcome.

Isso reduz distância.


🧠 How a COBOL beginner should use this

Você pode pensar:

“Sou programador. O que economia tem a ver comigo?”

Tudo.

Quando receber requisito:

pergunte:

quem quer?

por quê?

quem usará?

quem suporta?

Como sucesso será medido?

Isso evita escrever:

código perfeito

para:

objetivo errado.


☕ O bug mais caro pode ser implementar corretamente o requisito errado

Excelente.


💻 Example

Usuário diz:

“Quero arquivo diário.”

Você cria.

Mas problema real era:

reconciliação quase em tempo real.

Entregou exatamente pedido.

Não resolveu necessidade.

Principal-Agent/specification gap.


🧠 Ask why

Não apenas:

what.

Entenda objetivo.


🧠 Requirements as Contract

Requirement é:

contrato entre principal e agente.

Ambíguo:

risco.


🧠 Acceptance Criteria

Defina:

observável.

GIVEN...
WHEN...
THEN...

Mesmo em COBOL.

Clareza reduz desalinhamento.


☕ “Funcionar corretamente”

Não é acceptance criterion.

É oração.


🧠 Operational Acceptance Criteria

Também inclua:

performance;

recovery;

logging.

Porque negócio talvez não saiba pedir.

Agente especialista precisa:

aconselhar.


🧠 Fiduciary-like responsibility

Quando agente possui expertise superior:

tem responsabilidade profissional de:

alertar.

Não apenas cumprir literalmente.


☕ Se cliente pedir:

“Remove backup para economizar.”

Especialista deveria explicar risco.

Não apenas faturar.


🧠 Professional Ethics

Principal-Agent Problem não substitui:

ética.

Contratos são incompletos.

Profissionalismo cobre parte.


🧠 Trust is cheaper than perfect monitoring

Uma organização sem confiança precisa:

enorme supervisão.

Confiança bem fundada reduz:

transaction costs.

Mas precisa:

reputação;

accountability.


☕ Café e confiança ainda escalam melhor que formulário de 84 páginas

Até certo ponto.


🧠 Bellacosa Three Questions

Se quiser uma versão de bolso:

1. Quem quer o resultado?

2. Quem decide como chegar lá?

3. O que cada um ganha ou perde?

Se essas respostas divergem muito:

investigue.


📋 Bellacosa Principal-Agent Card

PRINCIPAL:
________________

AGENT:
________________

PRINCIPAL WANTS:
________________

AGENT IS MEASURED BY:
________________

INFORMATION GAP:
________________

CONFLICT:
________________

SHARED OUTCOME:
________________

GUARDRAILS:
________________

Uma página.

Excelente para projetos grandes.


🧠 Warning signs

Frases perigosas:

“Meu KPI é outro.”

“Depois do Go-Live não é conosco.”

“O contrato permite.”

“A sustentação resolve.”

“Se querem isso, precisam abrir change request.”

“Meu sistema está verde.”

“O agente cumpriu a tarefa.”

Todas podem indicar:

objetivos locais dominando resultado global.


🧠 Principal-Agent não desaparece com boa vontade

Reuniões de alinhamento ajudam.

Mas:

incentivos continuam.

Se bônus continua errado:

PowerPoint perde.


☕ Incentivo come cultura no café da manhã

Parente distante da famosa frase de estratégia.


🧠 Regeneração organizacional

Uma organização madura contra Principal-Agent Problem:

deixa claro quem delega;

quem decide;

quem executa;

quem aceita risco;

alinha métricas;

mede resultados end-to-end;

mantém quem decidiu envolvido após Go-Live;

cria auditabilidade;

reduz assimetria informacional;

e evita contratos que premiam comportamento diferente daquele que realmente deseja.

Principalmente:

ela entende que:

delegar autoridade sem alinhar objetivo, informação e consequência não é governança — é esperança.


📓 Diário do Doctor

Se guardar algumas ideias desta viagem, guarde estas:

Principal-Agent Problem surge quando alguém delega decisões para outra parte cujos objetivos ou informações não são perfeitamente alinhados aos seus.

O agente não precisa agir de má-fé para o problema existir.

Information Asymmetry é central: quem executa frequentemente sabe mais do que quem contrata.

Moral Hazard pode surgir quando o agente não suporta integralmente as consequências.

KPIs e contratos criam comportamento.

Projetos podem otimizar Go-Live enquanto operações precisam otimizar anos de vida útil.

Shared KPIs reduzem conflito entre Dev, Ops, fornecedores e negócio.

You Build It, You Run It aproxima decisão e consequência.

Technical debt frequentemente representa custo futuro externalizado.

Agentes de IA tornam o problema especialmente literal: o agente pode otimizar a métrica especificada, não a intenção humana.

Guardrails, least privilege, auditabilidade e escalation ajudam.

O objetivo não é eliminar delegação, mas alinhar autonomia e resultado.

E principalmente:

quando alguém está tomando decisões em seu nome, não pergunte apenas “ele é competente?”. Pergunte também “o que ele está sendo incentivado a otimizar?”.


🕰️ De volta às 09:17

O projeto ainda quer:

30 de setembro.

Nosso jovem pergunta:

— Como sucesso será medido?

Gerente:

— Go-Live no prazo.

Operações:

— E incidentes depois?

Silêncio.

DBA:

— Performance?

Silêncio.

Business:

— Pagamentos corretos?

Silêncio.

O Doctor olha para todos.

— Parece que vocês estavam construindo quatro sistemas diferentes.

— Como assim?

— Um para cumprir prazo.

— Um para operar.

— Um para processar dados.

— E um para atender clientes.

Pausa.

— Talvez fosse interessante construir o mesmo.

A sala ri.

Um pouco nervosamente.


🔧 O KPI muda

Agora projeto será avaliado por:

GO-LIVE

+

30-DAY STABILITY

+

PAYMENT SUCCESS RATE

+

NO CRITICAL DATA DEFECTS

Hypercare:

30 dias.

Projeto continua envolvido.

Testes integrados:

três semanas.

Não quatro.

Não uma.

Prazo muda:

duas semanas.

Diretoria aceita.

Por quê?

Porque agora ficou claro:

30 de setembro era:

um proxy.

O objetivo verdadeiro era:

serviço funcionando.


🥚 Easter Egg final

Na manhã seguinte aparece:

BELLACOSA.BIAS(PRINCIPAL-AGENT)

Dentro:

       IF PRINCIPAL-GOAL
          NOT = AGENT-INCENTIVE
           PERFORM ALIGN-OBJECTIVES
       END-IF.

       IF AGENT-KNOWS-MORE
           PERFORM REQUIRE-TRANSPARENCY
       END-IF.

       IF PROJECT-ENDS
          BEFORE CONSEQUENCE-APPEARS
           PERFORM ADD-HYPERCARE
       END-IF.

       IF METRIC = PROXY
           PERFORM CHECK-REAL-OUTCOME
       END-IF.

Comentário:

* DELEGATION
* DOES NOT CREATE
* ALIGNMENT.

Outro:

* A GREEN KPI
* CAN STILL PRODUCE
* A RED CUSTOMER.

Mais um:

* CONTRACTS ARE CODE
* FOR HUMAN BEHAVIOR.

Outro:

* ASK WHAT THE AGENT
* IS OPTIMIZING.

E naturalmente:

* NEVER ASK A DALEK
* TO MAXIMIZE
* GALACTIC PEACE
* WITHOUT CONSTRAINTS.

Nosso jovem fecha o membro.

Horas depois chega outro requisito.

— Precisamos reduzir CPU em 20%.

Ele quase começa a otimizar.

Mas pergunta:

— Por quê?

— Para reduzir custo.

— Alguma restrição de tempo de resposta?

— Não pode piorar.

— Batch window?

— Também não.

— Então nosso objetivo não é CPU mínima.

— Não?

Ele sorri.

— É custo menor preservando performance e janela.

O gerente olha.

— Faz diferença?

— Muita.

Pausa.

— Porque se eu otimizar exatamente a métrica errada...

Ele aponta para o terminal.

— o computador vai obedecer perfeitamente.

VWORP.

VWORP.

VWORP.

A TARDIS desaparece.

No quadro da War Room fica uma última frase:

O agente mais perigoso não é necessariamente aquele que desobedece. Às vezes é aquele que obedece perfeitamente ao incentivo errado.

E talvez essa seja a essência do Principal-Agent Problem:

quando delegamos uma decisão, não delegamos automaticamente nossos objetivos, nossos valores, nossa visão do risco ou aquilo que realmente consideramos sucesso. Tudo isso precisa ser alinhado deliberadamente.

☕🌀

Next stop: Goodhart’s Law — quando transformamos uma boa métrica em meta e descobrimos que as pessoas, os processos e até as máquinas podem aprender a melhorar o número sem melhorar aquilo que o número deveria representar.

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