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

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