כשכל אחד יכול לבנות אפליקציה, מה מבדיל אפליקציה טובה מאפליקציה מיותרת?
האחיין שלי יודע לבנות אפליקציות. עד לא מזמן זו הייתה מיומנות נדירה, שדרשה שנים של לימוד שפות תכנות (programming languages) ושימשה יתרון תחרותי ברור. היום, בעולם של בינה מלאכותית (AI), גם מי שמעולם לא כתב שורת קוד יכול לתאר במילים מה הוא רוצה ולקבל אפליקציה עובדת בתוך שעות.
זה מעלה שאלה פשוטה: אם הקוד כבר אינו החסם, מה כן מבדיל בין אפליקציה מקצועית לאפליקציה שאף אחד לא ישתמש בה? הטענה במאמר הזה היא שהתשובה אינה טכנולוגית. היא נמצאת באפיון (specification) ובאופן השימוש (user experience), שמעצבים לפני שנוגעים בכלי כלשהו.
מה השתנה: הקוד כבר לא מחסום
כלי AI מודרניים מתרגמים תיאור בעברית או באנגלית לקוד עובד: מסך כניסה, מסד נתונים (database), שליחת התראות, חיבור לשירותים חיצוניים. מה שפעם דרש צוות פיתוח וחודשים של עבודה מתבצע כיום בשיחה אחת, בתוך שעות ולא שבועות.
זה שינוי אמיתי ומבורך. רעיונות שנתקעו כי לא היה מי שיבנה אותם יכולים סוף סוף לצאת לדרך, ובעלי עסקים, מורים, יוצרים ויזמים כבר לא תלויים במפתח (developer) כדי לבדוק אם הרעיון שלהם עובד. אבל כאן עומדת שאלה חדשה: האם הסרת מחסום אחד פירושה שכל הדרך נפתחה?
הבעיה החדשה: קל לבנות, ולכן קל לבנות דברים מיותרים
כשהבנייה כמעט לא עולה כלום, מספר האפליקציות גדל, אבל איכות ההחלטות שמאחוריהן לא גדלה איתן. כל אחד יכול לבנות אפליקציה לניהול משימות, ובדיוק בגלל זה כמעט אף אחד לא צריך עוד אפליקציה לניהול משימות. הקושי עבר מהשאלה "האם אפשר לבנות את זה?" לשאלה "האם צריך לבנות את זה, בשביל מי, ומה יגרום להם לחזור אליה מחר?"
הכלי שמייתר את הצורך בתכנות פותר בעיה אחת בלבד, ולכן אינו מספיק. הוא נותן מנוע חזק, אבל לא כיוון. מנוע חזק בלי כיוון רק מביא אותך מהר יותר ליעד שגוי: אפליקציה שאף אחד לא צריך.
אפיון: ההחלטות שהקוד לא יכול לקבל במקומך
אפיון (specification) הוא התשובה לשאלה מה האפליקציה עושה, בשביל מי ובאיזה סדר. הוא כולל כמה החלטות שאף מודל לא יכול לנחש במקומך:
מי המשתמש (user): אדם מסוים עם בעיה מסוימת, לא "כולם".
מה הפעולות המרכזיות (core features): וגם מה נשאר בחוץ בכוונה.
מקרי קצה (edge cases): מידע חסר, שגיאה, משתמש שטעה בפעולה.
מדד הצלחה: מה צריך לקרות כדי שנדע שהאפליקציה עובדת באמת.
כלי AI יבנה בדיוק את מה שתבקש. אם הבקשה מעורפלת, התוצאה תהיה מעורפלת: אפליקציה שנראית מושלמת בהדגמה וקורסת מול משתמש אמיתי. לכן אפיון טוב הוא הקלט האיכותי ביותר שאפשר לתת ל-AI, והוא מה שהופך את מהירות הבנייה ליתרון ולא לסיכון.
אופן השימוש: כאן אפליקציות מצליחות או נעלמות
אפליקציה מקצועית נמדדת בשאלה אחת: האם אנשים משתמשים בה בלי שמבקשים מהם. זה תלוי בחוויית המשתמש (user experience): כמה צעדים נדרשים כדי להשלים משימה, האם ברור מה לעשות במסך הראשון, והאם היא מתאימה להרגלים של המשתמש ולמכשיר שבידו.
אפליקציה שמיועדת לאנשים מבוגרים צריכה כפתורים גדולים וטקסט ברור. אפליקציה לצוות עסוק צריכה לחסוך זמן כבר בשימוש הראשון. את זה לא בודקים בקוד, אלא בשיחה עם אנשים אמיתיים, בצפייה בהם משתמשים באב-טיפוס (prototype) ובתיקון לפי מה שנראה. הבנה של אנשים ושל התהליך שהם עוברים היא ידע אנושי, והיא הנכס המרכזי בעולם שבו הבנייה זולה.
מה נשאר לאדם בעולם של AI
האחיין שלי יכול לבנות אפליקציה מהר, ועם AI גם מי שלא יודע לתכנת יכול לעשות זאת. ההבדל בין אפליקציה מצליחה לבין אפליקציה נשכחת לא ייקבע לפי השליטה בשפת תכנות, אלא בשלושה דברים: הבנה עמוקה של הבעיה, אפיון מדויק של הפתרון, ובדיקה כנה של אופן השימוש מול משתמשים אמיתיים.
כשהבנייה הופכת לזולה, החשיבה שלפניה היא שנעשית יקרה. מי שיתחיל מהשאלה "למי זה שימושי ולמה", ורק אחר כך יפנה לכלי, יבנה אפליקציה שאנשים באמת יבחרו להשתמש בה. כל השאר הוא עוד אפליקציה בחנות.
