
A/B testing for product
How to design, read, and govern product experiments without falling into false positives.
What you will learn
- Understand the analytical problem and the decision-making context
- Apply examples, metrics, and controls to real cases
A/B testing for product
Cambiare un elemento chiave del prodotto, per esempio l’onboarding, senza sapere se migliorerà davvero attivazione o retention è un rischio. L’A/B testing per prodotto nasce per trasformare queste scelte in esperimenti strutturati, con ipotesi chiare, metriche precise e criteri di decisione fissati prima del lancio.
Real-world problem
Nel product analytics il problema è distinguere dove il prodotto genera valore reale da dove produce solo attività apparente. Senza un processo rigoroso finisci per decidere su segnali fuorvianti o su intuizioni non verificate. L’obiettivo è migliorare una scelta concreta con dati, assunzioni esplicite e controlli minimi.
Conceptual model
Per affrontare un A/B test basta un modello semplice ma efficace.
| Phase | What to clarify | Output |
|---|---|---|
| Question | Which real choice needs improvement? | Decision to make |
| Measure | Which observable signal represents the problem? | Metric or source data |
| Control | Which baseline makes the result interpretable? | Credible comparison |
| Action | What changes after the analysis? | Next operational step |
Lo schema tiene il focus su decisione, dato, controllo e azione, e ti evita derive teoriche o analisi senza impatto.
Rigorous formalization
Per rendere un A/B test analizzabile e riproducibile devi definire alcuni elementi.
| Element | Requested specification |
|---|---|
| Unit of analysis | user, cohort, product event, feature, or journey |
| Primary signal | activation, retention, frequenza, conversione, churn, valore per coorte |
| Baseline | Previous period, comparable group, benchmark, or counterfactual scenario |
| Decision | product diagnosis, experiment, prioritization, or UX intervention |
| Risk | confondere un dato disponibile con una prova sufficiente |
Solo così un altro analista può replicare la logica, criticare le assunzioni e arrivare alla stessa decisione.
Example or case study
Immagina un nuovo onboarding che aumenta il completamento del primo step ma riduce la creazione del primo progetto. Senza guardrail e metriche downstream rischi di lanciare una modifica che sembra positiva ma intacca il valore reale.
| Observed evidence | Cautious interpretation | Recommended action |
|---|---|---|
| The number improves | Potrebbe essere effetto reale o rumore | Cercare confronto e segmentazione |
| One segment changes more than others | La media nasconde differenze importanti | Separate cohorts or use cases |
| Cost grows along with the result | Valutare l’impatto sul margine | Estimate trade-offs and sustainability |
Anatomy of a good experiment
Un esperimento efficace tiene insieme almeno sei elementi: un’ipotesi comportamentale chiara, una popolazione target definita, una sola metrica primaria, le guardrail metrics che evitano le vittorie tossiche, durata e sample size calcolati a priori e una regola di decisione fissata prima del lancio.
Un’ipotesi debole suona così: “Testiamo un onboarding nuovo per vedere se funziona meglio”. Una solida invece dice quanto, su chi ed entro quando: “Ridurre il setup da 5 a 2 step aumenterà la percentuale di utenti che completa il primo progetto entro 24 ore dal 34% al 40%, senza far crescere i ticket di supporto o il churn a 7 giorni”.
Primary and guardrail metrics
La metrica primaria è quella su cui poggia la decisione e deve restare una sola. Le guardrail metrics proteggono dagli effetti collaterali indesiderati. Una notifica aggressiva, per esempio, può alzare gli utenti attivi giornalieri e insieme le disinstallazioni. Senza guardrail rischi di lanciare una feature che erode la fiducia.
Questa query serve a monitorare il test:
SELECT variant, COUNT(DISTINCT user_id) AS users, COUNT(DISTINCT CASE WHEN completed_project THEN user_id END) AS activated, ROUND(COUNT(DISTINCT CASE WHEN completed_project THEN user_id END) * 100.0 / COUNT(DISTINCT user_id), 2) AS activation_rate, ROUND(AVG(support_tickets), 2) AS avg_support_tickets, ROUND(AVG(churned_d7::int) * 100, 2) AS churn_d7 FROM experiment_results WHERE experiment_id = ‘onboarding_simplified_v1’ GROUP BY variant;
La regola di decisione può essere questa: lanciare la variante B solo se l’activation cresce almeno del 5% relativo e il churn a 7 giorni non peggiora oltre 1 punto percentuale.
Sample size and duration
Un errore comune è fermare il test appena compare p < 0.05, soprattutto se guardi il risultato di continuo. Questo gonfia il rischio di falso positivo. Devi stimare a priori il campione necessario e la durata, che deve coprire cicli settimanali interi per non confondere l’effetto con le variazioni giornaliere.
Questo è il calcolo del campione:
from statsmodels.stats.power import NormalIndPower from statsmodels.stats.proportion import proportion_effectsize
baseline = 0.34 minimum_detectable_effect = 0.04 # dal 34% al 38% alpha = 0.05 power = 0.80
effect_size = proportion_effectsize(baseline, baseline + minimum_detectable_effect) analysis = NormalIndPower() n = analysis.solve_power(effect_size=effect_size, power=power, alpha=alpha, ratio=1) print(round(n)) # utenti per variante
Segments: the average lies
La media può nascondere differenze che contano. Una variante può risultare neutra in media ma ottima per i nuovi utenti e pessima per i power user. L’analisi post-test deve includere segmenti decisi in anticipo, come canale, device, utente nuovo o esistente, piano free o paid, paese e intensità d’uso.
Questa query estrae i segmenti:
SELECT variant, user_segment, COUNT(*) AS users, ROUND(AVG(converted::int) * 100, 2) AS conversion_rate FROM experiment_results GROUP BY variant, user_segment ORDER BY user_segment, variant;
Attenzione però: più segmenti analizzi, più cresce il rischio di trovare pattern casuali. Segmenta seguendo un’ipotesi, non andando a caccia.
Real case: Microsoft Bing
Ron Kohavi racconta un esperimento su Bing in cui una piccola modifica nel modo di mostrare i titoli degli annunci portò a un aumento sorprendente delle revenue. La lezione non è che le piccole modifiche generano grandi impatti, ma che nemmeno i team esperti riescono a prevedere con certezza l’effetto di una modifica. Per questo serve sperimentazione controllata.
Organizzazioni mature come Microsoft, Booking, Netflix e Airbnb usano piattaforme di experimentation per disciplinare l’incertezza, non per confermare opinioni già formate.
Anti-pattern
Gli errori più frequenti si assomigliano. C’è chi ferma il test quando il risultato conviene e chi cambia la metrica primaria dopo il lancio. C’è chi testa troppe cose insieme senza un disegno fattoriale e chi ignora l’effetto novità. C’è chi lancia una variante che migliora la conversione ma peggiora la fiducia. E c’è chi legge un “non significativo” come se fosse la prova che non esiste alcun effetto.
Lab / exercise
Basic level
Scrivi una scheda sintetica per un A/B test con decisione da supportare, metrica primaria, baseline, rischio principale e azione se il segnale viene confermato.
Intermediate level
Costruisci una tabella con tre segmenti, periodi o scenari. Per ciascuno indica cosa cambia, una spiegazione alternativa plausibile e un controllo da fare prima di raccomandare un’azione.
Research-grade level
Prepara un decision memo con ipotesi, dati richiesti, criteri di esclusione, controlli di qualità, soglia decisionale, rischio residuo e piano di monitoraggio dopo la decisione.
Recommended datasets and materials
Usa eventi prodotto, funnel, sessioni, survey, CRM, ticket di supporto e dati di esperimenti. Se non hai dati reali, crea un dataset sintetico con almeno 200 righe, una dimensione temporale, una di segmento e una metrica di outcome.
Typical mistake to avoid
L’errore è usare l’A/B testing come etichetta anziché come processo. Capita quando mostri grafici senza una decisione, metriche senza baseline o conclusioni senza dire quali assunzioni potrebbero invalidarle.
La domanda di controllo è: se questo risultato fosse instabile, quale scelta sbaglierei? Quando non c’è una risposta concreta, manca il collegamento tra analisi e azione.
Quiz or checkpoint
- Which concrete decision should this lesson improve?
- Which unit of analysis makes the problem measurable?
- Which baseline would you use to avoid a naive reading?
- Which typical mistake could change the conclusion?
- Which output would you deliver to a non-technical stakeholder?
Operational Summary
L’A/B testing per prodotto è utile solo se produce una decisione più chiara, non un vocabolario nuovo. Serve un percorso che colleghi problema, modello, formalizzazione, esempio, lab e checkpoint, così la lezione diventa pratica verificabile.
Practice deep dive
Tratta l’A/B testing come una piccola prova di lavoro dentro una product review, dove activation, retention e valore utente non raccontano la stessa storia. Devi produrre una diagnosi del journey con metrica primaria, guardrail e prossimo esperimento, tenendo separati contesto, misura, azione e limite.
Operational example
Parti da una domanda semplice: quale scelta migliorerei applicando bene questa lezione? Collega un problema reale a un output osservabile. Può essere una tabella con baseline e segmenti, una query, un disegno di esperimento o un memo breve. La qualità sta nella tracciabilità del ragionamento.
Work checkpoint
Scrivi la decisione da migliorare con un verbo operativo, come allocare, fermare, correggere, lanciare, misurare, priorizzare o investigare. Definisci il segnale principale e almeno un guardrail, aggiungi una baseline ed esplicita il rischio più probabile. Chiudi con un output consegnabile: una dashboard, una query, uno schema, un memo, un esperimento, un notebook o una checklist.
Mastery summary
Hai assimilato l’A/B testing per prodotto quando sai spiegare il concetto senza gergo, applicarlo a un caso realistico e difendere una raccomandazione includendone limiti e prossimi controlli. Se ti manca uno di questi, torna al modello concettuale e riduci l’ambizione dell’esempio.
Related Path
Lessons to read together
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.