#98 התיאוריה של הכל

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

ראיתי איפשהו תמונה של ספל קפה שכתוב עליו: "אני לא צריך את ChatGPT, אשתי כבר יודעת הכל".

אז זהו שלא. זה לא פוסט על בינה מלאכותית, ובטח של פוסט על אישתי. אבל זה כן פוסט על אלו שיודעות ויודעים הכל. אני נורא אוהב את החבר'ה האלה שתמיד בטוחים שהם יודעים הכל. והם גם יודעים הכי טוב. וחוץ מזה שהם יודעים הכל והכי טוב, הם גם חייבים להראות את זה לכולם.

מיהו מומחה?

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

מומחה הוא אדם שעשה את כל הטעויות האפשריות בתחום מומחיותו

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

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

תמציתה של הארכי-טקטורה

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

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

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

תיאוריה לכל באג ומועד

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

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

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

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

אומנות החירטוט

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

אגב, תופעה מרתקת נפוצה אף יותר בקרב אנשי המגדר הניהולי, שם היא מוכרת יותר כ"חוק הטריוויאליות של פרקינסון" מומלץ לעיין שם (וגם ב FAQ של FreeBSD).

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

ג'ון פון נוימן על המתמטיקה, ואני מכיל זאת גם על מגזרנו הצנוע:

בפיתוח תוכנה אתה לא מבין דברים אתה רק מתרגל אליהם.

והמהנדס החכם אומר: בתיאוריה – יודעים הכל אבל שום דבר לא עובד. בפועל – הכל עובד אבל לא יודעים למה (אלברט איינשטיין)


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

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

Image by beate bachmann from Pixabay

4 תגובות בנושא “#98 התיאוריה של הכל

כתיבת תגובה