בסיפור "עצות מן המולדת לנוסע האמריקני" מתאר ויליאם סארויאן דוד זקן שנותן לאחיינו צרור עצות לפני שהלה יוצא לנסיעה ארוכה. האחיין מתעלם מכל העצות, לעיתים פועל ממש הפוך מהם, ונהנה מאוד מהמסע.
ובכל זאת, החודש פרשתי מאינטל אחרי קריירה של 35 שנים, ואיזו דרך מתאימה יותר לתמצת את חוכמת החיים שרכשתי, מאשר ברשימה של עצות? אם לא תשתמשו בהם, לפחות זה יתן לכם רעיונות מה לעשות ההפך. הרי לפניכם, אם כך, רשימה של תובנות שאספתי עם השנים. על חלקן כבר כתבתי; סימון של [*] מציין שיש מראה מקום בתחתית הטור למאמר רלוונטי בנושא. הרשימה לא ממוינת לפי שום סדר חוץ מקטגוריות כלליות. וכמובן שהחשיבות של כל רעיון תלויה בהקשר. אני מניח שזה לא כל מה שלמדתי עם השנים – אבל יש פה מספיק לכרגע...
אם אחוז הבאגים שנדחים הוא מאוד נמוך, יש להניח שהבודקים חטפו על הראש על כל באג שנדחה, והם (א) משקיעים יותר מדי זמן לוודא שמה שנראה כמו באג הוא אכן באג, במקום להריץ עוד בדיקות, או (ב) לא מדווחים על באגים אם יש להם חשש קל שאולי זה לא באג. כלומר: יש באגים שמתגלים אבל לא מדווחים.
מצד שני: אם אחוז הבאגים שנדחים הוא גבוה זה מצביע על חוסר ידע במוצר ובבדיקות.
כמה זה "אחוז סביר"? חוק האצבע שלי זה 15%, מבוסס על התוצאה לאורך מספר פרויקטים בקבוצת בדיקות שנחשבה טובה. 2% זה ממש מעט. 25% זה ממש הרבה. אבל תחליטו בעצמכם – על פי ההיסטוריה של הארגון או המוצר שלכם.
בגדול, מהנדסים (במיוחד מהנדסים ישראליים) לא אוהבים כתיבת מסמכים וביצוע תהליכים ככתבם וכלשונם. אפילו אני לא. אז: אם אין מחויבות מלאה של ההנהלה של כל הארגון להטמעת תהליכים – כולל דפיקה על השולחן – אפשר פחות או יותר להתייאש מזה כבר עכשיו. רק כשהמהנדסים יבינו שאין מרחב תמרון סביב הדרישות האלה ושאין טעם להתווכח, רק אז זה יקרה. ולא מספיקה דפיקה אחת על השולחן. ההנהלה הראשית צריכה להופיע לסקירות חשובות, לעודד ולהחמיא לביצועים ולדרוש הסברים כשאנשים לא עובדים לפי מה שהוגדר.
יצא לי לדחוף חוטים בכמה ארגונים. כללית אפשר להגיד שזו לא הייתה הצלחה מסחררת, ובמקרים שזה כן הצליח זה היה כשהמנהלים הודיעו לארגון באופן חד משמעי שנגמרו התירוצים ושמעכשיו עובדים לפי הנהלים. בפרויקט האחרון שלי באינטל עבדנו על מוצר רפואי שבלי תהליכי איכות מסודרים ומתועדים אי אפשר למכור. בפרויקט הזה הייתה תמיכת הנהלה מלאה, מוחשית, עם נראות גבוהה, וממש היה קל לדחוף את החוט לאורך כל הדרך.
אל תנחשו.
תלכו לארגון הפיתוח ותשאלו: "איזה פעילויות בדיקה הכי יעזרו עכשיו"? יש להניח שנקודות מסוימות במוצר עדיין בשלבים של בדיקת היתכנות וניסיונות מה עובד הכי טוב. עוד עיניים וידיים שמנסות את האופציות השונות יאפשרו לפיתוח להחליט מה האלגוריתם \ הפרוטוקול \ הטכנולוגיה \ ה-whatever שמתאימים במיוחד לפרויקט שלכם.
לעומת זאת, מציאת באגים באזורים אחרים במוצר מייצרת רעש וממילא יתעלמו מהם - כי הפיתוח מרוכזים בלנסות להבין מה האלגוריתם \ הפרוטוקול \... וכו'. לא רק זה: אחרי שתהיה החלטה על הכיוון הטכנולוגי, יש סיכוי טוב שעוד כל מיני דברים ישתנו. למשל ה-UI, ה-API ושאר ירקות, וכל הבאגים שפתחתם יסגרו כלא רלוונטיים.
עוד ערך מוסף מפעילות תומכת פיתוח שכזו הוא שקבוצת הבדיקות תלמד הרבה פרטים על הטכנולוגיה שבבסיס המוצר, וההתרכזות במה שמעניין את הפיתוח תקנה לקבוצת הבדיקות מוניטין של קבוצה שעוזרת להתקדמות המוצר ולא עסוקה רק בביקורת.
צריך להתאמן על מנת להיות כותב טוב, ויש ערך מוסף למהנדסים שכותבים טוב [*].
בקיצור: תשקיעו בלתקתק מהר.
ובלי שגיאות כתיב – שזה גם סתם פדיחה, במיוחד היום שיש spell checkers - וגם עלול להגמר בתוצאות מפתיעות שלא להם התכוונתם. אז לפני שלוחצים על Send או Submit – תקראו את הטקסט עוד פעם אחת לראות שלא פספסתם משהו. נכון גם לאימיילים, הודעות וואטסאפ וכו׳.
ככה בונים מוניטין.
באג שנפתח על ידי בודקים עם מוניטין חיובי מועבר מיד לטיפול הפיתוח. באג שנפתח על ידי בודקים עם מוניטין שלילי יעבור קריאה מדוקדקת, קפדנית ואולי אפילו קנטרנית ויוחזר למדווחים עם בקשות לעוד פרטים והרצות נוספות.
ולסיום, התוספת האישית שלי לסדרת החוקים האלמותית של מר מרפי:
באגים שלא ניתנים לשחזור ישתחזרו בקלות אצל הלקוחות
צחוק צחוק, אבל מה שנובע מחוק זה הוא שכדאי לדווח על באגים שלא משתחזרים בקלות, על מנת שכל פעם שהבאג קורה (וזה יכול להיות בהפרש של חודשים), תהיה רשומה במערכת ניהול הבאגים שאפשר לצרף אליה מידע חדש. אם נראה שהבאג חוזר על עצמו מספר פעמים, זה מספק הצדקה להשקיע משאבים ולצוד אותו, למרות שקשה לשחזר אותו.
חומר קריאה נוסף
כלים [א]:
The Home-grown Tools Syndrome:
https://testprincipia.com/presentations-and-papers-on-software-testing/#heading5
Build VS Buy: https://www.informit.com/articles/article.aspx?p=21775 (by Allen Eskelin)
כלים [ב]:
כללי כלים:
https://testprincipia.com/looking-for-trouble/#heading7
ניהול [ג]:
תיקון ספונטני:
https://testprincipia.com/looking-for-trouble/#heading19
כישורי הנדסה [א]:
וזאת לתעודה:
https://testprincipia.com/looking-for-trouble/#heading4
כישורי הנדסה [ד]:
רשימת קריאה מומלצת:
https://testprincipia.com/other-testing-stuff/#stuff1