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

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