Pular para o conteúdo

O Teste de Reversibilidade

Também em 28 idiomas

English · Español · 日本語 · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A freshly poured concrete slab sets around four anchor bolts on a steel template and upright conduits, bordered by timber formwork, with a wheelbarrow on the ground beyond.
Imagem gerada com IA

Módulo 3 de 7 do capítulo Pensar como um arquiteto de dados, o primeiro capítulo do curso Data Architect. Cada módulo se sustenta sozinho. Anterior: O modelo de dados é o esqueleto · Próximo: Arquitetura é a arte dos trade-offs

A pergunta que este módulo responde: Como distinguir uma decisão de arquitetura de uma decisão comum?

Arquitetos tomam muitas decisões.

Mas nem toda decisão é uma decisão de arquitetura.

Essa é uma distinção importante. Se tratarmos toda decisão como arquitetura, passaremos todo o nosso tempo debatendo coisas relativamente fáceis de mudar. Se não reconhecermos as decisões que realmente são de arquitetura, podemos tomar hoje uma decisão de cinco minutos que leva cinco anos para desfazer.

Então como percebemos a diferença?

Gosto de fazer uma pergunta simples:

Quão difícil será reverter esta decisão depois?

Eu chamo isso de Teste de Reversibilidade.

Quanto mais difícil for reverter algo, e quanto mais outras coisas dependerem dele, mais atenção de arquitetura ele merece.

Vamos começar com algo simples.

Chamamos um campo de Categoria do cliente. Seis meses depois, o negócio decide que todo mundo na verdade chama aquilo de Segmento do cliente. Mudamos o rótulo. Pode haver documentação para atualizar e um pouco de treinamento, mas não é um grande evento de arquitetura. Teremos de conviver com o nome de API original, porém, porque mudá-lo tem consequências muito maiores. Então isso pode significar apenas lidar com uma mudança de rótulo, e com a confusão que ela pode trazer.

Tomamos uma decisão. Mudamos de ideia. Seguimos em frente.

Agora compare isso com outra decisão.

Estamos criando um identificador para clientes. Decidimos o que ele significa, que formato usa e qual sistema o cria. Depois o publicamos.

O Salesforce o usa. O data warehouse o usa. A plataforma de integração o usa. O portal do cliente o usa. Cinco outras aplicações começam a armazená-lo. Relatórios e pipelines de dados o usam. Talvez os clientes acabem vendo-o.

Três anos depois, alguém diz:

Provavelmente não devíamos ter projetado o identificador desse jeito.

Essa é uma conversa muito diferente.

A diferença não é que uma decisão seja mais técnica que a outra.

A diferença é a reversibilidade.

Veja como isso pode acontecer. Digamos que o negócio venha montando suas chaves com parte do nome do cliente mais um número. Funciona por anos, porque ninguém nunca precisou mudar um nome. Então, um ano depois ou mais, um nome muda, e de repente as chaves não batem com o padrão que o resto dos dados espera. Esse é um dos motivos pelos quais chaves não devem carregar nenhum significado intrínseco.

Uma decisão de arquitetura tende a acumular coisas ao redor dela. Eu penso nisso como gravidade.

Escolha um modelo de objetos, e a automação é construída em torno dele.

Escolha uma chave, e outros sistemas começam a armazená-la.

Escolha onde os dados mestres vivem, e as integrações começam a fluir na direção deles e a partir deles.

Escolha um modelo de compartilhamento, e os processos de negócio começam a depender de quem pode ver o quê.

Escolha um padrão de integração, e os sistemas começam a depender do seu tempo e do seu comportamento.

Quanto mais essas decisões existem, mais gravidade desenvolvem. Em algum momento, mudar a decisão original significa mudar tudo o que se acumulou em torno dela.

A IA também sente essa gravidade. Uma ferramenta de IA trabalha a partir do que já está no sistema: quando um elemento-chave de design está lá, toda interação de IA depois disso trata esse elemento como fato e continua construindo sobre ele, e construindo, e construindo. A decisão ecoa adiante por muitas outras decisões, e nenhum humano jamais volta para revisitar a original. Cada geração aumenta a gravidade.

É por isso que o modelo de dados ser “o esqueleto” importa. Não somos cuidadosos porque mudar é ruim. Somos cuidadosos porque as dependências tornam a mudança cara.

Quando olho para uma decisão de design, faço duas perguntas:

Quão difícil é reverter isso?

Quanto vai depender disso?

Elas se relacionam, mas não são idênticas. Algo pode ser tecnicamente fácil de mudar e ter centenas de consumidores. As pessoas costumavam renomear objetos padrão para ficar mais claro, Conta como “Cliente”, por exemplo. Fácil de fazer. Depois outro sistema quis usar Contas para Parceiros, e não conseguiu. Outra coisa pode ter poucos consumidores e precisar de uma migração enorme para mudar, como o nome de API de um objeto referenciado em muitos lugares internamente. Ninguém de fora o vê, mas um nome errado continua confundindo a equipe. Os dois casos merecem atenção.

Pense em algumas decisões de dados comuns:

  • Qual objeto do Salesforce representa este conceito de negócio?
  • Qual é o identificador único?
  • Qual sistema é o sistema de registro?
  • Estes dados são copiados para o Salesforce ou acessados em outro lugar?
  • Isto é um objeto ou vários objetos relacionados?
  • Quem é dono dos dados, e por quanto tempo os guardamos?
  • Quais são nossos limites de acesso padrão?
  • Como esses dados se movem entre sistemas?

Isso é muito diferente de decidir onde um campo aparece numa página Lightning. O design de página também importa. O custo de errar é diferente.

O Teste de Reversibilidade Uma grade dois por dois. Na horizontal: quão difícil é reverter uma decisão, de fácil a difícil. Na vertical: quanto vai depender dela, de pouco a muito. Embaixo à esquerda, “Apenas decida”: o rótulo de um campo e um layout de página. Em cima à esquerda, “Fácil de mudar, muito depende disso”: coordene a mudança. Embaixo à direita, “Difícil de mudar, pouco depende disso”: planeje a migração. Em cima à direita, em destaque, “Arquitetural”: o identificador único, o sistema de registro e o modelo de objetos; vá devagar e registre o porquê. FÁCIL DE MUDAR, MUITO DEPENDE DISSO coordene a mudança Renomear Conta para “Cliente” depois outro sistema precisa de Contas para Parceiros ARQUITETURAL vá devagar e registre o porquê O identificador único O sistema de registro O modelo de objetos APENAS DECIDA mude depois, se precisar O rótulo de um campo Um layout de página DIFÍCIL DE MUDAR, POUCO DEPENDE DISSO planeje a migração O nome de API de um objeto interno ninguém o vê, mas ele confunde a equipe QUÃO DIFÍCIL É REVERTER Fácil Difícil QUANTO VAI DEPENDER DISSO Pouco Muito Quão difícil é reverter isso? Quanto vai depender disso? Ambos altos: uma decisão de arquitetura. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Outra forma de pensar a reversibilidade é o raio de impacto: se eu mudar esta decisão, o que mais se move?

Suponha que algo que modelamos como campo precise virar um objeto filho. Isso não é só uma mudança de esquema. O que acontece com os dados existentes? Com os relatórios, as integrações que esperam aquele campo, o Apex e os Flows que o referenciam, a segurança, as análises, um agente de IA cujas ações dependem da estrutura original?

Quanto maior o raio, mais cuidado devemos ter ao tomar a decisão original.

É também por isso que arquitetos precisam olhar além da sua própria parte do sistema. De dentro do Salesforce, uma mudança pode parecer fácil. Da perspectiva da empresa, ela pode afetar outros doze sistemas.

Um arquiteto de dados pensa em dois níveis.

Dentro do Salesforce, decidimos objetos, relacionamentos, chaves, volume, acesso, automação e como os dados se comportam na plataforma.

Em toda a empresa, fazemos perguntas mais amplas. Onde o Cliente realmente vive? Quem é dono do Produto? Qual sistema cria um Pedido? Qual é o nosso identificador oficial? Quais informações são copiadas entre sistemas, e quais ficam onde estão?

Os dois níveis precisam se conectar. Já vi implementações Salesforce em que o modelo interno fazia todo o sentido sozinho, mas não se encaixava na empresa ao redor. Isso não basta. As estruturas do Salesforce precisam ser representadas no nível da empresa, e as decisões da empresa precisam voltar para o Salesforce.

Arquitetura é uma via de mão dupla.

A arquitetura é uma via de mão dupla Dois níveis, um acima do outro. Na empresa como um todo: onde fica o Cliente, quem é dono do Produto, qual sistema cria um Pedido, os sistemas de registro, os identificadores oficiais e o que é copiado versus o que fica onde está. Dentro da org do Salesforce: objetos e relacionamentos, chaves, volume, acesso, automação e como os dados se comportam na plataforma. Uma seta aponta para baixo, “as decisões descem”; outra aponta para cima, “as estruturas sobem”. A arquitetura é uma via de mão dupla. as decisões descem as estruturas sobem Na empresa como um todo Onde fica o Cliente? Quem é dono do Produto? Qual sistema cria um Pedido? Sistemas de registro Os identificadores oficiais O que é copiado e o que fica onde está Dentro da org do Salesforce Objetos e relacionamentos Chaves Volume Acesso Automação Como os dados se comportam na plataforma A arquitetura é uma via de mão dupla. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Um perigo em tecnologia é que as decisões mais fáceis de implementar podem parecer as mais fáceis de tomar. Não são a mesma coisa.

Criar mais um objeto personalizado é fácil. Criar mais um campo é fácil. Conectar mais uma API está ficando mais fácil, e a IA torna tudo isso ainda mais fácil.

Mas a facilidade de implementação não nos diz quase nada sobre o custo da decisão de arquitetura.

Antes de uma decisão difícil de reverter, desacelere o suficiente para perguntar: Que problema estamos realmente resolvendo? Que alternativas consideramos? O que estamos assumindo? O que acontece quando o volume cresce, e quando o negócio muda? O que mais vai depender disso? O que acontece se estivermos errados?

Não precisamos de seis meses de revisão toda vez que criamos um objeto. Precisamos, sim, de reflexão proporcional ao custo de errar. Se é um objeto para um único departamento ou subsistema, você pode andar mais rápido. Se são dados de referência, um objeto central de cliente ou algo usado entre sistemas, tire um tempo para pensar bem.

Há outro problema com decisões importantes: as pessoas esquecem por que elas foram tomadas.

Alguém olha para uma arquitetura três anos depois e pergunta: “Por que alguém projetaria isso desse jeito?” Às vezes a resposta é que era um design ruim. Acontece. Mas às vezes havia um motivo muito bom: uma limitação da plataforma que não existe mais, uma exigência regulatória, outro sistema que não suportava a abordagem preferida, um trade-off aceito conscientemente para cumprir um prazo.

Se registramos apenas o que decidimos e não por quê, o próximo arquiteto não tem como saber.

Para decisões significativas, registre. Não precisa ser um documento de 50 páginas. Um registro de decisão útil pode ser bem pequeno:

Contexto: Que problema estamos resolvendo?

Opções: Que alternativas realistas consideramos?

Decisão: O que escolhemos?

Consequências: O que ganhamos, e do que estamos abrindo mão?

Responsável: Quem responde por esta decisão?

Revisão: Que motivo ou data deve nos fazer revisitá-la?

O valor não está no documento. O valor está em preservar o raciocínio.

E quando uma decisão muda, não apague a original. Substitua-a. A decisão que estava certa em 2027 pode não estar certa em 2030, porque os volumes, o negócio, o Salesforce e o nosso entendimento mudam. O que quero guardar é a história: este era o contexto, esta foi a decisão e o porquê, isto mudou, e isto é o que estamos decidindo agora. Isso vale muito mais do que fingir que sempre soubemos a resposta.

O registro de decisão Dois cartões. O modelo de registro de decisão faz seis perguntas: contexto, que problema estamos resolvendo; opções, que alternativas realistas consideramos; decisão, o que escolhemos; consequências, o que ganhamos e do que estamos abrindo mão; responsável, quem responde pela decisão; revisão, que motivo ou data deve nos fazer revisitá-la. Ao lado, o mesmo cartão preenchido para a história das aprovações do módulo 1: cada aprovação precisa de um aprovador e uma data; as opções eram mais campos na Oportunidade ou um objeto filho Aprovação; a decisão foi um objeto filho Aprovação; qualquer número de aprovações, ao custo de mais um objeto para cruzar nos relatórios; responsável, o arquiteto de dados do projeto; revisitado se as aprovações forem para outro sistema. O registro de decisão seis perguntas, uma página CONTEXTO Que problema estamos resolvendo? OPÇÕES Que alternativas realistas consideramos? DECISÃO O que escolhemos? CONSEQUÊNCIAS O que ganhamos, e do que estamos abrindo mão? RESPONSÁVEL Quem responde por esta decisão? REVISÃO Que motivo ou data deve nos fazer revisitá-la? Preenchido: as aprovações do módulo 1 CONTEXTO Cada aprovação precisa de um aprovador e uma data OPÇÕES Campos Aprovador 2 e 3 na Oportunidade Um objeto filho Aprovação DECISÃO Um objeto filho Aprovação CONSEQUÊNCIAS Qualquer número de aprovações, cada uma com sua data Mais um objeto para cruzar nos relatórios RESPONSÁVEL O arquiteto de dados do projeto REVISÃO Se as aprovações forem para outro sistema Quando uma decisão muda, não a apague. Substitua-a e mantenha a história. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Além do exame: a IA encurta o tempo entre a decisão e a dependência. Uma ferramenta de IA pode propor um modelo de dados em segundos, e depois criar os objetos, a automação, o código de integração e a interface de usuário sobre ele. Uma decisão questionável costumava levar meses de desenvolvimento até que muita coisa dependesse dela; agora as dependências chegam quase de imediato. Então revise as decisões por baixo do resultado, não só o resultado. A IA pode ajudar: pode listar opções, desafiar suposições e rascunhar o registro de decisão. Mas o arquiteto continua decidindo, e quanto mais difícil for reverter a decisão, mais esse julgamento humano importa.

Uma das habilidades que quero que você desenvolva é saber onde gastar sua atenção.

Não transforme toda escolha de configuração em uma cúpula de arquitetura.

Mas não tome casualmente uma decisão com a qual a organização vai conviver pela próxima década.

Pergunte:

Quão difícil será reverter isso?

Quanto vai depender disso?

Se as respostas forem muito difícil e muita coisa, você provavelmente encontrou uma decisão de arquitetura.

Duas decisões, dois níveis de atenção Duas decisões lado a lado, cada uma com as mesmas duas perguntas. Renomear o rótulo de um campo de Categoria do cliente para Segmento do cliente: fácil de reverter; um pouco de documentação e treinamento depende disso; então decida e siga em frente. Escolher entre mestre-detalhes e pesquisa em um objeto grande que já tem dados: difícil de reverter, porque todo registro existente precisa caber na nova regra, e o compartilhamento e as totalizações mudam junto; dependem disso quem pode ver cada registro, o que é excluído com o pai, resumos de totalização, relatórios, automação e cada integração que carrega os dados; então vá devagar, explore as opções e registre o porquê. Renomear o rótulo de um campo Categoria do cliente vira Segmento do cliente QUÃO DIFÍCIL É REVERTER? Fácil: mude o rótulo de novo QUANTO DEPENDE DISSO? Um pouco de documentação Um pouco de treinamento ENTÃO Decida e siga em frente Mestre-detalhes ou pesquisa? em um objeto grande que já tem dados QUÃO DIFÍCIL É REVERTER? Difícil: todo registro existente precisa caber na nova regra O compartilhamento e as totalizações mudam junto QUANTO DEPENDE DISSO? Quem pode ver cada registro O que é excluído com o pai Resumos de totalização, relatórios, automação Cada integração que carrega os dados ENTÃO Vá devagar, explore as opções Registre o porquê Não transforme cada escolha em uma cúpula de arquitetura. Não tome por descuido uma decisão com a qual vai conviver por uma década. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Desacelere. Entenda o requisito. Explore as alternativas. Torne os trade-offs visíveis. Tome a decisão. E registre o porquê.

O objetivo da arquitetura não é tomar decisões que nunca possam mudar.

O objetivo é reconhecer as decisões em que mudar de ideia vai sair caro.

  • Quais decisões são de arquitetura: difíceis de reverter, com muita coisa dependendo delas.
  • Quanta atenção cada decisão recebe, na proporção do custo de errar.
  • Quais decisões são registradas, com contexto, opções, consequências, responsável e ponto de revisão.
  • Como as decisões do Salesforce se alinham com as da empresa.
  • Object Relationships Overview (opens in a new tab), Ajuda do Salesforce (em inglês, consultado em 2026-10-09; reconsultado em 2026-10-12): em um relacionamento mestre-detalhes, o acesso e a propriedade do detalhe seguem o mestre, e excluir um mestre exclui seus detalhes.
  • Considerations for Object Relationships (opens in a new tab), Ajuda do Salesforce (em inglês, consultado em 2026-10-09; reconsultado em 2026-10-12): um relacionamento de pesquisa só pode ser convertido em mestre-detalhes quando todo registro tem um valor nele; a conversão muda o modelo de compartilhamento (para Controlado pelo pai), e o tipo de relacionamento decide quais tipos de relatório padrão ficam disponíveis.
  • Roll-Up Summary Field (opens in a new tab), Ajuda do Salesforce (em inglês, consultado em 2026-10-09; reconsultado em 2026-10-12): campos de resumo de totalização só existem em relacionamentos mestre-detalhes, e precisam ser excluídos antes que um mestre-detalhes possa virar um relacionamento de pesquisa.