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

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

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

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

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


הנה אנלוגיה מעניינת, אחרת קצת, ליצירת תוכנות עם AI:

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

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


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

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

50% דינוזאור 50% צפרדע.

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

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

איך זה יכול להיות שהם מרגישים 50% בעלות על משהו שאין להם מושג איך הוא בנוי?


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

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

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

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

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

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

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

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

מעצבים שמעודדים שימוש בכלי וויב קודינג בצורה לא מודעת חופרים לעצמם ולקולגות שלהם את הקבר. בשנייה ש99% יהיה DNA של צפרדע ו1% דינוזאור אנחנו נידונו לבינוניות מתמדת - הממוצע הגיאומטרי של התווים של כל הממשקים בעולם שהAI אכל.

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

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

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

אנחנו צריכים כלים שלא יגרמו לנו לחשוב שאנחנו בשליטה על משהו שאנחנו לא.

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

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

איך נראה כלי שמלמד אותנו איך באמת התוכנה שלנו בנויה ועוזר לנו ללמוד את השיקולים של החלטה כזו או אחרת?

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

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