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

בשנה הבאה נשב על המרפסת, או על הספה בסלון, או על המיטה בחדר השינה. בעצם נשב על כל דבר חוץ מהכסא במשרד. מה לעשות, זה מה יש. לעומת זאת אין הרבה דברים אחרים. אחד מאותם הדברים שאין, זו הרמת הכוסית המסורתית לכבוד ראש השנה.
מתנות לחג דווקא יש, ועוד אפילו עם שליח עד הבית. גם את נאום הקלישאות הידוע של המנהל הבכיר יש, אבל בזום. מה שבאמת חסר זה רק הפריסה החגיגית שעושים, עם תפוח בדבש ויין ורימונים ואחלה עוגות שבעולם. זה דווקא כן חסר לי.
אבל אם אין עוגות, אז בא נדבר על הקלישאות. מדהים איך שכל הנאומים האלו נשמעים אותו דבר, בכל חברה ובכל שנה. בדיוק אותם הדברים. מזכירים רק את הדברים הטובים שהיו, מחליקים את הפדיחות, והעיקר, מבטחים המון הבטחות סרק לשנה החדשה. הבטחות הבחירות של ההיי-טק, רק שלא תבחר לעבור לחברה אחרת.
כל שנה אותו סיפור. הבטחות על גבי הבטחות איך אנחנו נשתפר בשנה הבאה. אתם תראו שאנחנו נקצה זמן מיוחד לשפר את התשתיות. ונעשה סדר בבלאגן. ניתן לכולם יום בשבוע לעסוק בפרוייקטים מהצד. נפנה זמן ומשאבים לחדשנות ויצירתיות, ככה שלכולם יהיה אשכרה כיף לבוא לעבודה. לבוא במובן הוירטואלי, כמובן.
ובסוף? בסוף כל ההבטחות מתגשמות. לא בדיוק, אבל בערך מתגשמות.
כי באמת יש יום בשבוע לעסוק בפרוייקטים מהצד. רק שהיום הזה הוא יום שישי. והפרוייקט מהצד, הוא מהצד האפל של הלקוח שפתאום נזכר שבעצם הוא צריך עוד שבע עשרה פיצ'רים שאף אחד לא תכנן אותם ופתאום נהיה לחץ.
ואז גם באמת יש המון מקום ליצירתיות וחדשנות. יצירתיות מופלאה באיך לדחוס עבודה של שלושה חודשים לשבוע וחצי. וחדשנות פנטסטית של שיטות עבודה בסגנון "קמפל ורוץ לרשת", או כמו שהחבר'ה אומרים: מספיק שזה התקמפל על המחשב שלי, אין צורך בעוד סבב בדיקות. באמת שלא נגעתי בשום דבר חשוב. ומה כבר יכול להיות. יאללה צ'ק-אין.
התוצאה המתבקשת של היצירתיות והחדשנות האלו היא שפתאום יש זמן לעשות סדר בבלאגן, כמו שהבטיחו לנו. אלא שלא מדובר בבלאגן של שנה שעברה, מדובר בבלאגן החדש שנוצר בגלל שלא היה זמן להריץ את כל הבדיקות לפני שהעלנו את שבע עשרה הפיצ'רים החדשים לפרודקשן. יאללה בלאגן.
כי מה לעשות, שום הבטחה ושום השתדלות לא יכולה לעמוד כנגד החוק הראשון של התוכנה: הקוד תמיד מסתבך (כן, כן, גם על זה כבר כתבתי פעם. לפחות התאפקתי חצי פוסט עד ששמתי קישור פנימי, ספגטיפיקציה. אגב שם קראתי לזה החוק השני של התוכנה. אבל זה היה מזמן, וכבר אין לי מושג מה היה אמור להיות החוק הראשון, מוזמנים להציע…).
אכן, אין עצה ואין תבונה כנגד הגדילה וההסתבכות האינסופית של הקוד. אתה מנסה להוסיף פיצ'רון פשוט וקטן, שהארכיטקט הבטיח שזה לא ייקח יותר מכמה דקות, ומוצא את עצמך אחרי שבוע משכתב שלושת רבעי פרוייקט. או כשאת סוף סוף מוצאת קצת זמן פנוי לתקן איזה באג שולי וחסר משמעות, והתוצאה זה קריסות ספורדיות של המערכת וארבעה באגים קריטיים חדשים שיושבים עליך. מוכר? אז יאללה לדבג.
אבל גם כשכבר מצליחים לקבל החלטה להעיף איזה פיצ'ר מהתוכנה, כי אף אחד לא מבין בכלל מה הוא עושה, פה נתקלים במכשול בלתי צפוי. תמיד קופץ איזה חכמולוג מצוות התמיכה בלקוחות, ואומר שמה פתאום, ואי אפשר ואיך אתה מעיז. יכול להיות שאי שם בערבות סיביר או בדרום סודן מישהו עדיין משתמש בזה, ואולי בשנה הבאה יבוא לקוח שדווקא כן ירצה? ובכלל, איך אתה יודע שלא משתמשים בזה? לך תוכיח שאין לך אחות…
ואז אותו חכמולוג זורק את מילות הקסם שסותמות את הגולל – "Backwards compatibility", דהיינו "תאימות לאחור", או בעברית מדוברת: אכלת אותה. בדומה לכלל השחמטאי הידוע "נגעת – נסעת", גם אצלנו יש את כלל ה- "מימשת – נתקעת". ברגע שהכנסת פיצ'ר למוצר שיצא ללקוחות, עברת את נקודת האל-חזור. הוא כבר לא יצא משם אף פעם. אז פלא שהקוד רק מסתבך?
מילא העובדה שצריך להמשיך ולתחזק את הפיצ'ר העלוב, ולהשקיע זמן ומשאבים לוודא שהוא לא נשבר. הבעיה היא שבגלל השטות הזאת של התאימות לאחור לפעמים הקוד נהיה כל כך מסובך, עד שמוותרים על פיתוח של דברים חדשים כי זה כבר נהיה מסובך מדי. ה"תאימות לאחור" היא למעשה הישארות מאחור.
זו הסיבה שגם בשנת 2358, במפעל ליצור חלליות אי-שם על כוכב מאדים, אנחנו עדיין נצטרך לשלוח פקס לקופת חולים או לבנק. זה לא שהם לא רצו לעבור למייל. הם פשוט לא הצליחו לבטל את התמיכה בפקס, והתוכנה הייתה מסובכת מדי בשביל לתמוך גם בפקס וגם במייל. אז יאללה, נשלח פקס מהחללית.
והדבר הגרוע ביותר, הוא שיש אנשים שמשום מה חושבים שכמה שיותר מסובך יותר טוב. לך תבין.
אבל יש גם דבר אחד טוב בכל הסיפור הזה שהקוד רק הולך ומסתבך, לפחות אפשר להיות בטוחים שתמיד תהיה לנו עבודה.
והמהנדס החכם אומר: פשטות היא תכונה חשובה אך היא דורשת עבודה קשה על מנת להגיע אליה וחינוך על מנת להעריכה. וכדי לסבך את העניינים: מורכבות נמכרת יותר טוב (א. דייקסטרה)
The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible
2 תגובות בנושא “#42 עוד תראה, עוד תראה, כמה קוד יהיה”