HiTakeJobHiTakeJob

מה זה A/B Test? הסבר פשוט + כמה משרות פתוחות בישראל

זמן קריאה: 8 דקות

A/B Test הוא ניסוי מבוקר שבו התנועה מפוצלת אקראית בין גרסה קיימת לגרסה חדשה, ואותו מדד נמדד בשתיהן באותו חלון זמן, כדי לדעת אם השינוי גרם לשיפור או שהמספר זז מעצמו. בלוח HiTakeJob פתוחות כרגע 61 משרות שמזכירות ניתוח נתונים, 133 שמזכירות SQL ו-81 בקטגוריית ניהול מוצר.

מה קורה בפועל מרגע שניסוי עולה

הרעיון פשוט, הביצוע פחות. זהו הרצף שקורה בכל ניסוי אמיתי, לפי הסדר:

  • חלוקה אקראית. כל משתמש שמגיע מקבל שיוך קבוע לקבוצה, לרוב לפי גיבוב של מזהה המשתמש. השיוך חייב להיות דביק: משתמש שרואה גרסה אחת היום ואחרת מחר הורס את הניסוי ואת החוויה.
  • מדידה אחידה. אותו אירוע, אותה הגדרה, אותו חלון זמן בשתי הקבוצות.
  • המתנה לקיבולת. הניסוי רץ עד שנצבר מספר המשתמשים שתוכנן מראש, ולא עד שהמספר נראה טוב.
  • ניתוח. השוואת המדד הראשי, בדיקת מדדי השמירה, ואז פילוחים - אך רק כאלה שהוגדרו מראש.
  • החלטה. להשיק, לגנוז, או להריץ שוב אחרת. "להריץ עוד קצת" היא לרוב לא אפשרות לגיטימית.

הנקודה הראשונה היא גם הכשל הטכני הנפוץ ביותר. שיוך שנשמר בעוגייה בלבד נשבר כשמשתמש מחליף דפדפן או מכשיר, וכשזה קורה שתי הקבוצות מזדהמות הדדית וההפרש נמחק.

השערה: מה שמפריד ניסוי מניחוש

ניסוי בלי השערה כתובה מראש הוא ניחוש עם דשבורד. השערה טובה נכתבת במשפט אחד עם ארבעה חלקים: מה משנים, למי, איזה מדד אמור לזוז, ולמה. לדוגמה: "הצגת מחיר החודשי לצד השנתי בעמוד התמחור תעלה את שיעור ההמרה לתשלום בקרב מבקרים חדשים, כי המחיר השנתי יוצר רתיעה בשלב ההשוואה".

שלושה דברים מתחייבים מזה. ראשית, המדד הראשי נבחר לפני ולא אחרי. שנית, אם התוצאה שלילית לומדים משהו - ההנחה על הרתיעה הייתה שגויה. שלישית, אפשר לדעת מראש איזה גודל אפקט בכלל שווה את המאמץ, וזה מה שמכתיב את גודל המדגם.

גודל מדגם: למה רוב הניסויים לא יכולים להצליח

זו הנקודה שגורמת לרוב הניסויים בארגונים קטנים להיות חסרי טעם. ניסוי צריך מספיק תצפיות כדי להבחין באפקט בגודל שמעניין אתכם. ככל שהאפקט קטן יותר וככל שהמדד הבסיסי נמוך יותר, נדרשות יותר תצפיות - והקשר אינו ליניארי אלא ריבועי. חצי מגודל האפקט דורש פי ארבעה מדגם.

מצבמה קורה בפועל
מדגם קטן מדי, תוצאה לא מובהקתלא "אין אפקט" אלא "לא ידענו לזהות"
מדגם קטן מדי, תוצאה מובהקתלרוב הערכת יתר של גודל האפקט
מדגם מתאים, תוצאה לא מובהקתמסקנה אמיתית: השינוי לא עזר
מדגם ענק, אפקט זעיר מובהקמובהק סטטיסטית וחסר ערך עסקית

השורה השנייה מפתיעה אנשים והיא החשובה ביותר. בניסוי חלש, התוצאות היחידות שחוצות את סף המובהקות הן הקיצוניות - ולכן ניסוי קטן שמראה "שיפור של 40%" מדווח כמעט תמיד על מספר שלא ישוחזר בהשקה. זו הסיבה שצוותים מנוסים מחשבים את גודל המדגם הנדרש לפני שהם מחליטים אם בכלל שווה להריץ.

מובהקות סטטיסטית מול משמעות עסקית

ערך p מתאר את הסבירות לראות הפרש כזה או גדול ממנו אילו לא היה הבדל אמיתי בין הגרסאות. הוא אינו הסיכוי שהגרסה החדשה טובה יותר, והוא אינו מודד את גודל השיפור. שתי טעויות נפוצות נובעות מכך: לקרוא ל-p=0.04 "הוכחה", ולקרוא ל-p=0.08 "נכשל".

הכלי המעשי יותר הוא רווח בר-סמך. במקום "שיפור של 3.1%" מקבלים "בין 0.4% ל-5.8%". אם הקצה התחתון עדיין מצדיק את עלות התחזוקה של הפיצ'ר - משיקים. אם הקצה התחתון קרוב לאפס, התשובה האמיתית היא שהניסוי לא הכריע. לפני ההרצה כדאי להגדיר סף מינימלי שמצדיק שינוי, ולהחליט לפיו.

הצצה מוקדמת - הטעות שהכי קל ליפול בה

מספרי ניסוי מתנודדים בימים הראשונים. אם בודקים את הדשבורד כל בוקר ועוצרים ברגע שמופיעה מובהקות, שיעור התוצאות השגויות עולה הרבה מעבר ל-5% המקובלים - התוצאה "נתפסת" ברגע רעש חולף. התופעה הזו אחראית לחלק גדול מהשיפורים שמדווחים בישיבה ונעלמים ברבעון הבא.

שלוש דרכי התמודדות מקובלות: לקבוע מראש את תאריך הסיום ואת גודל המדגם ולא לגעת עד אז; להשתמש בשיטות שמיועדות לבדיקה מתמשכת, כמו מבחנים סדרתיים או גישה בייסיאנית, שמתמחרות את ההצצות; או להגדיר מראש נקודת ביניים אחת בלבד. מה שלא עובד הוא להסתכל כל יום ולהתייחס למספר כאילו הוא סופי.

כלל נוסף: ניסוי צריך לכסות לפחות מחזור שבועי שלם. התנהגות בסוף שבוע שונה מאמצע שבוע, וניסוי שרץ שלושה ימים מודד גם את היום בשבוע ולא רק את השינוי.

מדדי שמירה: מה מונע ניצחון שהוא הפסד

מדד שמירה הוא מדד שאסור שיורע, גם אם המדד הראשי משתפר. בלעדיו קל להשיק שינוי שמעלה הרשמות ב-4% ומעלה נטישה חודש אחר כך ב-10%.

מדד ראשי בניסוימדד שמירה שצריך לנטר לצידו
שיעור הרשמהשימור אחרי 30 יום, שיעור פניות לתמיכה
הקלקות על באנרזמן טעינת העמוד, שיעור נטישה מיידית
שווי הזמנה ממוצעשיעור ביטולים והחזרות
מנויים בתשלוםשיעור החזרים ותלונות חיוב
שימוש בפיצ'ר חדששימוש בפיצ'ר שהוא בא במקומו

שורות התמיכה והביטולים הן אלה שנשכחות. שינוי שמעלה המרה על ידי הסתרת מידע מהותי כמעט תמיד מייצר עלות בהמשך המשפך, והיא לא תופיע במדד הראשי.

A/A Test: איך בודקים שהמערכת עצמה לא משקרת

ב-A/A Test מפצלים תנועה בין שתי גרסאות זהות. בציפייה, אין הפרש. אם כן נמצא הפרש מובהק, הבעיה אינה בגרסה אלא בתשתית: החלוקה אינה אקראית באמת, הדגימה של האירועים שונה בין הקבוצות, חוסמי פרסומות מסננים גרסה אחת יותר מהשנייה, או שהמדד מחושב אחרת בכל צד.

זו בדיקה שכדאי להריץ פעם אחת לפני שסומכים על מערכת ניסויים חדשה, ושוב אחרי כל שינוי מהותי בתשתית המדידה. תוצאה מנופחת שיטתית בכל הניסויים היא כמעט תמיד באג במדידה ולא גאונות מוצרית. הקשר למדידה עצמה מורחב במה זה KPI.

איפה זה רץ: דגלי פיצ'רים והשקה הדרגתית

ברוב החברות הניסוי לא מיושם בקוד נפרד אלא מאחורי דגל פיצ'ר - מתג שמחליט בזמן ריצה איזו גרסה מוצגת. הדגל מאפשר שלושה דברים שקשה בלעדיהם: לכבות שינוי בעייתי תוך שניות בלי פריסה חדשה, לפתוח ל-1% ואז ל-10% ואז לכולם, ולהפריד בין רגע העלייה לפרודקשן לרגע החשיפה למשתמשים.

ההפרדה הזו היא הסיבה שמפתחים נתקלים בנושא גם בלי קשר לאנליטיקה, והיא חלק מתהליך שחרור מודרני שהרחבנו עליו במה זה CI/CD. המחיר הוא חוב: דגל שנשאר בקוד שנה אחרי שהניסוי הסתיים מייצר מסלולי קוד מתים ובאגים שקשה לשחזר. צוותים מסודרים מנקים דגלים כחלק מהגדרת סיום הניסוי.

מתי לא להריץ A/B Test

  • כשאין מספיק תנועה. מוצר B2B עם מאות משתמשים לא יגיע לקיבולת. במקרה כזה ראיונות, בדיקות שמישות וניתוח לוגים מלמדים יותר.
  • כשהשינוי הכרחי ממילא - דרישת רגולציה, תיקון תקלה, או שינוי תשתית. אין מה להחליט.
  • כשהאפקט הצפוי איטי. שינוי שמשפיע על חידוש מנוי שנתי לא יימדד בשבועיים.
  • כשהחלוקה אינה אפשרית נקי - למשל במוצר עם אפקט רשת, שבו משתמשי קבוצה אחת משפיעים ישירות על השנייה.
  • כששתי הגרסאות אינן באמת שונות. שינוי גוון של כפתור מייצר אפקט שקטן מכדי להימדד בכל מדגם סביר.

הסעיף האחרון מסביר למה חברות עם מעט תנועה שמריצות עשרות ניסויים קטנים מקבלות בעיקר רעש. עדיף מעט ניסויים על שינויים גדולים מאשר הרבה ניסויים שאיש לא יכול להכריע.

מי מריץ את זה ואיך זה נראה במשרות

זה כמעט אף פעם לא תפקיד שלם. מנהל מוצר מגדיר את ההשערה ואת המדד, אנליסט או אנליסט מוצר בונה את המדידה ומחשב את התוצאה, ומפתח מממש מאחורי דגל. בלוח פעילות כרגע 44 משרות שמסווגות לאנליטיקה ו-3 שמסווגות לאנליטיקת מוצר, ומשרה אחת בלבד שמזכירה A/B בכותרת עצמה - מה שמשקף בדיוק את זה: מיומנות שמבוקשת בתוך תפקידים אחרים ולא כמקצוע נפרד.

בפועל הדרישה הטכנית הנפוצה ביותר בתפקידים האלה היא SQL, כי בלי יכולת לחתוך את הנתונים לבד כל שאלה נוספת הופכת לתלות באדם אחר. אפשר לראות משרות SQL, משרות ניתוח נתונים, משרות Google Analytics ומשרות ניהול מוצר.

שאלות נפוצות

כמה זמן צריך להריץ ניסוי?

עד שנצבר גודל המדגם שתוכנן, ולפחות מחזור שבועי שלם. המשך הרצה אחרי שהמדגם הושג אינו מוסיף ודאות אלא בעיקר הזדמנויות לעצור ברגע נוח, ולכן עדיף לקבוע תאריך סיום מראש.

אפשר לבדוק כמה שינויים בו-זמנית?

אפשר, אבל אז לא יודעים מה גרם למה. הפרדה לגרסאות נפרדות דורשת יותר תנועה, וניסוי רב-משתנים דורש הרבה יותר. הדרך המעשית ברוב החברות היא ניסוי אחד משמעותי בכל פעם על אותו מסך.

מה עושים כשהתוצאה לא מובהקת?

מחליטים לפי הרווח בר-סמך ולפי עלות התחזוקה. אם השיפור האפשרי קטן מהסף שהוגדר מראש, גונזים ועוברים הלאה. הארכת הניסוי עד שיימצא מספר יפה היא בדיוק התופעה שיוצרת שיפורים מדומים.

מה ההבדל בין A/B Test לבין השקה הדרגתית?

השקה הדרגתית נועדה להגביל נזק - פותחים לאחוז קטן ומוודאים שאין תקלות. ניסוי נועד להשוות ביצועים בין גרסאות במקביל. שתיהן משתמשות באותו מנגנון דגלים, אבל השאלה שהן עונות עליה שונה.

האם צריך מערכת ייעודית?

לא בהכרח. חלוקה לפי גיבוב מזהה, אירוע שנרשם עם שם הגרסה, ושאילתה שמשווה - זה מספיק. מערכת ייעודית חוסכת עבודה וטעויות חישוב, אבל היא לא תתקן חלוקה שבורה או מדידה לא עקבית.

מי מחליט אם משיקים?

ברוב הארגונים מנהל המוצר, על בסיס המדד הראשי, מדדי השמירה ועלות התחזוקה. חשוב שקריטריון ההחלטה ייכתב לפני ההרצה - אחרת הדיון שאחרי הופך לוויכוח על פרשנות במקום על נתונים.

איך זה נשאל בראיון?

השאלה השכיחה היא תרחיש: מוצג ניסוי עם תוצאה חיובית ונשאלים מה עוד הייתם בודקים. תשובה טובה מזכירה גודל מדגם, משך ההרצה, מדדי שמירה ואפשרות שהמדידה עצמה שבורה - ולא רק את ערך ה-p.

מאמרים נוספים

המשרות באתר