יום שבת, 7 בדצמבר 2013

מה קורה עם באגים שאינם בעצם באגים? או: הסיכון שבאיבוד באגים אמיתיים

לא כל הבאגים, כידוע, הם באגים:
- חלק מהבאגים נסגרים כ-Invalid, כלומר הצעדים שהובילו לתוצאה אינם נכונים או התוצאה המצופה היא נכונה, או שהסביבה שבה התגלה הבאג אינה הסביבה הנכונה ועוד.
- חלק מהבאגים אינם משתחזרים, חלק הם WAD - Works As Designed.
- חלק מהבאגים פשוט לא יתוקנו כיוון שהם לא תלויים בנו, או שהבאג השפעתו נמוכה אל מול הזמן וסיכון התיקון שלו.

לכן חלק מהבאגים צריכים להיסגר. השאלה היא - מי סוגר אותם. האם אנו סומכים על המפתח? הממ, לא נראה לי. האם הבודק יכול לסגור? לעיתים כן, אבל לא תמיד. אולי הוא מבצע תסריט באיזור שאינו איזור של המערכת שהוא מכיר. לפעמים הוא פשוט עלול להאמין למפתח. הבעייה היא שיש יותר מסיכוי קטן לאבד כך באגים חשובים. למשל הנה מקרה אמיתי:
אנו עובדים בסביבת בדיקות. בתקופה ההיא השתמשנו בסביבת SSL, אך דא עקא שלא היה לנו certificate בסביבה הנ"ל. זה אומר שהיינו מקבלים הודעת מערכת שהסביבה לא באמת מוגנת. לעומת זאת בסביבת הסטייג'ינג היה לנו certificate מקורי.
בודק שבדק בסטייג'ינג קיבל את ההודעה הנ"ל, כאמור לא הייתה אמורה להיות בסטייג'ינג. הוא פתח באג.
המפתח, שהוא אגב אחד מהטובים וממגדילי הראש שאי-פעם עבדתי איתו, ביטל את הבאג בתואנה שההודעה נובעת מהסביבה. קורה.
הבודק, שאולי היה אף הוא אחראי, קיבל את הודעתו של המפתח, אולי גם כיוון שהיה ידוע שהמפתח הספציפי לא יתעלם מבאגים, וסגר את הבאג.
ואז הגיעה באג קריטי מה-production שמשתמשים מקבלים הודעת שגיאה של ה-SSL Certificate.
אגב, עד היום לא סיפרתי את זה למפתח.
בכל אופן היה צריך להבין שבסביבה שלנו, שיש בה חמישה אנליסטים ולפעמים עשרים בודקים, באגים עלולים ללכת לאיבוד, ואנחנו לא יכולים להרשות זאת לעצמנו.

לכן הכנסנו תהליך עם שתי נקודות עיקריות:
א. אסור בכל מקרה למפתח לשנות את הבאג לסטטוס סופני (כמו Invalid, Won't Fix, Works For Me ודומייהם). אם ישנה אפשרות לגבות את זה בהרשאות - מה טוב.
ב. גם בודק לא יכול לסגור באג, אלא רק אנליסט, ואנליסט שאחראי לתחום. במקום בו אין הפרדה בין בודק לאנליסט, רק בודק שהוא expert בנושא או ר"צ יכול לסגור באג.
איך עושים את זה? ע"י סטטוס מתאים בבאג (למשל ב-bugzilla ע"י הוספת Keyword). את הסטטוס מוסיף הבודק לאחר שהמפתח משכנע אותו בהערה מתאימה בדיווח הבאג.
פעם ביום האחראי פותח פילטר מתאים, רואה את הבאגים שיש לסגור ומחליט על הצעד הבא - לסגור או לפתוח מחדש.
אני רוצה להזכיר לקוראים המלומדים, שאנחנו יכולים ואף חייבים לעיתים לשתף את מנהל המוצר בהחלטה לגבי המשך הטיפול בבאג. לא הכל הוא בטווח סמכותנו.
אני יכול לומר שעל בסיס יומי כמעט אנחנו פותחים מחדש באגים שאחרת היו נעלמים במערכת.

אין תגובות:

פרסום תגובה

רשומות פופולריות