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

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