Em 24 de setembro o fundador da Mutagex decidiu uma coisa fácil de dizer e difícil de manter: nenhum preço da Mutagex vai para lugar público. Não no site, não numa página de preços, não num post do blog, não num criativo de anúncio. Todo valor é dito dentro de uma conversa, depois de entender o caso. A página de preços que estava em construção foi apagada no mesmo dia.

A regra parece óbvia até alguém perguntar como ela se mantém verdadeira: como garantir que nenhum preço escapa, em nenhuma página, sem depender de alguém lembrar disso toda vez que escrever um texto novo?

Por que um preço publicado vira âncora antes de existir conversa

Em 1987, Gregory Northcraft e Margaret Neale publicaram um estudo que ainda é citado como referência sobre o assunto. Levaram 47 corretores de imóveis profissionais e 54 estudantes para visitar o mesmo imóvel, com a mesma planta e as mesmas fotos. A única diferença entre os grupos era o preço de tabela anexado ao material: uns viam um valor mais baixo, outros um valor mais alto. O resultado: quem viu o preço mais alto chutou um valor final bem maior do que quem viu o preço mais baixo, e isso valeu tanto para os estudantes quanto para os corretores com anos de profissão, que negaram estar influenciados. O número que a pessoa vê primeiro muda a conta que ela faz depois, mesmo quando essa pessoa é especialista no assunto e acha que está julgando sozinha.

É esse efeito que um preço publicado dispara antes de qualquer conversa começar. Quem chega pelo anúncio lê o número, compara com o que já imaginava, e decide por conta própria se vale, sem nunca contar qual é o problema real dele. Jonathan Stark, consultor que escreve há anos sobre cobrar por valor em vez de por hora, defende exatamente essa lógica: cobrança por valor depende de entender o escopo antes do número aparecer, então um preço fixo publicado quebra o próprio método, porque ele ancora a conversa num valor que ainda não considerou o caso de quem está perguntando.

O checador que vivia só num lugar

Decidir a regra foi o fácil. Garantir que ela vale em todo canto do site é outra categoria de problema, e é aqui que vale contar o que aconteceu depois.

O site da Mutagex nasce de markdown e de componentes escritos em código, que passam por uma esteira de build antes de qualquer página ir ao ar. Para fazer a regra de preço valer de verdade, essa esteira ganhou uma função que lê o texto de cada post do blog e derruba o build se encontrar um valor em reais ao lado do nome da empresa, de um verbo na primeira pessoa como "cobramos" ou "trabalhamos", ou da palavra "piso". Até 15 de outubro, esse filtro só olhava palavra e número isolados, e deixou passar frases que juntavam o verbo da casa com um valor em reais do jeito que o filtro não esperava. O filtro foi ajustado para pegar esse padrão também.

No dia seguinte, 16 de outubro, apareceu a pergunta que devia ter vindo primeiro: essa mesma checagem rodava em qualquer outra página do site, fora do blog? A resposta era não. As páginas de serviço, como as de criação de site por cidade, eram escritas e publicadas por um caminho de código diferente, que nunca chamava a função que vivia dentro do módulo do blog. A regra valia perfeitamente no lugar onde alguém pensou em testá-la, e não existia em nenhum outro lugar.

A correção não foi escrever a mesma checagem de novo no outro lugar. Foi tirar a função de dentro do módulo do blog e colocar num módulo próprio, sem nada específico de blog ou de página de serviço, para que os dois caminhos de build chamassem a mesma rotina. É exatamente o que o guia de boas práticas da OWASP recomenda para validação de entrada em qualquer aplicação: uma rotina central, chamada de todo lugar que recebe dado, em vez de uma checagem copiada e colada onde alguém lembrou de colar. A organização mantém esse guia porque viu o mesmo erro se repetir em projeto depois de projeto: a regra que vale só onde alguém pensou em testá-la não é uma regra, é um acidente que ainda não aconteceu.

O que fica, mesmo sem código

Quem não publica preço porque decidiu vender sob medida está certo em não publicar. O risco não está na decisão, está em tratá-la como resolvida assim que foi dita em voz alta. Uma regra de negócio sem alguma forma de checagem que rode sozinha, em todo lugar onde o texto nasce, depende da memória de quem escreve naquele dia específico, e memória de quem escreve é exatamente o tipo de coisa que falha sem avisar. Vale para preço, vale para qualquer outra regra que a empresa jura que nunca vai quebrar: a pergunta certa não é "a gente decidiu isso", é "o que, exatamente, impede isso de escapar no lugar que ninguém olhou primeiro".