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

מתי בפעם האחרונה עשית משהו בפעם הראשונה?
אני! בשבוע שעבר. מכרתי רכב פעם ראשונה בחיים שלי, ואני חי לא מעט שנים עם לא מעט רכבים. אלא שחצי מהקריירה ההייטקיסטית המפוקפקת שלי עברה עלי עם רכבי ליסינג, ולפתע לפני כתריסר שנים עברתי לרכבים פרטיים, אותם לא העזתי למכור.
למה? כי אף פעם לא עשיתי את זה קודם, אז לא מכרתי. לא ידעתי שיש בי את המסוגלות למכור רכב.
ובמהלך י"ב שנים אלו, טיפלתי ברכבים שלי כמו שכל הייטקיסט בעל ניסיון מטפל בתוכנה שלו. כלומר לא עשיתי שום דבר יזום, דחיתי כל מה שאפשר לדחות, טיפלתי בתקלות רק ברגע האחרון, או אפילו קצת אחריו. ובעיקר הזנחתי והנחתי שהכל יהיה בסדר.
וגם רכבי היקרים שיתפו פעולה והתנהגו כמנהג נהגם והפכו לתוכנה. האחד היה בסדר עד שפשוט יום אחד הוא קרס כבאג ביום פרודקשן, והפך ממערכת עובדת ומתפקדת לטוטאל-לוס ולבראנץ' שאין לו מקמפלים.
והשני, הלך ודעך לו מגירסה לגירסה ומטסט לטסט, עד שהפך לכמעט בלתי שמיש. אני לא ממליץ לאף אחת ליסוע ממרכז הארץ לשיזפון בשיא הקיץ ברכב חסר מראה שמאלית ובלי מזגן. ככה זה שיש לך פרוייקט מוזנח, עם תשתיות טובות, אבל אף אחד לא טורח לתקן את הבאגים, והם הולכים ומצטברים עד למצב שהגיעו באגים עד נפש, או עד הרכב.
ובכן, לאחר מאמצים עליונים, אזרתי קוד וגבורה ומכרתי את הרכב. כן, כן, מישהו קנה אותו אֶס-אִיז, בלי מראה ובלי מזגן. שהוא ייחנק עכשיו.
אבל במהלך אותה נסיעת-סאונה חמה ומעיקה לבסיס באי-שם, עלו בי מחשבות נוגות על איך הגענו למצב הזה.
כמה יכול להיות מסובך למצוא מראה אחרת לרכב? מסובך!
מסובך כמו להחליף מודול מאובק וצדדי ממרתפיו של פרוייקט שחי כבר כמה שנים, ואף אחד כבר לא זוכר מה היה ואיך היה.
מה עושים? מחפשים בדוקומנטציה ובאינטרנט, ובסוף מגלים שכיון שמדובר ברכב שנקנה ממישהו שלא עבד בכלל לפי הפרוסס, והביא את הרכב ביבוא אישי, שאין בכלל את הדגם הזה בארץ. אין קוד ואין מראה!
מישהו שחרר פאץ' אי שם לפני עשרות ספרינטים, ואני אנה אני באג?
אז מדבגים. ושואלים את המוסכניק הסיניור לעצתו. והוא, שכולו שקוע בדיבוג רכבים לבסוף מוצא איזו פתרון מוזר, דרך גורם שלישי שמוכן לספק את המודול הנ"ל כולל פיתוח בדיקות והדבקות במחיר בו אנשים רגילים קונים רכב שלם.
שכן בחיים לעיתים השלם גדול מסכום חלקיו, ובתוכנה בוודאי שהפרוייקט מסובך מסיבוכי מודוליו, אבל בעולם החלפים, סכום החלקים גדול (ובהרבה) מסכום השלם.
ומה יעשה עבדכם הלא-נאמן, הקטן שבמתכנתי הפרוייקט? הרי פראייר אני לא אצא.
עושים פאץ' על פאץ'. אם אין מראה, במקום זה מדביקים מראה פנורמית קטנה על שברי המראה המקורית, שמים כמה אזיקונים ויאללה, הכל עובד.
אמנם הנהיגה בתוכנה המפוצ'פצ'ת דורשת את הטיית הצוואר בזווית בלתי בריאה בעליל, ורוב הזמן הדבר היחיד שהפיצ'ר המדובג עושה זה לשדר תמונה פנורמית של הצמיג השמאלי האחורי. אבל חוץ מזה – עובד פרפקט!
ואיך אני יודע שהכל עובד? כי הרכב כמו שהוא על גלגליו ועל פיצ'פוצ'יו עבר את סבב הבדיקות המקיף והמלא של ארגון הוולידציה המוסמך. או במילים אחרות הוא עבר טסט.
אשכרה טסט-דריבן דיבלופמנט!
מה זה אומר על איכות הוולידציה שלנו? אני אסכם זאת במושג הידוע מעולם התיכנות ההישרדותי: עיקרון התדהמה המינימלית הטוען כי "התדהמה מהימצאותו של באג בתוכנה הולכת ופוחתת ככל שרמת ההיכרות עם תהליכי הבדיקות והאוטומציה עולה".
ומה זה אומר על המוצר שלנו? שלמרות הכל, ולמרות הקוד, בסוף מישהו קנה אותו.
והמהנדס החכם אומר: בתוכנה אתה לא מבין דברים, אתה רק מתרגל אליהם (ג'ון פון ניומן)
מעולה!
אהבתיLiked by 1 person