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

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