A maioria das ideias que você tem certeza que vão funcionar não movem a métrica — e você só descobre medindo

Apostila completa de Experimentação de Produto, Feature Flags & A/B Testing

Experimentação online controlada é como empresas de produto sabem se uma mudança causou uma melhora — não se correlacionou por acaso. Esta apostila cobre a cultura e os tipos de experimento, feature flags (separar deploy de release), a anatomia de um A/B test, a estatística necessária sem a dor, como rodar o experimento certo, a hierarquia de métricas, os desenhos além do A/B simples (redes, holdouts, bandits), a plataforma de experimentação, e as armadilhas e a ética.

10 módulosfeature flags · targetinghipótese · métrica primáriapoder · MDE · SRMNorth Star · guardrailsExercícios com gabarito
MÓDULO 01 · BÁSICO

Por que experimentar

Objetivo: por que a intuição erra, causalidade vs correlação, quando a cultura de experimentação faz sentido (e quando não), e os tipos de experimento.

1.1 A intuição erra — muito

1.2 Causalidade vs correlação

1.3 Quando a cultura faz sentido — e quando não

1.4 Tipos de experimento

TipoQuando
A/Bduas variantes (controle + tratamento); o pão com manteiga
A/B/nvárias variantes de uma mudança; cuidado com comparações múltiplas
Multivariado (MVT)testar combinações de vários fatores; exige muito tráfego
Holdoutum grupo não recebe um conjunto de features por um longo período — mede o efeito acumulado
Switchbackalternar tratamento/controle no tempo (todo o sistema) — para marketplaces/logística onde não dá para randomizar por usuário
Quasi-experimento (diff-in-diff, regression discontinuity)quando não dá para randomizar — inferência causal com mais suposições
💡 A regra que organiza a apostila

Um experimento responde uma pergunta: esta mudança específica causa uma melhora na métrica primária, sem piorar os guardrails? Tudo o mais — a hipótese, a randomização, o tamanho de amostra, a análise honesta — existe para que a resposta seja confiável. Experimento mal feito é pior que nenhum: dá falsa confiança.

💼 Mercado de trabalho

Perguntas de abertura: "Por que A/B testing e não só analisar os dados?" (análise observacional confunde causa e correlação — viés de seleção; só a randomização isola a causa), "Quando uma empresa não deveria fazer A/B?" (pouco tráfego → sem poder; sem disciplina/instrumentação; pré-PMF), "O que é o HiPPO?", "Cite tipos de experimento além do A/B" (A/B/n, MVT, holdout, switchback, quasi-experimento).

✏️ Exercício 1 — Experimentar ou não

Para cada caso, diga se um A/B test é a ferramenta certa (e por quê): (a) uma startup com 200 usuários ativos/dia quer testar um novo onboarding; (b) um e-commerce grande quer saber se um novo layout de página de produto aumenta a conversão; (c) uma empresa quer redesenhar toda a marca; (d) um marketplace quer testar uma nova política de preços que afeta compradores e vendedores; (e) medir o impacto de longo prazo de todas as features lançadas no ano.

Gabarito (uma boa resposta): (a) não A/B — 200/dia não dá poder para detectar efeitos realistas em tempo razoável; usar pesquisa qualitativa, entrevistas, e decidir. (b) A/B clássico — tráfego alto, mudança incremental, métrica clara (conversão), unidade = usuário. (c) não A/B — rebrand é uma decisão estratégica holística, o efeito é de longo prazo e difuso, e você não vai "reverter a marca" pelo p-valor; usar pesquisa, julgamento, e talvez medir brand lift separadamente. (d) switchback ou cluster randomization — randomizar por usuário causa interferência (o preço de um afeta o mercado do outro); alternar no tempo ou por região. (e) holdout de longo prazo — um grupo que não recebe o conjunto de features por meses, para medir o efeito acumulado (que costuma ser menor que a soma dos ganhos individuais reportados).

MÓDULO 02 · BÁSICO

Feature flags

Objetivo: o que são, separar deploy de release, os tipos, o targeting, a avaliação cliente vs servidor, e as ferramentas.

2.1 A ideia: separar deploy de release

Um feature flag (ou toggle) é um ponto de decisão no código: if (flags.isEnabled('novo-checkout', user)) { ... }. Você deploya o código com o novo caminho desligado, e depois libera (release) mudando a flag — para 1%, para um segmento, para todos — sem novo deploy. E pode desligar na hora se der problema (kill switch).

2.2 Os tipos

TipoVidaUso
Release / kill switchcurta (semanas)rollout gradual de uma feature nova; desligar em incidente
Experimenta duração do testeatribuir variantes de um A/B
Ops / operationallongaligar/desligar comportamento em produção (modo degradado, rate limits, circuit breakers)
Permission / entitlementpermanentefeatures por plano, por role, por cliente (não é bem "flag", é autorização)

Confundir os tipos causa flag debt (Módulo 8): flags de release que nunca são removidas viram if mortos que ninguém entende.

2.3 Targeting

2.4 Cliente vs servidor

2.5 Ferramentas

💼 Mercado de trabalho

Perguntas: "O que um feature flag resolve?" (separa deploy de release — libera/desliga sem novo deploy; rollout gradual; kill switch), "Tipos de flag?" (release, experiment, ops, permission — com vidas diferentes), "Por que a avaliação precisa ser determinística?" (o mesmo usuário vê a mesma coisa entre sessões/dispositivos — hash do id + flag), "Cliente ou servidor?" (crítico/não-exposto no servidor; rápido/offline no cliente; edge para evitar flicker).

✏️ Exercício 2 — Rollout de um checkout novo

Você vai lançar um novo fluxo de checkout. Descreva o plano de rollout com feature flags: os estágios, o targeting, os guardrails para pausar, e o que acontece com a flag no fim.

Gabarito (uma boa resposta): Estágio 0: deploy com o código do novo checkout atrás de uma flag desligada; allowlist só para o time (dogfooding). Estágio 1: 1% dos usuários (aleatório, determinístico por user id), monitorando de perto conversão, erros, latência, tickets de suporte. Estágio 2: 5% → 25% → 50%, cada salto após ~1–2 dias sem regressão nos guardrails. Possivelmente já rodando como experiment (controle = checkout antigo) para medir o efeito na conversão, não só "não quebrou". Estágio 3: 100%. Guardrails para pausar/reverter (kill switch): taxa de erro do checkout acima de X, queda de conversão além do esperado, pico de tickets, latência p95 acima do limite. Fim: quando 100% estável por N dias, remover a flag e o código do caminho antigo (não deixar o if apodrecer — flag debt).

MÓDULO 03 · BÁSICO

Anatomia de um A/B test

Objetivo: hipótese, métrica primária, guardrails, unidade de randomização, assignment determinístico, e a diferença entre exposição e atribuição.

3.1 A hipótese

Escreva antes: "Porque [insight], acreditamos que [mudança] vai [efeito] em [métrica primária] para [segmento], sem prejudicar [guardrails]." Se você não consegue completar essa frase, o experimento não está pronto.

3.2 A métrica primária — uma só

3.3 Guardrails

3.4 Unidade de randomização

3.5 Assignment determinístico

bucket = hash(unit_id + "|" + experiment_key) mod 10000 / 10000   // em [0,1)
if bucket < 0.5  → controle
else             → tratamento

3.6 Exposição vs atribuição

💼 Mercado de trabalho

Perguntas: "O que faz um A/B test bem formado?" (hipótese escrita, uma métrica primária, guardrails, unidade de randomização consistente, assignment determinístico e uniforme), "Por que só uma métrica primária?" (várias = escolher a que deu bem depois — p-hacking), "Randomizar por usuário ou sessão?" (usuário para consistência; sessão dá mais poder mas o usuário pode ver as duas), "Diferença entre exposição e atribuição?".

✏️ Exercício 3 — Formalize o experimento

O time quer "adicionar um selo de 'mais vendido' nos produtos populares para aumentar as vendas". Formalize: a hipótese, a métrica primária, 3 guardrails, a unidade de randomização, e o que conta como "exposição".

Gabarito (uma boa resposta): Hipótese: "Porque prova social reduz a incerteza na decisão, acreditamos que exibir um selo 'mais vendido' nos produtos do top 10% de vendas vai aumentar a taxa de conversão de visita→compra para visitantes da listagem, sem aumentar devoluções nem prejudicar a receita por pedido." Métrica primária: taxa de conversão (pedidos / usuários expostos) — ou receita por usuário exposto, se o mix de produtos pode mudar. Guardrails: taxa de devolução/reembolso; receita total por usuário (o selo pode canibalizar produtos de maior margem); latência da página; reclamações/tickets sobre "propaganda enganosa". Unidade: usuário (consistência — a pessoa não deve ver o selo aparecer e sumir). Exposição: o usuário viu uma listagem ou página de produto onde havia pelo menos um produto elegível ao selo (senão o tratamento não teve chance de agir); registrar esse evento.

MÓDULO 04 · INTERMEDIÁRIO

Estatística sem dor

Objetivo: variação amostral, o que o p-valor é e não é, poder, tamanho de amostra e MDE, frequentista vs bayesiano, e por que as plataformas usam CUPED e sequential.

4.1 O problema

Você mede uma diferença de 2% na conversão entre os grupos. Isso é o efeito real ou ruído (variação amostral — os dois grupos diferem um pouco por acaso)? A estatística responde "quão provável seria ver uma diferença desse tamanho se não houvesse efeito nenhum".

4.2 P-valor — o que não é

4.3 Intervalo de confiança

4.4 Poder, tamanho de amostra e MDE

4.5 Frequentista, bayesiano, sequential

4.6 Erros

💼 Mercado de trabalho

Perguntas: "O que é um p-valor?" (probabilidade de ver uma diferença tão grande assumindo nenhum efeito — não a probabilidade de a nula ser verdadeira nem o tamanho do efeito), "O que é MDE e poder?" (menor efeito detectável; probabilidade de detectar um efeito real — alvo 80%), "Como você calcula o tamanho de amostra?" (métrica base + MDE de interesse + α + poder → n por grupo → dias dado o tráfego), "Por que sequential testing?" (permite olhar continuamente sem inflar o erro).

✏️ Exercício 4 — Dá para rodar?

Sua conversão base é 4%. Você quer detectar uma melhora relativa de 5% (ou seja, de 4% para 4.2%). Você tem 10.000 usuários expostos por dia. Sem fazer a conta exata, raciocine: o experimento é viável? O que você poderia mudar se não for?

Gabarito (uma boa resposta): um efeito relativo de 5% sobre uma base de 4% (absoluto de 0.2 ponto) numa métrica binária ruidosa exige uma amostra grande — tipicamente na casa das centenas de milhares por grupo (a conta depende da variância, mas a ordem de grandeza é essa). Com 10k/dia (5k por grupo), isso seriam muitas semanas a meses — provavelmente inviável (o produto muda no meio, sazonalidade, custo de oportunidade). Opções: (a) mirar um efeito maior (só vale a pena testar mudanças com potencial de ≥ 5–10% relativo se o tráfego é modesto); (b) usar uma métrica menos ruidosa ou mais próxima (cliques no CTA em vez de conversão final); (c) CUPED / variance reduction se a plataforma oferece; (d) rodar como rollout monitorado (não A/B) e aceitar que não vai medir esse efeito pequeno; (e) agrupar várias melhorias num só experimento maior. Não rode um teste sem poder e depois chame o "flat" de "não funcionou".

MÓDULO 05 · INTERMEDIÁRIO

Rodar o experimento certo

Objetivo: duração, o pecado do "peeking", pré-registro, SRM, segmentação pós-hoc, e o que fazer com um resultado "flat".

5.1 Duração

5.2 Não pare cedo (peeking)

5.3 Pré-registro

5.4 SRM — Sample Ratio Mismatch

5.5 Segmentação pós-hoc

5.6 O resultado "flat"

⚠️ Os pecados capitais

Parar o teste quando "ficou verde" (peeking no frequentista). Trocar a métrica primária depois de ver os dados. Garimpar segmentos até achar um significativo. Ignorar o SRM. Rodar menos de uma semana. Não pré-registrar. Rodar 20 métricas e reportar as 2 que deram. Concluir "funciona" de um efeito minúsculo em cima do MDE (winner's curse — Módulo 9). Deixar a flag para sempre.

💼 Mercado de trabalho

Perguntas: "Por que não parar um teste quando fica significativo?" (peeking infla o falso positivo de 5% para 20–30%+; use duração fixa ou sequential), "O que é SRM e por que importa?" (o split observado difere do configurado além do acaso — alarme de bug; não confie no resultado), "O que você faz com um resultado 'flat'?" (checar poder/exposição/SRM/execução; geralmente não lançar, a menos que simplifique sem piorar), "O que é pré-registro e por quê?".

✏️ Exercício 5 — Diagnostique o experimento

Um teste rodou 4 dias. O time diz: "a métrica primária ficou flat, mas achamos que para usuários mobile deu +8% significativo, então vamos lançar só para mobile". Além disso, o split foi 50/50 configurado mas os dados mostram 55% no controle. Aponte todos os problemas.

Gabarito (uma boa resposta): (1) 4 dias — menos de um ciclo semanal; comportamento de fim de semana não capturado; provavelmente sem poder. (2) SRM: 50/50 configurado, 55/45 observado — com N razoável isso é improvável por acaso; há um bug (assignment, logging, um crash desigual). Enquanto não achar a causa, nenhum número do experimento é confiável — nem o "flat" nem o "mobile +8%". (3) Segmentação pós-hoc: "achamos que mobile deu +8%" é garimpo — se não foi pré-registrado com hipótese, é um resultado de comparação múltipla, provavelmente espúrio; no máximo vira hipótese para um teste dedicado a mobile. (4) HARKing: mudar a decisão para "lançar só mobile" depois de ver os dados. O certo: pausar, achar e corrigir o bug do SRM, re-rodar por 1–2 semanas completas com poder adequado, e a métrica primária pré-registrada decide; se houver hipótese real sobre mobile, um experimento separado.

MÓDULO 06 · INTERMEDIÁRIO

Métricas

Objetivo: a hierarquia de métricas, curto prazo como proxy de longo prazo, o OEC, evitar gaming, e as métricas de contra-peso.

6.1 A hierarquia

6.2 Curto prazo como proxy de longo prazo

6.3 OEC — Overall Evaluation Criterion

6.4 Gaming e contra-peso

💼 Mercado de trabalho

Perguntas: "Descreva uma hierarquia de métricas de produto" (North Star → drivers → métricas de feature → guardrails; o experimento tem uma primária + guardrails + secundárias), "Qual o risco de medir em 2 semanas o que você quer em 1 ano?" (mudanças que ganham no curto podem perder no longo — mitigar com holdouts e proxies validados), "O que é uma métrica de contra-peso?" (flagra o abuso da métrica que você quer subir), "O que é um OEC?".

✏️ Exercício 6 — Métricas de um experimento de notificações

O time quer testar enviar mais notificações push para trazer usuários de volta. Defina: a métrica primária, 2 guardrails, 2 métricas de contra-peso, e por que medir só "sessões abertas" seria perigoso.

Gabarito (uma boa resposta): Primária: usuários ativos retornantes (voltaram e fizeram algo de valor — não só abriram) na janela do experimento; ou retenção de N dias. Guardrails: taxa de opt-out de notificações / desinstalação do app; reclamações; retenção de longo prazo (via holdout). Contra-peso: (1) proporção de sessões que terminam em < 10s sem ação (o usuário abriu por reflexo e saiu irritado); (2) taxa de "desligar todas as notificações" e NPS/satisfação. Por que "sessões abertas" é perigoso: é trivialmente "gamável" — bombardear de push aumenta aberturas no curto prazo mesmo que os usuários fiquem irritados, desativem as notificações e, no fim, retornem menos ou saiam. A métrica sobe e o produto piora. Por isso a primária tem que ser "retorno com valor" e os contra-pesos e o holdout de longo prazo têm que estar no desenho.

MÓDULO 07 · AVANÇADO

Além do A/B simples

Objetivo: interferência em redes/marketplaces, holdouts de longo prazo, experimentos em ML, variance reduction (CUPED), sequential testing e bandits.

7.1 Interferência entre unidades

7.2 Holdouts de longo prazo

7.3 Experimentos em ML

7.4 Variance reduction (CUPED)

7.5 Sequential e bandits

💼 Mercado de trabalho

Perguntas: "Por que A/B por usuário falha num marketplace?" (interferência — o tratamento de um afeta o resultado de outro; usar cluster ou switchback), "O que é um holdout de longo prazo e o que ele revela?" (grupo sem um conjunto de features por meses — mede o efeito acumulado, que é menor que a soma dos ganhos, e pega degradação lenta), "O que é CUPED?" (usar dados pré-experimento para reduzir variância → menos amostra), "A/B ou bandit?" (bandit quando quer maximizar durante o teste e há muitas variantes; A/B quando quer a estimativa limpa do efeito).

✏️ Exercício 7 — Desenho de experimento num app de carona

Um app de caronas quer testar um novo algoritmo de precificação dinâmica. Explique por que um A/B por usuário é inválido, proponha o desenho correto, e o que você mediria.

Gabarito (uma boa resposta): Por que A/B por usuário é inválido: motoristas e passageiros compartilham o mesmo mercado — se metade dos passageiros vê o preço novo, isso muda a oferta de motoristas e a disponibilidade que a outra metade (controle) enfrenta. Os grupos se contaminam e o efeito medido é enviesado (e muda com a % de tratamento). Desenho correto: switchback — em cada cidade, alternar o algoritmo novo e o antigo em janelas de tempo (ex.: 30–60 min, com um "washout" no meio), ao longo de semanas, cobrindo todos os horários/dias; ou cluster randomization por cidade/região (cidades sorteadas para novo vs antigo) se houver cidades suficientes. Aleatorizar as janelas para não confundir com hora do dia. Medir: métricas de marketplace agregadas por janela/cidade — taxa de pedidos atendidos, tempo de espera, preço médio, receita, ganhos dos motoristas, cancelamentos; guardrails de satisfação de ambos os lados e de "surge" excessivo. Analisar com métodos que lidam com a autocorrelação temporal das janelas.

MÓDULO 08 · AVANÇADO

A plataforma de experimentação

Objetivo: o ciclo de vida de um experimento, o pipeline de dados e métricas, os dashboards, a governança, e a dívida de flags.

8.1 O ciclo de vida

  1. Criar: hipótese, métrica primária, guardrails, MDE/tamanho, segmentos — num registro (o "experiment doc").
  2. Targetear: a flag, o % de tráfego, os filtros de elegibilidade; um "layer" para não colidir com outros experimentos na mesma superfície.
  3. Expor: o código chama a avaliação e emite o evento de exposição.
  4. Coletar: os eventos de exposição + os eventos de métrica fluem para o warehouse.
  5. Analisar: o cálculo de métricas por grupo, com IC, SRM, correções.
  6. Decidir: lançar / não lançar / iterar — com base na primária e nos guardrails, documentado.
  7. Limpar: remover a flag e o código do braço perdedor.

8.2 O pipeline de dados

8.3 Dashboards

8.4 Governança

8.5 Flag debt

💼 Mercado de trabalho

Perguntas: "Descreva o ciclo de vida de um experimento" (criar/registrar → targetear → expor → coletar → analisar → decidir → limpar a flag), "O que é um metrics repo / semantic layer e por que importa?" (métricas definidas uma vez, versionadas — "conversão" significa o mesmo em todo lugar), "Como você evita que dois experimentos se atrapalhem?" (review de design, layers mutuamente exclusivos, análise de interação), "O que é flag debt e como combater?".

✏️ Exercício 8 — Monte o processo

Uma empresa de 30 engenheiros está começando a fazer experimentos "de qualquer jeito" (cada time com sua flag, sem análise consistente). Proponha o processo mínimo: o que registrar, o pipeline, a análise, a governança e a limpeza.

Gabarito (uma boa resposta): Registrar: um template de "experiment doc" (hipótese na frase padrão, métrica primária única, guardrails, unidade de randomização, MDE + tamanho de amostra + duração planejada, segmentos pré-registrados, critério de decisão) — num lugar central, revisado antes de ligar. Pipeline: uma biblioteca única de feature flags/assignment (determinístico, com layers), um evento de exposição padronizado, os eventos indo para o warehouse, e um job (ou uma plataforma tipo GrowthBook/Statsig/Eppo) que calcula os resultados — não cada time no Excel. Definir as ~10 métricas centrais uma vez (metrics repo). Análise: sempre com IC, checagem de SRM automática, correção para métricas múltiplas, e — se querem "espiar" — sequential. Um dashboard por experimento com verdict claro. Governança: um "experiment review" leve (15 min) antes de ligar; um registro de todos os experimentos e resultados; regra de quem pode pular experimento (trivialidades). Limpeza: data de expiração nas flags, "remover a flag" na definição de pronto, relatório mensal de flags velhas. Começar simples e endurecer conforme o volume cresce.

MÓDULO 09 · MUITO AVANÇADO

Armadilhas e ética

Objetivo: p-hacking e HARKing, winner's curse, paradoxo de Simpson, aversão à mudança, a ética de degradar a experiência de um grupo, e quando A/B não é a ferramenta.

9.1 Armadilhas estatísticas

9.2 O custo de oportunidade

9.3 Ética

9.4 Quando A/B não é a ferramenta

💼 Mercado de trabalho

Perguntas: "O que é winner's curse?" (entre os experimentos que ganham, o efeito medido é inflado — o ganho real em produção é menor; calibrar com holdouts), "O que é o paradoxo de Simpson num experimento?" (ganha em cada segmento mas perde no agregado por mix desigual — checar composição), "Quais os limites éticos de um A/B?" (não expor a versão pior em coisas de saúde/dinheiro/segurança/grupos vulneráveis; consentimento; equidade por grupo; a11y como guardrail; vetar dark patterns mesmo que "convertam"), "Quando A/B não serve?".

✏️ Exercício 9 — Vetar ou lançar

Um experimento mostra que tornar o botão "cancelar assinatura" mais difícil de achar (3 cliques a mais, um pop-up "tem certeza?" com opções de retenção) reduz o churn em 6% (significativo) e não mexe nos outros guardrails. O time quer lançar. O que você argumenta?

Gabarito (uma boa resposta): o experimento "funcionou" pela métrica, mas isso é um dark pattern ("roach motel" / cancelamento difícil): reduzir churn impedindo as pessoas de cancelar não é entregar valor — é frustração e, em várias jurisdições, ilegal (regras de "cancelar deve ser tão fácil quanto assinar" — ex.: "click to cancel"). Argumentos: (1) a métrica de churn é uma aproximação de "as pessoas querem ficar" — aqui ela subiu sem que ninguém queira ficar; falta uma métrica de contra-peso (reclamações, chargebacks, avaliações negativas, menções em redes, e o churn de longo prazo quando a pessoa consegue cancelar e nunca volta nem recomenda). (2) Risco legal e de reputação. (3) Ética: manipular para prender o usuário. Recomendação: não lançar a fricção. O que é legítimo testar: uma tela de cancelamento que oferece alternativas de forma honesta e opcional (pausar, mudar de plano) sem esconder o botão nem obrigar cliques extras — e medir se retém com o usuário ainda podendo sair em 1 clique.

MÓDULO 10 · CARREIRA

Mercado de trabalho: roadmap, entrevistas e portfólio

Objetivo: converter o conteúdo dos módulos em contratação — onde a habilidade é usada, um plano de estudo, um banco de perguntas e projetos que geram entrevista.

10.1 Onde essa habilidade pesa

10.2 Roadmap de estudo (4–6 semanas)

SemanasFocoPrática
1Cultura, flags, anatomia (Módulos 1–3)Implementar feature flags num app pessoal com targeting % e por atributo; escrever 3 hipóteses no formato padrão
2Estatística (Módulo 4)Usar uma calculadora de sample size para 5 cenários; simular em Python (ver Análise de Dados) o efeito de "peeking" no falso positivo
3Rodar certo + métricas (Módulos 5–6)Pré-registrar um experimento fictício completo; desenhar a hierarquia de métricas de um produto que você conhece
4Desenhos avançados + plataforma (Módulos 7–8)Desenhar um experimento de marketplace (switchback); esboçar o pipeline eventos→métricas
5Armadilhas e ética (Módulo 9)Analisar honestamente um experimento "flat"; escrever um veto ético a um "vencedor" que é dark pattern
6PortfólioPublicar um estudo de caso fim-a-fim e a análise em Python

10.3 Banco de perguntas (com a resposta que aprova)

Júnior/pleno — "Por que A/B em vez de analisar quem usou a feature?"

Porque comparar quem usou vs quem não usou tem viés de seleção — quem usa a feature já é diferente. Só a randomização faz os grupos serem iguais em tudo menos no tratamento, permitindo atribuir a diferença de métrica à causa. Análise observacional gera hipóteses, não conclusões causais.

Pleno — "O que é um p-valor (e o que não é)?"

É a probabilidade de observar uma diferença pelo menos tão grande quanto a sua, assumindo que não há efeito. Não é a probabilidade de a hipótese nula ser verdadeira, nem a chance de você estar errado, nem o tamanho/importância do efeito. Prefira reportar o intervalo de confiança, que mostra magnitude e incerteza.

Pleno — "O que é MDE e como você calcula o tamanho de amostra?"

MDE é o menor efeito que o experimento consegue detectar com o poder desejado (ex.: 80%). O tamanho de amostra vem de: a taxa base da métrica, a variância, o α (0.05), o poder (0.8), e o MDE de interesse — uma calculadora dá o n por grupo, e daí os dias dado o tráfego. Se o resultado for meses, o efeito é pequeno demais para o seu tráfego.

Pleno — "Por que não parar um teste quando fica significativo?"

No frequentista clássico, o tamanho de amostra é fixado antes; olhar repetidamente e parar no verde ("peeking") infla o falso positivo de 5% para 20–30%+. Ou você fixa a duração e só olha no fim, ou usa sequential testing / always-valid p-values, onde a plataforma corrige e você pode olhar continuamente.

Pleno/sénior — "O que é SRM e o que você faz ao detectar?"

Sample Ratio Mismatch: o split observado (ex.: 53/47) difere do configurado (50/50) além do que o acaso explica — é um alarme de bug (assignment enviesado, logging perdendo eventos de um lado, um crash desigual, bots). Ao detectar, não confie no resultado: ache e corrija a causa, e re-rode. É a primeira checagem de todo experimento.

Sénior — "Como você testa uma mudança num marketplace?"

Não por usuário — há interferência (o que um comprador vê depende de outros). Cluster randomization (por cidade/mercado) ou switchback (o sistema todo alterna tratamento/controle em janelas de tempo, ao longo de semanas, cobrindo horários e dias). Medir métricas agregadas por janela/cluster e analisar considerando a autocorrelação.

Sénior — "Um experimento ganhou +3% na primária. Você lança?"

Depende: os guardrails ficaram ok? o teste rodou pelo menos uma semana completa, sem peeking, com a métrica primária pré-registrada, sem SRM? O intervalo de confiança está longe do zero ou o +3% está em cima do MDE (winner's curse — o efeito real pode ser bem menor)? Há risco de novelty (medir de novo depois)? Se tudo passa, lança e — idealmente — confirma o ganho num holdout de longo prazo.

Armadilha — "O A/B provou que funciona"

Um A/B bem feito mostra que aquela mudança causou aquele efeito na métrica primária, no prazo medido, na população testada — se não houve peeking, SRM, troca de métrica, garimpo de segmento, e o poder era adequado. Não "prova" que serve o usuário (a métrica é aproximação), nem o efeito de longo prazo, nem que replica em outro contexto.

10.4 Projetos de portfólio que geram entrevista

  1. Experimento fim-a-fim (âncora): um caso (real ou simulado) com o experiment doc pré-registrado (hipótese, métrica primária, guardrails, sample size/MDE), a implementação com feature flags, e a análise honesta (IC, SRM, decisão) — incluindo o que fazer se der "flat".
  2. Feature flags num app: targeting por %, atributo e segmento, avaliação determinística, e um rollout gradual com kill switch documentado.
  3. Estudo de sample size / poder: uma análise (Python) de quanto tráfego é preciso para vários MDEs numa métrica, e uma simulação do custo do "peeking".
  4. Análise de um experimento "flat": demonstrar a checagem de poder, exposição, SRM e execução, e a recomendação — a habilidade que separa quem entende de quem só sabe rodar.
  5. Desenho de experimento em rede/marketplace: a justificativa da interferência e o desenho switchback/cluster, com as métricas e a análise.

10.5 Fontes para continuar

🏁 Síntese final da apostila

Cinco ideias sustentam a experimentação: (1) a intuição erra e só a randomização separa causa de correlação — mas isso exige tráfego, disciplina e instrumentação; (2) feature flags separam deploy de release (rollout gradual, kill switch, atribuição de variantes); (3) um experimento bem formado tem uma hipótese, uma métrica primária, guardrails, unidade de randomização consistente, e tamanho de amostra calculado antes; (4) os pecados que invalidam tudo são peeking, trocar a métrica, garimpar segmentos e ignorar o SRM — pré-registre; (5) otimizar a métrica não é servir o usuário — o winner's curse infla os ganhos, o longo prazo pode divergir do curto, e o julgamento humano precisa vetar dark patterns "vencedores".