יום שישי, 27 בדצמבר 2013

מבנה קבוצת הבדיקות בחברת AVG ישראל

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

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

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

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

3. כתיבה מתודולוגית של ה-STD כולל את תהליכי הריוויו הפנימיים והחיצונים וכד'. העברה של הפרוגרסיה לרגרסיה וכד'.

4. העברת המידע לבודקים, העברת הדרישות והדיזיין, ה-STD וכד' בכדי שהם יבינו את הכל משלב המטרות ושלב הביצוע. על הבודקים להביע את דעתם על ה-STD ולדווח על הבנה מלאה שלו.

5. ניטור של הבדיקות: התקדמות, באגים, תוצאות הבדיקות וכד'.

6. ייצוג בישיבות.

7. פוקל פוינט של המוצר.

8. עזרה בדיבאג של בעיות וניתוח שלהן.

9. להיות מעודכנים בגרסאות דפדפנים חדשות או בנושאים אחרים הקשורים אלינו.

10. ניהול מאגר הידע (וויקי).


הגדרת תפקיד הבודקים:

1. כאמור למעלה הבנת המוצר "מוצרית" וטכנית. זה עוזר מאוד ובא לידי ביטוי בבאגים איכותיים.

2. הרצה מדוייקת. של ה-STD.

3. תפוקה מסויימת.

4. פתיחה טובה של באגים.

5. יכולת מעבר דינמית בין משימות.



כשאני מספר את האמור לעיל, כאמור להרבה אנשים זה נשמע מוזר. אולי בגלל שאנליסטים (כמעט) ואינם מריצים את הבדיקות. אולי סתם כיוון שהם אינם רגילים לסידור כזה, ואולי הם רוצים לומר ש:
1. בין רגרסיה לרגרסיה, אפשר להנות גם מהרצה ופתירת בעיות טכניות. צודקים!
2. אנליסטים עלולים לאבד את ה"טאצ'" הטכני.
3. אנליסטים עלולים לאבד את החיבור הטכני למוצר.

מצד שני:
1. לטוב ולרע יש יותר אחריות לאנליסט (שלא הייתה לו אם הוא היה עסוק בהרצות).
2. התפקיד מעניין יותר ולא כולל הרצות חוזרות ונשנות של רגרסיות.
3. יש לו אפשרות רבה יותר להשפיע.
4. הכנה לתפקיד ניהולי בעתיד.
אני גם לא מאמין שאיבדנו את הטאצ' או את הקשר הטכני למוצר: אנו כן משחזרים באגים, כן מריצים בדיקות - את הבדיקות שאנליסטים אחרים כתבו כסוג של ריוויו או במקרים של חוסר במשימות אנליסט. בנוסף בכדי להצליח בתפקיד, כאמור, עליהם לדעת היטב את המוצר.

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

מי אחראי למערכת ניטור התקלות?

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

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

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

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

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

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

בתמונה - מחזור חיים של באג.



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

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

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

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

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

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