ממוצע העסקאות של המוכרים ב-OkCredit עלה ב-30% אחרי הפחתת שיעור מקרי ה-ANR

‫OkCredit היא אפליקציה לניהול חשבונות אשראי שמשמשת מיליוני בעלי חנויות ולקוחות שלהם בהודו. עם 140 מיליון עסקאות מדי חודש ו-50 מיליון הורדות, רק בשנה שעברה נרשמו באפליקציה עסקאות בשווי 50 מיליארד דולר.

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

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

ההשקעות של OkCredit בשיפור מדדי התפקוד של Android, כמו הפחתת שגיאות ANR ושיפור זמן ההפעלה של האפליקציה, הניבו פירות, במיוחד במכשירים פשוטים (שכבר יש להם מגבלות על משאבים). הם נהנו משיפורים בשימור הלקוחות וגם בעסקאות של מוכרים באפליקציה.

האתגר

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

מה הם עשו?

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

הרמז הכי חשוב בניפוי באגים של ANR הוא לגלות מה ה-thread הראשי עשה כששגיאת ה-ANR התרחשה. בעזרת משוב מ-Google, חברת OkCredit יצרה גישה מובנית לזיהוי של שגיאות ANR.

  • מעקב אחרי הביצועים באמצעות Android Vitals ושימוש בדיווח מותאם אישית ב-Firebase Crashlytics כדי לקבל מידע על מקרי ANR
  • בוצעה אופטימיזציה של האתחול של ספריות צד שלישי מתחילת האפליקציה, על ידי העברתן לשרשור ברקע
  • השתמשתי בכלים כמו Systrace ו-Profiler כדי לזהות ANR ב-broadcast receivers וב-Services. בנוסף, ביצוע השוואה בין ביצועים של אפליקציות שונות (macrobenchmark) ב-CI עזר להשוות בין הפעלות במצב התחלתי.
  • באמצעות כלי ליצירת פרופילים של שיטות, זוהו אובייקטים שצריך לטעון באופן עצלני.
  • באמצעות perfetto, זוהו פריסות עם אינפלציה גבוהה.
  • בעיה של ANR בהעדפות משותפות נפתרה על ידי שינוי כל הפונקציות apply()‎ לפונקציות commit()‎ בשרשור ברקע.

כדי לאמת את ההשפעה של המשימות שלמעלה, השוונו מדדים או השתמשנו בכלים כמו systrace,‏ CPU profiler וכו'.

התוצאות

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

  • במכשירים בסיסיים –
    • הפחתה של 60% במספר מקרי ה-ANR
    • שיפור של כ-22% בשיעור שימור הלקוחות ביום הראשון במכשירים נמוכים
    • הערך הממוצע של כל עסקה אצל כל מוֹכר עלה ב-30%
  • דירוג האפליקציה השתפר מ-4.3 ל-4.6 בחנות Play
  • זמן ההפעלה במצב התחלתי (cold startup) השתפר בכ-70%
  • הייתה עלייה של 60 % בשיעור המשתמשים שלוחצים על המסך עד לטעינה מלאה של הפריימים הראשונים בכל מסך

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

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

– גאורב קונואר (מייסד שותף ומנהל מוצר ראשי – OkCredit)