שיטת עבודה
Domain Driven Vibe Building
הלקוח לא יודע לכתוב אפיון. הוא יודע לספר על העבודה שלו. אז לפני שאני בונה מסך עם AI, אני בונה איתו שפה משותפת.
אחרי אחד עשר ימים ושני אבות טיפוס לסטודיו אימונים קטן, המסכים נראו מעולה. מתחתם כבר היו שמונה עשרה טבלאות. ואז אמרתי:
כל מה שעשינו עד עכשיו זה פיתוח שמתחיל מהמסכים. אני לא בטוח במודל שמאחורי הקלעים.
כל טבלה נולדה כדי שמסך מסוים יעבוד. אף אחת לא נבדקה מול העסק עצמו. אז ביקשתי מה‑AI לשכוח מהקוד, לקרוא רק את האקסלים, הסרטון וההודעות הקוליות של בעל הסטודיו, ולבנות מזה מודל מאפס.
האקסל שלו כבר החזיק חלק גדול מהמודל, כולל גרסאות של תוכנית, שאליהן אני הגעתי בדרך ארוכה דרך המסכים. בערך שליש מהמודל שלנו היה ניחושים. ובאמצע ישב באג שאף מסך לא הראה: הדרך היחידה לתת למתאמן תוכנית איפסה לו בשקט את הגרפים ואת ההשוואה לאימון הקודם.
הלקוח מדבר, ה‑AI בונה מסכים
הלקוח הרגיל שלי הוא בעל עסק קטן. הוא לא כותב אפיון. הוא שולח הודעה קולית, מצלם אקסל ומספר על יום רגיל בעבודה. ובאמצע הוא זורק משפט כמו ״את זה אני תמיד מעתיק ידנית לטבלה השנייה״. זו דרישה. הוא פשוט לא יודע שהוא אמר אותה.
כלי vibe coding הופכים את זה למסך תוך דקות, ואני בעד. אבל כל מסך צריך נתונים, וה‑AI ממציא אותם תוך כדי. טבלה פה, שדה שם. כל החלטה הגיונית לבד, ואף אחת לא באה מהעסק. ומה שאף מסך לא צריך, אף אחד לא בונה.
אז הפכתי את הסדר.
שלושה בשיחה, שפה אחת
שפה משותפת זה כשהמפתחים ומי שמכיר את העסק משתמשים באותן מילים, בשיחה ובקוד. ב‑vibe building יש עוד מישהו בשיחה, ה‑AI. וכשאין שפה משותפת, הוא ממציא אחת.
המטפלת בקליניקה אומרת ״תור״. אני כותב בפרומפט appointment. המסך מציג ״פגישה״. בקוד מופיע booking. ארבע מילים לדבר אחד, וה‑AI לא יודע שזה אותו דבר.
והמילה מביאה איתה חוקים. מטופל מגיע לסדרת טיפולים. המזכירה רואה מתי הוא מגיע, לא מה המטפלת כתבה. ותור שבוטל שעה לפני אולי צריך חיוב. כשה‑AI בונה customer עם רשימת תורים, לאף אחד מאלה אין מקום.
| העסק | המילה של הלקוח | מה היא מביאה איתה | מה ה‑AI יבנה בלי מודל |
|---|---|---|---|
| קליניקה | מטופל | סדרת טיפולים, סיכום שרק המטפלת רואה, ביטול שאולי צריך לחייב עליו. | customer עם תורים |
| סטודיו כושר | מתאמן | תוכנית שמשתנה עם הזמן, והיסטוריה שאסור לאבד. | user עם פגישות |
| ניהול נכסים | שוכר | חוזה עם התחלה וסוף, שכר דירה, ערבות. | user עם תשלומים |
| חוג לילדים | הורה וילד | מי שמשלם ומי שמגיע. להורה אחד יכולים להיות כמה ילדים. | user אחד שגם משלם וגם מגיע |
אם הלקוח אף פעם לא אמר מילה, היא צריכה סיבה טובה כדי להיכנס למודל.
המודל עובד לשלושתנו. הלקוח קורא אותו ומתקן, כי הוא כתוב במילים שלו. אני מתווכח איתו. וה‑AI מקבל אותו בכל פרומפט, אז השמות נשארים אותם שמות מהטבלה ועד המסך.
ארבע שכבות, מלמטה למעלה
אני עובר לשכבה הבאה רק כשהקודמת מספיק גמורה כדי להתווכח עליה.
ההבדל הגדול הוא שהממשק בא אחרון. כשהמודל ואופן השמירה סגורים, ה‑vibe חוזר במלוא המהירות, וה‑AI כבר לא צריך לנחש מה שומרים ואיך קוראים לזה.
ושני כללים. הראשון: ליד כל דבר במודל כתוב מאיפה הוא הגיע. של הלקוח אם הלקוח אמר או הראה אותו, שלנו אם זה ניחוש שלי או של ה‑AI. ככה ניחוש לא הופך בשקט לדרישה. השני: מסך לא מוסיף דברים למודל. אם חסר משהו, אני מוסיף אותו בכוונה, עם הסיבה.
מתי לוותר
יש לזה מחיר. בהתחלה אין מה להראות על המסך, וזה מלחיץ את הלקוח וגם אותי. אם עובר שבוע בלי שום דבר להראות, זה הסימן לעצור ולהראות משהו, גם אם הוא לא גמור.
ולדמו, דף נחיתה או כלי של מסך אחד, vibe building נקי זו הבחירה הנכונה. הכלל שלי: אם המערכת תחזיק נתונים אמיתיים של לקוח לאורך זמן, קודם מודל.
הלקוח לא יודע לכתוב אפיון, והוא גם לא צריך. התפקיד שלי הוא לרשום את המילים שלו ולהפוך אותן למודל, לפני שה‑AI ימציא מילים אחרות.