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

כידוע לקוראי הפינה הנאמנים, ישנם שני משפטים עקרוניים העומדים בלב-ליבה של תעשייתנו היקרה ועל פיהם יסוב וינוע סביב צירו כל עולם התוכנה.
המשפט היסודי של ההייטק קובע כי "כשם שאין נהר בלי מים, כך אין תוכנה בלי באגים".
משפט אי-השלמות התוכנתי קובע כי "בכל תוכנה, בכל רגע נתון, קיים לפחות באג אחד שאינו ניתן לשחזור".
אם כן, בהתאם למשפטים יסודיים אלו עתידנו מובטח, וג'וב-סקיוריטנו שריר וקיים. באגים תמיד יהיו, ולכן תמיד יצטרכו מישהו שיתקן אותם. וכיון שמרבית תיקוני הבאגים מייצרים לפחות באג אחד חדש, אם לא יותר (ע"ע באג רקורסיבי ובאג אקספוננציאלי), עתידנו ועתיד ג'וניורנו וג'וניורי ג'וניורנו מובטח, לפחות עד שהגבינה המלאכותית תחליף אותנו.
ארבעת הקושיות
אז לאחר שהבטחנו ואבטחנו את גזרתנו התעסוקתית, אפשר להסב על מושבנו ולעסוק באותן ארבע קושיות מפורסמות המלוות כל באג באשר הוא באג, ותשובתן בצידן. ורבי ארכי-טקט היה נותן בהן סימנים: מה, מי, למה וכמה.
מה קרה? שאלה זו נאמרת במנגינת זלזול, בסגנון "אפשר לחשוב, מה כבר קרה, אוי אוי אוי" וחבריו. שכן ראשית יש לשאול האם הבאג הינו בכלל באג, והאם הוא עומד במבחן הבאג הסביר, והאם למישהו בכלל איכפת. וכמובן – האם הוא משתחזר.
במידה וטכניקות ההתחמקות אינן עוזרות והפרודקטריון אישר שאכן זהו באג, עוברים לשאלה השנייה.
מי אשם? זוהי תגובה אוטו-רפלקסיבית של כל מתכנת בעל ניסיון. על פי הכלל הראשון של התכנות ההישרדותי, לפני שנוקטים בכל פעולה אקטיבית שעלולה לסכן את מעמדו ויוקרתו של המתכנת, יש למצוא מי אשם במה שקרה ובמה שעוד יקרה. לאחר שנמצא הקורבן, ניתן לעבור לשלב הבא.
למה זה קרה? או כמו שקוראים לזה בז'רגון המגזרי – מה הרו"ט-קוא"ז, כלומר מה הסיבה שגרמה להתרחשותו הבלתי סבירה בעליל של הבאג. התשובה לשאלה זו עלולה לקחת זמן. או ליתר דיוק היא תיקח הרבה זמן. שכן פה נדרש תהליך דיבוג ארוך-טווח, בו לאף אחד, ובעיקר למנהלת, אין מושג מה מתבצע. ולכן זהו הזמן האופטימלי להשלים כמה בינג'ים על חשבון העבודה, לטפל בחשבונות ולסגור חשבון עם ההיא מהצוות השני.
כשנמאס מכריזים על הרו"ט-קוא"ז שהיה ידוע לך כבר מהרגע הראשון, ועוברים לשלב השאלה הזהה.
כמה זמן זה ייקח לך? על פי מחקרים אקדמאיים מוכחים, זו השאלה שנשמעת הכי הרבה פעמים בחדרי העינויים של ההיי-טק המכונים בטעות חדרי ישיבות. והתשובה לשאלה זו היא תשובה שאינה תלויה בדבר. פה, כידוע לקוראות הפינה הנאמנות, יש לשמור על עמימות קונסטרוקטיבית, ולפזר ערפל קרב כיד המרג'. ובכל מקרה לא להתחייב. גם ככה המנהלת תעדכן את הפרוסס בערך שאין לו קשר לתוכנה, לתוכנית העבודה, או למציאות.
וכל מה שנותר לנו לאחל לכל מתכנתי ישראל, בכל מקום שהם: קומפילציה מוצלחת וגאולה קרובה.
והמהנדס החכם אומר: כנגד ארבעה מתכנתים דיברה תוכנה, אחד תותח, ואחד פרודקט ואחד טמבל ואחד שאינו יודע לכתוב קוד.
Photo by shraga kopstein on Unsplash