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

sábado, 11 de dezembro de 2010

Diffusion of Responsibility: Doctor Who, COBOL e o Dia em que Todo Mundo Viu o Alerta — Mas Ninguém Era o Responsável

Bellacosa Mainframe e a diffusion of responsibility

☕ Um Café no Bellacosa Mainframe

Diffusion of Responsibility: Doctor Who, COBOL e o Dia em que Todo Mundo Viu o Alerta — Mas Ninguém Era o Responsável

Uma viagem pela TARDIS dos incidentes para entender por que quanto mais pessoas recebem um problema, mais fácil pode ser acreditar que outra pessoa já está cuidando dele

08:57.

Segunda-feira.

Café quente.

Produção funcionando.

O Teams tranquilo.

Uma manhã suspeitosamente agradável.

Até que surge:

09:01:17

WARNING
PAYMENT QUEUE DEPTH > THRESHOLD

O monitoramento envia automaticamente a mensagem para:

Operações.

Aplicação.

Middleware.

CICS.

DBA.

Infraestrutura.

Gestão.

Suporte.

Vinte e três pessoas recebem.

Excelente.

Um sistema moderno.

Comunicação perfeita.

Visibilidade ampla.

09:04.

A fila continua crescendo.

QUEUE DEPTH: 4.312

João, da aplicação, vê.

Pensa:

“Operação certamente está olhando.”

Maria, de operações, vê.

Pensa:

“Isso parece problema da aplicação.”

Carlos, de middleware, recebe.

Pensa:

“Se for MQ de verdade, alguém vai me chamar.”

O gerente recebe no celular.

Pensa:

“A equipe técnica já está atuando.”

Nosso jovem programador COBOL vê a mensagem.

Olha a quantidade de pessoas no canal.

Vinte e três.

Pensa:

“Não vou atrapalhar. Certamente alguém mais experiente está cuidando.”

09:12.

QUEUE DEPTH: 12.891

Ninguém está cuidando.

09:17.

TIMEOUT RATE: +320%

09:19.

Usuários começam a reclamar.

09:22.

Alguém pergunta no Teams:

“Pessoal, alguém olhando isso?”

Silêncio.

Então...

VWORP.

VWORP.

VWORP.

A TARDIS materializa-se no corredor.

A porta abre.

O Doctor sai.

Olha para o painel.

Olha para o Teams.

Conta os participantes.

— Vinte e três pessoas receberam o alerta?

— Sim.

— Quantas estão investigando?

Silêncio.

— Interessante.

Nosso programador responde:

— Achei que alguém estivesse.

O Doctor aponta para os demais.

— Eles também.

Pausa.

— Vocês construíram uma equipe tão grande que conseguiram criar uma pessoa imaginária chamada “alguém”.

Bem-vindo ao:



Diffusion of Responsibility

Ou:

Difusão de Responsabilidade

O fenômeno pelo qual a presença de várias pessoas pode reduzir a sensação individual de responsabilidade para agir.

Quanto mais fácil pensar:

“Outra pessoa fará”

mais perigoso fica descobrir que todas as outras pessoas pensaram exatamente a mesma coisa.


🌀 A TARDIS já colecionou muitos monstros

Nossa jornada está ficando perigosamente parecida com um bestiário de sistemas complexos.

Começamos pelo Swiss Cheese Model.

Aprendemos que barreiras imperfeitas podem falhar simultaneamente.

Depois:

Normalization of Deviance — aquilo que estava errado vai ficando familiar.

Hindsight Bias — depois do desastre todo mundo acredita que deveria ter percebido.

Confirmation Bias — encontramos aquilo que procuramos.

Anchoring Bias — a primeira explicação prende nossa atenção.

Groupthink — pessoas concordam porque as outras concordam.

Authority Gradient — alguém percebe, mas não consegue confrontar autoridade.

Plan Continuation Bias — continuamos porque já começamos.

Alarm Fatigue — recebemos tantos alertas que deixamos de ouvi-los.

Automation Bias — acreditamos demais na máquina.

Drift Into Failure — pequenas adaptações empurram todo o sistema lentamente para condições perigosas.

Agora encontramos outra peça.

O alerta funciona.

Não existe necessariamente fadiga.

A máquina detectou corretamente.

As pessoas viram.

O problema foi distribuído para tanta gente que a responsabilidade ficou...

distribuída também.


🧠 O que é Diffusion of Responsibility?

A ideia é bastante simples.

Imagine que você esteja sozinho numa sala.

Um alarme começa.

Você pensa:

“Preciso fazer alguma coisa.”

Agora imagine vinte pessoas.

O mesmo alarme aparece.

Você pode pensar:

“Alguém mais qualificado vai cuidar.”

Cada pessoa individualmente sente uma fração menor da responsabilidade.

Não precisamos literalmente calcular:

RESPONSABILIDADE / NÚMERO DE PESSOAS

A psicologia não funciona como COBOL.

Mas a sensação pode se comportar aproximadamente dessa maneira.

Uma responsabilidade claramente individual:

“Vagner, investigue este alerta.”

é muito diferente de:

“Pessoal, alguém consegue olhar?”

A segunda frase acabou de criar um funcionário imaginário chamado:

Alguém.


👥 O famoso Bystander Effect

Diffusion of Responsibility é fortemente relacionada ao chamado Bystander Effect, ou efeito espectador.

Estudos clássicos da psicologia social associados a John Darley e Bibb Latané investigaram por que indivíduos podem ter menor probabilidade de ajudar em certas situações quando outras pessoas também estão presentes.

A lógica psicológica inclui elementos como:

“Outra pessoa deve agir.”

ou:

“Se ninguém está reagindo, talvez não seja grave.”

Isso é fascinante porque se conecta imediatamente aos incidentes.

Uma War Room possui muitos espectadores.

Todos tecnicamente capazes.

Todos informados.

Mas capacidade coletiva não garante ação individual.


🚨 O alerta para “todos”

Existe uma frase operacional que deveria causar desconforto:

“Mandamos para todo mundo.”

Parece robusto.

Mas quem é o responsável?

Resposta:

“Todo mundo.”

Então talvez tenhamos um problema.

Porque:

Responsabilidade de todos pode virar responsabilidade de ninguém.


☕ Bellacosa Mainframe: o job que ninguém assumiu

Imagine:

JOB ABC123 ABENDED S0C7

Scheduler envia:

Aplicação.

Produção.

Suporte.

DBA.

Operador.

Email de distribuição.

Teams.

Telefone automático.

Fantástico.

Agora:

Operação pensa:

aplicação está vendo.

Aplicação pensa:

operador deve ter iniciado restart.

DBA pensa:

não parece Db2.

Gestão pensa:

equipes técnicas receberam.

Resultado:

35 minutos.

Nenhuma ação.

O problema não foi falta de notificação.

Foi falta de:

ownership.


🏷️ Ownership muda tudo

Compare:

ALERT:
ABC123 S0C7

RECIPIENTS:
OPERATIONS@EMPRESA

com:

ALERT:
ABC123 S0C7

OWNER:
BATCH PAYMENTS TEAM

ON-CALL:
MARIA

ACK REQUIRED: 5 MIN

ESCALATE AFTER: 10 MIN

A segunda versão responde à pergunta:

Quem precisa agir agora?

Isso vale ouro.


🧠 Informação e responsabilidade são coisas diferentes

Enviar informação não significa atribuir responsabilidade.

Você pode informar 200 pessoas.

Ainda precisa existir alguém dizendo:

“Eu tenho este incidente.”

Isso é uma distinção maravilhosa para quem começa em TI.

Broadcast

“Todos precisam saber.”

Assignment

“Você precisa agir.”

Não confunda.


👻 Easter Egg nº 1 — O companion imaginário

O Doctor pergunta:

— Quem deveria apertar o botão?

Companion A:

— Achei que fosse B.

Companion B:

— Eu achei que fosse o Doctor.

Doctor:

— E eu estava ocupado impedindo a destruição do espaço-tempo.

Pausa.

— Talvez devêssemos começar a colocar nomes nos botões.

TI aprendeu a mesma lição.

Ou deveria.


📣 “Alguém pode verificar?”

Essa frase aparece muito em chats operacionais:

“Alguém consegue verificar CICS?”

Cinco pessoas leem.

Ninguém responde.

Melhor:

“Carlos, consegue verificar CICS e retornar em 10 minutos?”

Agora temos:

responsável;

atividade;

expectativa.

Se Carlos não puder:

— Não consigo. Maria assume?

Responsabilidade transferida explicitamente.


🏃 O bastão precisa ser entregue

Imagine corrida de revezamento.

Não basta:

“Acho que o próximo corredor sabe que deve correr.”

Existe entrega do bastão.

Em incidentes deveria ser semelhante:

OWNER: CARLOS
        ↓
HANDOFF
        ↓
OWNER: MARIA

Nunca:

CARLOS
   ↓
“PESSOAL”
   ↓
???

O ??? é onde incidentes moram.


🔁 Handoff é uma transação

Para um programador COBOL, pense como uma transação.

Transferência de responsabilidade deveria possuir confirmação.

CARLOS:
“Maria, transfiro análise de MQ para você.”

MARIA:
“Recebido. Assumo MQ.”

Commit.

Sem confirmação:

rollback psicológico.

Ninguém sabe quem possui.


🧠 Two Generals Problem corporativo

Em sistemas distribuídos existe toda uma discussão sobre confirmação e coordenação.

Na organização temos versão humana:

Pessoa A:

“Mandei mensagem.”

Pessoa B:

“Não vi.”

Pessoa A:

“Mas mandei.”

Tecnicamente:

mensagem transmitida.

Operacionalmente:

responsabilidade não assumida.

Por isso acknowledgement importa.


✅ ACK novamente

No capítulo de Alarm Fatigue aprendemos:

ACK ≠ RESOLVED

Agora adicionamos:

DELIVERED ≠ OWNED

E:

READ ≠ ACTION

Essas três inequações deveriam estar na parede da War Room.


🧀 Diffusion of Responsibility encontra o Swiss Cheese

Uma fatia importante de segurança é:

resposta humana.

Monitor detecta.

Equipe recebe.

Parece barreira robusta.

Mas:

ninguém possui ownership.

Temos um buraco.

Pior.

Todos acreditam que a barreira existe.

Isso produz falsa confiança.


🚨 Alarm Fatigue + Diffusion of Responsibility

Agora os dois monstros se encontram.

Quatro mil alertas.

Todos enviados para vinte pessoas.

Cada pessoa pensa:

alguém pegará os importantes.

Perfeito.

Temos ruído distribuído para responsabilidade distribuída.

O verdadeiro alerta entra.

E desaparece.


🤖 Automation Bias + Diffusion of Responsibility

Sistema automático cria ticket.

Ótimo.

Ticket entra numa fila geral.

Todos confiam:

sistema direcionará corretamente.

Mas regra de roteamento está errada.

Ticket permanece sem owner.

Como foi criado automaticamente, todos assumem que o processo automático também garantiu tratamento.

Não garantiu.

Automação aumentou sensação de segurança.

Ownership continuou vazio.


👥 Groupthink também aparece

Equipe inteira vê ninguém reagindo.

Cada pessoa interpreta silêncio como:

provavelmente não é grave.

Esse mecanismo é próximo daquilo que psicólogos chamam de pluralistic ignorance.

Cada pessoa observa a ausência de reação das outras e usa isso como informação.

Internamente:

“Estou preocupado.”

Externamente:

ninguém age.

Então todos concluem:

“Talvez eu esteja exagerando.”

Agora o silêncio se autoalimenta.


😐 Pluralistic Ignorance

Imagine oito pessoas numa sala.

Todas sentem cheiro estranho.

Cada uma olha para as outras.

Ninguém reage.

Cada uma pensa:

“Se fosse perigoso, alguém estaria preocupado.”

Mas todos estão preocupados.

Fantástico.

Agora troque cheiro por:

QUEUE DEPTH +400%

War Room:

ninguém fala.

Mesmo mecanismo.


⚓ Anchoring Bias pode definir o dono errado

Primeiro chamado diz:

“Problema de rede.”

Todos:

— Network team cuidará.

A rede pensa:

— Não é nossa.

Mas ninguém realoca formalmente.

Agora incidente fica órfão.

O título inicial ancorou não apenas diagnóstico.

Ancorou ownership.


🪜 Authority Gradient e responsabilidade

Júnior percebe:

— Ninguém está olhando isso.

Mas pensa:

“O gerente certamente sabe.”

Ou:

“O Incident Commander já deve ter atribuído.”

Não pergunta.

Authority Gradient transforma dúvida em silêncio.


▶️ Plan Continuation Bias

Mudança em andamento.

Alerta surge.

Todos assumem que “alguém da validação” está analisando.

Ninguém interrompe plano.

Continua.

Mais um exemplo de como nossos monstros cooperam.


🌀 Drift Into Failure

Difusão de responsabilidade também pode se tornar estrutural ao longo do tempo.

Equipe pequena:

ownership claro.

Empresa cresce.

Mais times.

Mais fornecedores.

Mais camadas.

Agora:

Aplicação.

Plataforma.

Infra.

Cloud.

Mainframe.

Middleware.

Rede.

Segurança.

Fornecedor A.

Fornecedor B.

Quem é dono do fluxo ponta a ponta?

Resposta:

depende.

Essa resposta merece investigação.


🕸️ Complexidade organizacional cria fronteiras

Muitos incidentes vivem nas interfaces.

Time A:

meu componente está verde.

Time B:

o meu também.

Time C:

idem.

Usuário:

não funciona.

Cada equipe possui parte.

Ninguém possui jornada completa.

Isso é perigoso.


🗺️ Component Ownership versus Service Ownership

Você pode possuir:

CICS.

Db2.

MQ.

API.

Mas quem possui:

Pagamento do cliente?

Isso é diferente.

Serviços ponta a ponta precisam de responsabilidade além de componentes.

Caso contrário:

todos os componentes verdes.

Cliente vermelho.


💻 O COBOL está funcionando!

Programador:

— Meu programa retornou RC=00.

DBA:

— Db2 normal.

MQ:

— Mensagem entregue.

API:

— HTTP 200.

Cliente:

— Dinheiro não chegou.

Cada profissional está correto localmente.

O sistema está errado globalmente.

Drift Into Failure nos ensinou sobre racionalidade local.

Diffusion of Responsibility acrescenta:

ninguém pode estar olhando o todo.


🧠 O problema dos silos

Silos organizacionais não são apenas problema burocrático.

São risco técnico.

Quanto mais fragmentado:

mais handoffs;

mais fronteiras;

mais possibilidade de:

“não é comigo.”

Essa frase deveria ser tratada como evento operacional.


🚪 “Not my problem”

Às vezes realmente não é responsabilidade daquele time.

Tudo bem.

Mas resposta madura não é:

“Não é nosso.”

É:

“Não é nosso componente. Estou transferindo para X e confirmando que assumiram.”

O incidente precisa sair de uma mão e chegar a outra.

Não cair no chão.


🏷️ Incident Commander

É exatamente por isso que o papel de Incident Commander pode ser tão útil.

Não precisa ser o maior especialista técnico.

Sua função é garantir:

quem investiga o quê;

quem possui a próxima ação;

qual prazo;

qual hipótese;

qual decisão;

qual escalonamento.

Ou seja:

o Incident Commander combate difusão de responsabilidade.


🎬 War Room sem direção

Imagine:

15 especialistas falando.

Cada um executa alguma coisa.

Mas ninguém sabe:

quem decide;

quem registra;

quem atualiza;

quem comunica;

quem acompanha ação.

Isso não é equipe.

É multiplayer sem party leader.

E o boss está batendo.


🎮 Easter Egg nº 2 — Raid de RPG

Imagine uma raid.

Tank pensa:

healer vai puxar.

Healer pensa:

tank vai puxar.

DPS já começou.

Boss acorda.

Raid wipe.

No post-mortem:

“Quem puxou?”

Resposta:

“Ninguém.”

TI às vezes consegue reproduzir MMORPG com orçamento corporativo.


🧪 RACI pode ajudar — mas não salvar sozinho

Uma ferramenta conhecida:

RACI

Responsible.

Accountable.

Consulted.

Informed.

Pode ser útil para esclarecer funções.

Exemplo:

INCIDENTE DE PAGAMENTO

Responsible:
Payments Operations

Accountable:
Payments Manager

Consulted:
DB2, MQ, CICS

Informed:
Business, Service Desk

Muito melhor que:

todos envolvidos.

Mas cuidado.

Matriz no SharePoint não resolve automaticamente cultura.

Precisa refletir trabalho real.


🧠 Responsible versus Accountable

Uma distinção útil:

Responsible

faz o trabalho.

Accountable

responde pelo resultado e garante que exista dono.

Em incidentes críticos, alguém precisa possuir accountability.

Não necessariamente executar tudo.


📝 Single Threaded Owner

Outra ideia muito útil:

uma pessoa claramente responsável pela coordenação do problema.

Mesmo com dezenas de especialistas.

Não significa centralizar conhecimento.

Significa centralizar ownership.


🎯 Pergunta Bellacosa nº 1

Quando surgir incidente:

“Quem é o dono?”

Se resposta:

“A equipe.”

Pergunte novamente.

“Qual pessoa está coordenando?”

Nome.


🎯 Pergunta Bellacosa nº 2

Para cada atividade:

“Quem vai fazer e quando retorna?”

Não:

“Precisamos verificar MQ.”

Mas:

“Carlos verifica MQ e retorna às 09:30.”

Agora existe ação.


🎯 Pergunta Bellacosa nº 3

Depois de handoff:

“A outra pessoa confirmou que assumiu?”

Se não:

a responsabilidade ainda é sua.

Essa regra pode evitar muita coisa.


🎯 Pergunta Bellacosa nº 4

Quando dez pessoas recebem alerta:

“Quem precisa acordar por causa dele?”

Se ninguém:

talvez o alerta seja informativo.

Se alguém:

roteie diretamente.


🔔 Notifications devem refletir papéis

Nem todo mundo precisa pager.

Talvez:

Owner:

pager.

Especialistas:

Teams.

Gestão:

status periódico.

Usuários:

comunicação de impacto.

Um sistema que manda a mesma mensagem para todos não está necessariamente comunicando bem.


🧠 Broadcast cria espectadores

Quanto mais amplo o broadcast:

mais pessoas informadas.

Mas também pode criar:

mais espectadores passivos.

Se precisar de ação:

atribua.


🔥 Incêndio corporativo

Imagine prédio pegando fogo.

Mensagem:

“Pessoal, alguém chama os bombeiros?”

Você ficaria tranquilo?

Melhor:

“Maria, ligue para emergência. Carlos, evacue o andar. João, confirme.”

Incidentes precisam dessa clareza.


🛑 Role Assignment nos primeiros minutos

Uma War Room madura deveria rapidamente definir algo como:

INCIDENT COMMANDER: ANA

TECH LEAD: CARLOS

COMMS: JULIANA

SCRIBE: PEDRO

DB2: MARIA

MQ: ROBERTO

APPLICATION: LUCAS

Agora ninguém pergunta:

“Achei que alguém estava anotando.”

Temos Pedro.

Pobre Pedro.

Mas necessário.


✍️ O Scribe é mais importante do que parece

Durante crise:

ações acontecem rápido.

Sem registro:

hipóteses repetidas;

decisões esquecidas;

comandos duplicados;

handoffs confusos.

Scribe preserva memória coletiva.

Isso reduz difusão cognitiva.


📜 Decision Log novamente

09:13
Carlos assume MQ.

09:16
MQ channel healthy.

09:18
Maria verifica DB2 waits.

09:22
DB2 normal.

09:24
Hipótese muda para consumer.

Agora todo mundo sabe.


🚧 Evite investigação duplicada

Difusão de responsabilidade tem um primo estranho:

às vezes ninguém faz.

Outras vezes cinco pessoas fazem a mesma coisa.

Porque ninguém coordenou.

Resultado:

DBA investigado cinco vezes.

MQ ninguém olhou.

Ownership também evita duplicação.


🧮 Paralelismo precisa ser controlado

Mainframeiro entende paralelismo.

Você quer tarefas independentes.

THREAD A → DB2
THREAD B → MQ
THREAD C → APPLICATION

Não:

THREAD A → DB2
THREAD B → DB2
THREAD C → DB2
MQ → NINGUÉM

War Room também precisa scheduling.


📊 Action Board

Uma ferramenta incrivelmente simples:

AÇÃO             OWNER      PRAZO    STATUS
MQ consumer      Carlos     09:30    RUNNING
DB2 wait         Maria      09:28    DONE
App logs         João       09:32    RUNNING
Comms negócio    Ana        09:35    OPEN

Acaba com boa parte da ambiguidade.


🧠 “Eu achei que...”

Uma frase favorita dos post-mortems:

“Eu achei que fulano estava fazendo.”

Alarmes.

Backups.

Validação.

Rollback.

Comunicação.

Esses “achei” são ouro investigativo.

Pergunte:

Por que o sistema permitiu que uma atividade crítica dependesse de suposição?


💾 Backup: o clássico

Todo mundo acredita:

infraestrutura faz backup.

Infra acredita:

aplicação valida restore.

Aplicação acredita:

backup é responsabilidade da infra.

Incidente.

Backup existe.

Restore nunca testado.

Diffusion of Responsibility mora feliz.


🔐 Segurança

Alerta de vulnerabilidade.

Security envia para aplicação.

Aplicação pensa:

plataforma corrigirá.

Plataforma:

código é aplicação.

90 dias depois:

continua aberto.

CVSS não liga para organograma.


🏦 Reconciliação financeira

Operação:

negócio valida valores.

Negócio:

TI valida processamento.

TI:

reconciliação é automática.

Automação:

erro.

Quem percebe?

Talvez o cliente.

Nunca faça do cliente seu mecanismo de observabilidade.


🧠 Customer as Monitor

Existe um anti-pattern terrível:

“Se der problema, usuário reclama.”

Isso significa:

cliente virou sistema de alerta.

Alarm Fatigue agradece.

Automation Bias agradece.

Diffusion of Responsibility também.


🤖 Agentes de IA e responsabilidade

Agora fica interessante.

Imagine múltiplos agentes:

Agent A analisa.

Agent B executa.

Agent C valida.

Quem é responsável pelo resultado?

Não diga:

“o agente.”

Responsabilidade organizacional continua humana.

Precisamos saber:

quem configurou;

quem autorizou;

quem monitora;

quem pode interromper;

quem responde por exceção.


🤖 Multi-Agent Diffusion

Agentes também podem criar versão tecnológica:

Agent A:

deleguei para B.

B:

classifiquei como responsabilidade de C.

C:

aguardando entrada de A.

Loop.

Nenhum humano percebe.

Então sistemas multiagentes precisam:

ownership;

state;

timeouts;

escalation;

orchestrator.

Viu como nossa teoria volta aos agentes?


🧭 Orchestrator como Incident Commander

Num sistema agentic:

orquestrador precisa saber:

quem está fazendo;

qual status;

quando expira;

quando escalar.

Exatamente como War Room.

Tecnologia muda.

Coordenação continua sendo coordenação.


⏰ Timeout de responsabilidade

Uma tarefa não deveria ficar eternamente:

STATUS: ASSIGNED

Sem resposta.

Defina timeout.

ACK REQUIRED: 5 MIN
ACTION UPDATE: 15 MIN
ESCALATE: 20 MIN

Responsabilidade precisa de relógio.


🧠 Escalation não é punição

Escalar significa:

a condição exige mais atenção.

Não:

alguém falhou moralmente.

Se escalonamento vira punição, pessoas escondem atraso.

Just Culture novamente.


🧪 Passo a passo para combater Diffusion of Responsibility

Passo 1 — Todo incidente precisa de owner

Uma pessoa.

Nome.

Não “time”.


Passo 2 — Toda ação precisa de owner

“Verificar banco”

não é ação completa.

Use:

“Maria verifica Db2 até 09:30.”

Passo 3 — Exija ACK

Assignment sem confirmação não terminou.


Passo 4 — Defina tempo

Responsabilidade sem deadline pode evaporar.


Passo 5 — Crie escalation path

Se owner não responde:

quem recebe?


Passo 6 — Separe FYI de ACTION REQUIRED

No assunto.

Na ferramenta.

Na cultura.


Passo 7 — Use Incident Commander

Principalmente em incidentes grandes.


Passo 8 — Registre handoffs

Não confie em memória.


Passo 9 — Audite filas sem owner

Tickets.

Alertas.

Vulnerabilidades.

Problemas.

Tudo que não possui dono é dívida operacional.


Passo 10 — Investigue “achei que alguém”

Toda vez que essa frase aparece no post-mortem, existe oportunidade de melhorar processo.


📬 FYI versus ACTION REQUIRED

Uma disciplina simples.

FYI:
Informação.

ACTION:
Pessoa específica precisa fazer algo.

Não misture.

Se tudo pede ação:

Alarm Fatigue.

Se nada especifica ação:

Diffusion of Responsibility.


🎯 O equilíbrio

Boa operação precisa de:

informação suficiente;

responsabilidade específica.

VISIBILIDADE AMPLA
+
OWNERSHIP CLARO
=
COORDENAÇÃO

Não precisamos esconder informação.

Precisamos evitar ambiguidade.


🧠 Dunbar não salva a War Room

Adicionar pessoas não aumenta indefinidamente capacidade.

Às vezes mais gente significa:

mais canais;

mais conversas;

mais suposições;

mais handoffs.

Existe custo de coordenação.

Um incidente com 50 pessoas pode ser mais difícil que com 10 especialistas bem organizados.


🚪 War Room precisa de porta

Nem todo mundo precisa falar.

Alguns podem acompanhar.

Roles:

core responders;

SMEs sob demanda;

stakeholders informados.

Isso reduz ruído.


🧠 Incident Command System

Estruturas de comando em emergência existem por uma razão:

quando tudo fica caótico, funções precisam ficar mais claras, não menos.

Tecnologia às vezes tenta resolver crise colocando cinquenta especialistas numa call.

Não é necessariamente coordenação.

Pode ser apenas Zoom cheio.


👻 Easter Egg nº 3 — 50 pessoas no Teams

War Room:

“Participants: 57”

Doctor:

— Quem está coordenando?

— Não sei.

— Quem está investigando MQ?

— Acho que alguém.

— Quem comunica usuários?

— Deve ter alguém.

Doctor:

— Então por que temos 57 pessoas?

Silêncio.

— Ah.

— O quê?

— Vocês estão usando quantidade como substituto de estrutura.


🧩 Diffusion of Responsibility no code review

PR com 12 reviewers.

Cada um pensa:

alguém fará review profundo.

Resultado:

12 approvals superficiais.

Compare com:

PRIMARY REVIEWER: Maria
SECURITY REVIEWER: Carlos
DB REVIEWER: Ana

Funções claras.


🧪 Testes

“Equipe é responsável pelos testes.”

Quem escreve?

Quem valida?

Quem dá sign-off?

Se ninguém sabe:

todo mundo pode acreditar que outra pessoa cobriu determinado cenário.


📚 Documentação

“Precisamos documentar.”

Todo mundo concorda.

Seis meses depois:

nenhum documento.

Por quê?

Porque tarefas coletivas abstratas não executam a si mesmas.

OWNER: João
DUE: sexta

A mágica administrativa.


🧠 Shared Responsibility precisa de fronteiras claras

Cloud popularizou expressão:

shared responsibility.

Importante.

Mas responsabilidade compartilhada não significa responsabilidade ambígua.

Precisamos saber:

provedor faz X.

cliente faz Y.

integração faz Z.

Toda fronteira precisa estar explícita.


☁️ “Achei que a cloud fazia backup”

Clássico.

Serviço fornece mecanismo.

Cliente precisa configurar.

Cliente pensa:

provider faz.

Incidente.

Surpresa.

Shared Responsibility mal compreendida vira Diffusion of Responsibility contratual.


🧠 Psychological Ownership

Quando alguém diz:

“Esse serviço é meu.”

normalmente presta mais atenção.

Isso é ownership psicológico.

Organizações maduras desenvolvem isso sem criar feudos.

Você quer:

“Eu cuido.”

Não:

“Só eu mexo.”


🚧 Ownership não pode virar silo

Cuidado.

Combater Diffusion of Responsibility não significa criar:

“Esse problema é seu, me deixa fora.”

Owner coordena.

Especialistas colaboram.

Responsabilidade clara + conhecimento distribuído.

Essa é a meta.


👨‍💻 Dica Bellacosa para o COBOL iniciante

Você encontra problema.

Manda no grupo:

“Pessoal, achei algo estranho.”

Não pare aí.

Se ninguém responder:

follow-up.

“Maria, você é owner dessa rotina? Posso abrir incidente e acompanhar?”

Ou assuma temporariamente:

“Vou iniciar análise e preciso de alguém de Db2.”

Não deixe descoberta importante evaporar em chat.


📢 Speak Up + Take Ownership

No Authority Gradient aprendemos a falar.

Agora precisamos aprender o próximo passo:

“Eu vi.”

não basta.

Talvez seja necessário:

“Eu assumo até transferir formalmente.”

Essa é uma poderosa mentalidade operacional.


🧠 Mas cuidado com heroísmo

Não queremos que uma pessoa assuma tudo.

Isso nos leva ao problema de heróis.

Owner não significa:

executar 27 tarefas.

Significa garantir que 27 tarefas possuam donos.

Essa diferença protege pessoas e sistemas.


🦸 Incident Commander não é Superman

Ele não resolve tudo.

Ele impede:

coisas esquecidas;

duplicação;

contradição;

responsabilidade órfã.

Orquestra.

Como JES para humanos.


😄 JES humano

Agora temos talvez um conceito digno do Bellacosa Mainframe:

Incident Commander é o JES da War Room.

Jobs chegam.

Prioridades.

Owners.

Estados.

Dependências.

O JES não executa o COBOL.

Coordena processamento.

Incident Commander também.

Há um Easter Egg mainframeiro que merecia existir.


🔄 Handoff de turno

Diffusion of Responsibility fica especialmente perigosa em mudança de turno.

Turno A:

turno B continuará.

Turno B:

achei que A tivesse encerrado.

Portanto handover precisa ser formal.


📋 Handover mínimo

INCIDENT:
INC-1234

CURRENT OWNER:
Ana

CURRENT STATE:
Queue stabilized, root cause open.

OPEN ACTIONS:
Carlos → consumer logs
Maria → reconciliation

NEXT DECISION:
10:30

RISKS:
Backlog remains.

Agora turno seguinte entra com contexto.


🕰️ Temporal Diffusion of Responsibility

Existe até uma versão temporal interessante:

“Amanhã resolvemos.”

Quem é amanhã?

Pessoas mudam.

Prioridades mudam.

Se tarefa futura não possui owner e deadline:

pode nunca existir.


🗃️ Backlog é cemitério de responsabilidades?

Pode ser.

Ações de post-mortem:

Improve monitoring.
Review process.
Update documentation.

Quem?

Quando?

Sem owner:

são desejos.

Não ações.


🔁 Melhoria contínua exige owner

Todo action item deveria ter:

ACTION
OWNER
DATE
SUCCESS CRITERIA
EVIDENCE

Caso contrário:

post-mortem produz PowerPoint.

Não melhoria.


🧠 Accountability sem blame

Precisamos distinguir.

Accountability:

responsabilidade clara pelo acompanhamento.

Blame:

busca simplista de culpado.

Você pode ter cultura blameless e ownership forte.

Aliás, deveria.

Blameless não significa:

ninguém é responsável.

Significa:

responsabilidade serve para coordenar e aprender, não para simplificar causas sistêmicas.


🧀 A fatia “ownership”

Vamos adicionar ao Swiss Cheese:

FATIA:
CLEAR OWNERSHIP

Buracos:

responsável desconhecido;

handoff incompleto;

alerta genérico;

on-call desatualizado;

equipe errada;

escalation inexistente.

Agora podemos fortalecer essa barreira.


🔍 Métricas interessantes

Meça:

alertas sem ACK;

tickets sem owner;

tempo até ownership;

handoffs falhos;

ações vencidas;

incidentes sem Incident Commander;

vulnerabilidades órfãs.

São indicadores organizacionais.


⏱️ Time to Ownership

Todo mundo mede:

MTTD — Mean Time to Detect.

MTTR — Mean Time to Restore.

Talvez devêssemos observar:

Time to Ownership

Quanto tempo entre:

problema detectado;

alguém claramente assumir?

Esse intervalo pode ser crítico.


📊 Exemplo

09:01 Alert
09:23 Owner assigned

22 minutos.

Talvez investigação técnica tenha durado apenas 10.

Então metade do incidente foi:

ninguém assumindo.

Descoberta valiosa.


🎯 Pergunta pós-incidente

Não pergunte apenas:

“Quando detectamos?”

Pergunte:

“Quando alguém assumiu responsabilidade explícita?”

Às vezes as respostas são muito diferentes.


🔬 RCA organizacional

Timeline:

09:01 alert generated
09:02 sent to distribution list
09:05 seen by operations
09:07 seen by application
09:12 second alert
09:19 user impact
09:22 someone asks who is checking
09:25 owner assigned

Root cause técnico:

consumer failed.

Contributing factor:

22 minutos sem owner.

Isso produz ação concreta:

melhorar roteamento e ownership.


🧠 Hindsight Bias retorna

Depois:

— Como ninguém fez nada?

Cuidado.

Talvez cada pessoa racionalmente acreditasse que outra era responsável.

Não basta dizer:

“Todos deveriam agir.”

Isso perpetua ambiguidade.

Melhor:

“Nosso design de ownership permitiu que todos acreditassem que outro agiria.”

Agora podemos corrigir.


🌀 Drift Into Failure retorna

Talvez antigamente houvesse um operador claramente responsável.

Depois reorganizações.

Outsourcing.

Novo fornecedor.

Cloud.

Novos times.

Responsabilidade ficou fragmentada.

Não houve decisão:

“Vamos perder ownership.”

A organização derivou.

Lembra?

Nossos monstros estão cada vez mais interligados.


🧬 Regeneração organizacional

Como regenerar após encontrar Diffusion of Responsibility?

Primeiro:

identifique serviços críticos.

Depois:

owner explícito.

On-call.

Escalation.

ACK.

Incident Commander.

Action board.

Handoffs formais.

Post-mortem actions com dono.

E principalmente:

ensine uma regra simples:

uma responsabilidade não foi transferida até que a próxima pessoa tenha aceitado.

Isso muda muita coisa.


📋 Checklist anti-Diffusion

Durante incidente:

[ ] Existe Incident Commander?

[ ] Existe owner técnico?

[ ] Cada ação possui uma pessoa?

[ ] Cada ação possui prazo?

[ ] Handoffs foram confirmados?

[ ] Alertas têm owner definido?

[ ] Existe escalation path?

[ ] FYI está separado de ACTION?

[ ] Alguém está registrando decisões?

[ ] Existe alguma tarefa que “todo mundo” deveria fazer?

[ ] Algum item está sem nome ao lado?

Se aparecer:

OWNER: ALL

talvez devêssemos conversar.


📓 Diário do Doctor

Se guardar apenas algumas ideias desta viagem, guarde estas:

Diffusion of Responsibility acontece quando várias pessoas presentes reduzem a sensação individual de responsabilidade para agir.

Informar não é atribuir responsabilidade.

Entregue não significa assumido.

Lido não significa tratado.

Todo incidente precisa de owner claro.

Toda ação precisa de pessoa e prazo.

Handoffs precisam de confirmação.

Broadcast amplo pode produzir espectadores.

Incident Commander reduz ambiguidade.

Responsabilidade clara é compatível com cultura blameless.

Silos tornam incidentes ponta a ponta especialmente vulneráveis.

E principalmente:

Se a resposta para “quem está cuidando?” é “alguém”, existe uma chance perigosamente grande de que a resposta real seja “ninguém”.


🕰️ De volta às 09:01

A TARDIS retorna.

VWORP.

O alerta acaba de chegar:

PAYMENT QUEUE DEPTH > THRESHOLD

Vinte e três pessoas recebem.

Nosso programador olha.

Desta vez não pensa:

“Alguém vai olhar.”

Escreve:

“Estou assumindo triagem inicial do alerta de PAYMENT QUEUE. Preciso de suporte MQ.”

Carlos responde:

“Assumo MQ.”

Maria:

“Fico com consumer.”

Incident Commander entra:

OWNER: JOÃO

MQ: CARLOS

CONSUMER: MARIA

NEXT UPDATE: 09:10

09:05.

Consumer parado.

09:07.

Causa identificada.

09:09.

Serviço restaurado.

Fila começa a cair.

Nenhum cliente percebe.

O gerente pergunta:

— Foi grave?

Nosso programador responde:

— Poderia ter sido.

— O que mudou?

Ele olha para o quadro.

Cada atividade possui um nome.

— Dessa vez ninguém ficou esperando “alguém”.

O Doctor sorri.

— Excelente.

— Isso foi tudo?

— Quase.

— O que falta?

O Doctor aponta para o post-mortem.

— Descobrir por que vocês precisaram de sorte nas vezes anteriores.

Naturalmente.


🥚 Easter Egg final

Horas depois aparece um dataset:

BELLACOSA.INCIDENTS(WHO)

Dentro:

       IF OWNER = SPACES
           MOVE 'DANGER' TO SYSTEM-STATUS
       END-IF.

       IF OWNER = 'EVERYONE'
           MOVE 'NO-ONE' TO EFFECTIVE-OWNER
       END-IF.

       IF RESPONSIBILITY-TRANSFERRED
           PERFORM WAIT-FOR-ACK
       END-IF.

Comentário:

* SOMEBODY IS NOT A VALID USERID.

Nosso programador ri.

Outra linha:

* ASSIGN THE COMPANION.

Depois:

* BAD WOLF ACKNOWLEDGED.

E finalmente:

* DON'T ASK WHO COULD DO IT.
* ASK WHO WILL.

Ele fecha o membro.

Pouco depois chega um email:

“Pessoal, precisamos atualizar a documentação até sexta. Alguém consegue cuidar?”

Nosso programador olha.

Quarenta destinatários.

Sorri.

Responde:

“Posso assumir. Entrego uma primeira versão quinta às 15h. Carlos, consegue revisar depois?”

Carlos:

“Confirmado.”

Nada explodiu.

Nenhuma fila cresceu.

Nenhum pagamento falhou.

Mas alguma coisa mudou.

A responsabilidade deixou de ser uma nuvem.

Virou nome.

Prazo.

Confirmação.

Em algum lugar do espaço-tempo:

VWORP.

VWORP.

VWORP.

Porque o Doctor talvez tenha finalmente descoberto o maior inimigo de “alguém”:

uma pessoa claramente responsável.

☕🌀

Next stop: Normalcy Bias — quando o desastre já começou, os sinais estão diante de nós, mas nosso cérebro continua insistindo que provavelmente tudo voltará ao normal sozinho.

 

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