→ סדרה
סיפור אהבה עם AI · בייצור · 12 דקות קריאה · רומן גרפי → · Builder's Guide →

Two Suits.

אשתי מנהלת עסק. אני לא מתכנת, אבל אני רואה תבניות. זה מה שקרה כשבניתי לה Exoskeleton של AI.

Act One
המחיר.
01

אשתי צובעת פנים.

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

זה על אשתי.

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

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

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

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

כל איור בטקסט הזה מלווה בארטיפקט אמיתי מהפלטפורמה — מה שהופך את הסיפור ליותר מסיפור.

02

לנבל אין פנים.

הניירת — מפלצת בירוקרטית
— הנבל של הסיפור. אמיתי. —

לכל סיפור טוב יש נבל. לנבל של הסיפור הזה אין פנים.

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

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

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

03

היא הפסיקה להתלונן בערך בשנה השנייה.

פפי שחוקה ליד השולחן שלה מאוחר בלילה
— מה שהנבל עושה בשקט. —

תהיו נשואים מספיק זמן ותפסיקו לשמוע את המילים של בן הזוג שלך. אתם מתחילים לשמוע את השתיקות שביניהן.

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

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

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

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

הסתכלתי על זה קורה במשך כשנה. מספיק זמן כדי להיות בשקט נסער.

04

אני לא מתכנת. אני רואה תבניות.

כריס רואה את הארכיטקטורה בתוך הכאוס
— איפה שרוב האנשים רואים רעש. —

הנה מה שאני עושה.

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

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

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

אחר-כך משהו השתנה.

Act Two
החליפה.
05

AI טוב הוא Exoskeleton.

כריס בחליפת Exoskeleton משוריינת
— ה-Exoskeleton, לפני שהפך לאופנה. —

עבדתי עם AI על הפער הזה הרבה זמן. הרבה לפני שזה הפך לתכונת אופי בלינקדאין.

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

החליפה לא עושה את האדם.
היא נותנת לו לעוף.

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

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

06

בתוך הWorkshop.

Workshop עם שלושה מסכים בחצות
— איפה החליפה משמשת. אמיתי. —

כך נראית העבודה באמת ב-23:00 ביום שלישי.

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

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

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

דיאגרמת היררכיית אורקסטרציית סוכנים
— האורקסטרציה. אופרטור אחד. סוכנים רבים. —

הטריק שגורם לזה לעבוד הוא לא הסוכנים. הטריק הוא שאני החתימה היחידה על כל החלטה. המתכנן יכול להמליץ. המומחים יכולים לבנות. שום דבר לא יוצא בלי שהתוכנית שלי כבר הייתה קיימת באנגלית רגילה. זאת האסימטריה — בין מה ש-AI יכול לטעון לבין מה ש-regex יכול לסרב — שזה הנושא של הסעיף הבא.

07

ארבעת ה-Guards שלא מדברים אנגלית.

סביב כל זה, יש ארבעה Guards.

הם לא AI. הם bash ו-python. שלושים שורות כל אחד. הם יושבים בין הסוכנים לבין כל דבר הרסני — כתיבה למסד נתונים, commit, עריכה של קובץ נושא-משא. הם קוראים קובץ מצב ו-regex. אם קובץ המצב אומר שהמודל עוד לא בדק את הטבלה שהוא עומד לשנות, הקריאה מסורבת לפני שהיא מגיעה למסד הנתונים. אם שתי Layers של הפלטפורמה מפסיקות להסכים על משמעות של שדה, ה-commit מסורב לפני שהוא נוחת.

AI יכול לטעון כל עמדה בצורה משכנעת.
regex אי-אפשר לשכנע.

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

אם תבנו רק אחת מהתבניות האלה לתוכנית ה-AI שלך, בנו קודם את ה-Guards. כל השאר נעשה קל יותר ברגע שה-Guards שם.

08

בניתי לה חליפה.

כריס בונה את חליפת ה-Exoskeleton של פפי במעבדה
— לבנות לה את החליפה שלה. —

היא אף-פעם לא ביקשה ממני לבנות אותה.

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

לא בניתי לה CRM. לא בניתי לה אפליקציה. לא בניתי לה מנוי SaaS שמתחפש לשירות. בניתי לה מקום שבו היא יכולה להניח את העבודה שלה בלי לאבד אותה.

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

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

09

הארכיטקטורה, בחמישה מקומות בו-זמנית.

הפלטפורמה חיה בחמישה מקומות בו-זמנית.

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

דיאגרמת חוזה הזוגיות של חמש ה-Layers
— חמש Layers. מקבל החלטות אחד. —

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

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

שרטוט ארכיטקטורה ביד על נייר
— לפני שכל זה היה קוד. —

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

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

היד של פפי מחזיקה את הטלפון באולם
— הפלטפורמה, ביד שלה, באירוע אמיתי. —

זה — האופן שבו הפלטפורמה סופגת את נפילת ה-WiFi — זה למה כל שאר הארכיטקטורה קיימת. האורקסטרציה. חמש ה-Layers. ארבעת ה-Guards. אותם קונטיינרים בייצור כמו על השולחן הזה. האינטגרציות שנופלות-סגור. כל זה קיים כדי שביום ראשון בנובמבר, ב-19:43, באולם תת-קרקעי בסאני אייזלס, כשה-WiFi נופל באמצע אירוע ושלוש עריכות נכנסות לתור בחושך, היא לא תצטרך לדעת על אף אחת מהן. הארכיטקטורה ספגה את זה. החתונה המשיכה.

הפרט הטכני של איך כל אחד מהחלקים האלה עובד נמצא בBuilder's Guide. הנקודה של המאמר הזה אינה הפרט הטכני. הנקודה היא שזה עובד — ומה זה החזיר.

Act Three
הסימטריה.
10

Two Suits.

כריס ופפי עומדים גב-אל-גב, שניהם בExoskeletons משוריינים
— Two Suits. אותה ארכיטקטורת הגברה. —

הנה החלק שלא ראיתי שמגיע עד שכבר הייתי בתוכו.

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

ה-AI החזיר לי את התפוקה שלי.
הפלטפורמה מחזירה לה את האמנות שלה.

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

Two Suits. אותה ארכיטקטורת הגברה. שני אנשים שזוכים להעביר יותר מהיום בלהיות החלק של עצמם שהם באמת אוהבים.

התחלתי את זה במחשבה שאני בונה לה תוכנה. התברר שבניתי לשנינו דרך הביתה.

11

הקרב שאף אחד לא רואה.

הקרב נגד מפלצת הניירת
— Iron Man + Ironheart נגד הניירת. —

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

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

אף אחד מהניצחונות האלה לא נראה לעין. הם נראים כמו כלום. הם נראים כמו היעדר. השעתיים שהיא הייתה מבזבזת בערב יום ראשון בקרב עם תוכנה גרועה — הן לא קורות יותר. זה הקרב.

פפי כאמנית שהייתה תמיד, משוחררת
— חופשייה להיות אמנית שוב. —

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

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

12

הערבים.

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

וזה, בסופו של דבר, הנקודה האמיתית של כל זה.

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

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

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

היא נמדדת בערבים שאתה מקבל בחזרה.

זה כל הסיפור. כל השאר זה הארכיטקטורה מתחתיו.

אם אתם רוצים להעמיק

יש שני חלקים נוספים לסיפור הזה.

המאמר הזה מספר לכם מה קרה ומה זה החזיר. יש גרסת רומן גרפי שמספרת את אותו סיפור בפאנלים וכיתובים — חמש דקות, מובל-תמונה, אותה קשת. ויש Builder's Guide שמלווה את הארכיטקטורה לעומק: ארבעת ה-Guards, חמש ה-Layers, האורקסטרציה, טופולוגיית הפריסה. דיאגרמות, דפי עזר, הכלים המדויקים שאני משתמש בהם ולמה בחרתי בכל אחד.

אם אתם רוצים באמת לבנות גרסה משלך של החליפה, Builder's Guide מסתיימת בחבילת סקילים ל-Claude Code בשם exoskeleton. חמישה סקילים, פקודה אחת. סביבה מקומית, hooks, סוכנים, פקודות slash, פריסה ל-VPS — מחובר ורץ.

היא מעצבת את הימים שאחרים זוכרים.

אני כותב את הרצפה שמתחת להם.