חמש תשובות על שילוב AI בפיתוח
דה מרקר פרסמו כתבה גדולה על המצב של התעשייה בעקבות מהפכת ה AI וחלק משמעותי מוקדש שם לפיתוח. אני רוצה להתיחס ל-5 ציטוטים שעלו משם בעיקר כדי להוסיף צבע וקונטקסט כי הסיפור הרבה פחות ברור ממה שהוצג.
1. גיוס ו AI
"מועמד לעבודה שינסה היום לפתור תרגיל תכנות שאתן לו בכוחות עצמו על ידי כתיבת קוד ידנית, ייפסל מבחינתי אוטומטית".
שאלות טכניות בראיונות עבודה מכילות מספר מטרות. שלוש מרכזיות הן: משימות ביצוע שמטרתן לראות שהמועמד מרגיש בנוח עם הכלים ומצליח ליצור משהו עובד, משימות תיאוריה שמטרתן לראות שהמועמד מכיר את עולם התוכן הרלוונטי ומשימות יצירתיות שמטרתן להבין איך המועמד חושב על בעיות. הציטוט שהתחלתי איתו מתיחס למשימות ביצוע, בין כאלה שמבוצעות במהלך הראיון על מחשב החברה או כאלה שמועמד מקבל לפתור בבית.
אין ספק שמשימות ביצוע בראיונות עבודה צריכות להשתנות. מאחר ואנשים כבר לא מקלידים קוד בעבודה ברור שבמשימה כזאת גם המועמדים ישתמשו בסוכני קידוד. אבל הדבר החשוב הוא לא אם המשתמש הפעיל תוכנה X או Y אלא שהוא סיים את המשימה. משימות ביצוע היום צריכות להשתנות ובהרבה חברות כבר השתנו. במקום לבדוק אם הצלחת לכתוב לולאה אנחנו ניתן למועמד לכתוב מערכת שלמה ונבדוק את איכות קוד המערכת. שימוש נכון בכלים משתקף בקוד: קוד מתועד, עם בדיקות ברמה גבוהה שבאמת בודקות את מה שהקוד עושה, ללא כפילויות ועם אבסטרקציות נכונות, אחידות חזקה וטיפול נכון בשגיאות אמיתיות ובלי תכנות דפנסיבי וטיפול בשגיאות מדומיינות.
מה שיפסול את המועמד בציטוט הוא לא ההחלטה לכתוב קוד ידנית אלא שהקוד שהוא יכתוב לא יעמוד בסטנדרטים ולא ייכתב בזמן המוקצה למשימה. מועמד דומה שפשוט ידביק את תיאור המשימה כפרומפט ל AI גם ייכשל כי הקוד לא מספיק טוב. משימת הביצוע בודקת את מה שהיא תמיד בדקה - שהמועמד יודע לתרגם רעיונות והבנה לקוד, פשוט עכשיו ההיקף מסנן אוטומטית את מי שלא ישתמש ב AI.
2. הפרמטר החשוב
"אתה כמובן רוצה לדעת שהמועמד מבין ארכיטקטורת תוכנה, אבל יותר חשוב לי שהוא יידע להפעיל אייג'נטים ולבנות אייג'נטים שיפעילו אייג'נטים אחרים"
כשאנחנו שומעים כזה ציטוט כדאי לשים אותו בקונטקסט. יש חברות שמה שחשוב להן זה יכולת הביצוע. יש חברות אחרות שמה שחשוב להן זה ארכיטקטורה נכונה. במקומות אחרים מה שחשוב זה פתרונות יצירתיים שלא נוסו בעבר. אם מה שמעניין אותך הוא יכולת ביצוע ברור שאתה תחפש מועמד שיודע להפעיל אייג'נטים, בדיוק כמו שלפני חמש שנים אותו מנהל היה יכול להתראיין ולהגיד שיותר חשוב לו שהמועמד יודע לבנות מערכת עובדת מאשר להסביר את התיאוריה של עץ אדום שחור.
להציג ציטוט אחד של מנהל פיתוח ששם דגש על פרמטר אחד לא אומר שכל התעשייה מחפשת את הפרמטר הזה או שהפרמטר הזה הוא הדבר הכי חשוב באופן כללי בעבודה בהייטק ופיתוח מערכות. חברות מוצלחות מעסיקות מגוון של מפתחים, חלקם אנשי ביצוע מעולים, חלקם אנשי רעיונות וחלקם אנשי תיאוריה. אנחנו צריכים את כולם.
3. השאלה היא לא כמות המשימות
"כדי להיות אפקטיבי היום בעבודה, אתה חייב לדעת לעבוד במקביל. אתה אומר לאייג'נט אחד מה לעשות — ובזמן שהוא רץ, צריך לעבור ולהדריך את האייג'נט השני. הציפייה שלי ממפתחים היא לעבוד לפחות על שלוש משימות במקביל, אבל יש כאלה שיכולים לעבוד גם על עשר."
אפקטיביות לא נמדדת בשורות קוד ליום או במספר "משימות" שבוצעו. מפתחים עסוקים היום בחיפוש ובניית תהליכי עבודה מקביליים חדשים וכולם עדיין מחפשים את הדרך הנכונה. כל מפתח וכל מנהל פיתוח היום בא עם "שיטה" איך לבנות מוצרים טובים לאורך זמן. חלק מהחברות ידחפו למקביליות, חלק יעלו את הפיתוח לסוכנים בענן וימקדו את המפתחים בכתיבת טיקטים ומעבר על הקוד, אצל חלק אחר הדגש הוא דווקא על סינון ופיתוח "טעם אישי" והמטרה היא להכניס כמה שפחות שינויים ולשמור על אחידות. אנחנו לא יודעים עדיין מה נכון. הסטארט-אפ שהיום מנסה להכניס כמה שיותר פיצ'רים ותיקוני באגים עשוי לגלות מחר שהוא הכניס יותר מדי קוד והלקוחות שלו היו מעדיפים פחות עדכונים. סטארט אפ שעובד עם חמישה סוכנים עשוי לגלות שעלייה ל-10 סוכנים משפרת פרודוקטיביות או שבעצם ירידה ל-2 סוכנים תאפשר את הקפיצה הבאה.
שימו את הדברים בקונטקסט. חפשו כמה שיותר ציטוטים כאלה והקשיבו לאנשים מגוונים מהתעשייה לפני שאתם רצים אחרי פרסומת בעיתון.
4. תפקיד הג'וניורים
"אני מכווין, מדריך ומדייק את האייג'נטים על בסיס הידע שצברתי בשנים בתעשייה, והם עושים את העבודה. אם מכפילים אותי, עם כל הניסיון שצברתי, פי שמונה, אני חושב שיצטרכו הרבה פחות ג'וניורים בתעשייה".
הג'וניורים של היום הם הסניורים של עוד חמש שנים. ג'וניורים תמיד היו לא פרודוקטיביים, הם תמיד אילצו סניורים לקרוא קוד שלהם במקום להתקדם בפיצ'רים מעניינים, הם שאלו שאלות, הם הכניסו קוד עם בעיות אבטחה או ששובר דברים במערכת. מפתחים זה לא עורכי דין שצריכים מישהו שיעשה את העבודה השחורה וזאת הסיבה שלג'וניורים תמיד היה קשה למצוא עבודה.
אבל כשאתה אומר "יצטרכו הרבה פחות ג'וניורים" אתה מתכוון שבעוד חמש שנים יצטרכו הרבה פחות סניורים (כי מה לעשות בשביל להיות סניור אתה צריך להתחיל ממשהו) וזה לא נשמע סביר עם כמויות הקוד המשוגעות שכל הסוכנים שלכם כותבים. יותר מדויק להגיד שהרף עולה, שאם פעם היה מספיק לבן אדם להצליח לחבר כמה קומפוננטות לאפליקציה בשביל למצוא עבודה היום ה AI כבר יכול לעשות את זה ואנחנו מצפים מהג'וניורים שיגיעו ברמה יותר גבוהה - שיוכלו להכנס לקוד של הסוכן, להוסיף עליו, לתקן בעיות, לזהות בעיות לפני שהן קורות, להסביר מה האתגר ולמה הסוכן הסתבך איתו ואיך היה אפשר לארגן אחרת את המערכת כדי שהסוכן כן יצליח לעבוד.
אז כן הכשרת ג'וניורים תצטרך להשתנות, קורסי הסבה לתכנות יצטרכו להשתנות. זה בסדר אנחנו רק בתחילת התהליך. אבל המסקנה שלי לפחות היא הפוכה - יותר קוד מוביל ליותר בעיות ולכן דורש יותר אנשים שיכולים להבין אותו ולתקן אותו.
5. פיטורים בהייטק
"הרבה חברות מפטרות היום עובדים לא כי אין להן מה לעשות עם המפתחים, אלא כי הן לא מצליחות לייעל את התהליכים מסביב".
זה נכון אבל קצת יותר מורכב. חלק מהסיפור הוא באמת שבשלב מסוים אין ערך לעוד פיצ'רים. מאנדיי לא תמכור יותר רשיונות אם קצב הוספת הפיצ'רים יוכפל מחר, זה לא מה שעוצר אותם.
החלק השני של הסיפור הוא העלאת הרף. מפתחים שלא נותנים מספיק ערך בעזרת הכלים החדשים, שרק כותבים פרומפטים או שמתעקשים לא לכתוב פרומפטים כלל. עבודה עם AI זה שפה חדשה, עולם חדש ודרך חשיבה חדשה והבעיה שמי שלא נכנס לזה עדיין כמו שצריך עובד יותר לאט מכל האחרים בארגון. אני לא מאלה שאוהבים להפחיד אבל כן צריך לשים לב אם אתם רואים את כל האנשים סביבכם מייצרים פיצ'רים ופותרים באגים בקצב מהיר משלכם משמעותית אז למנהל שלכם יהיה קשה להצדיק את המשכורת שלכם. כשאנחנו עובדים בצוות צריך לשים לב לעבוד יותר מהר מהממוצע הצוותי. גם זה תמיד היה נכון והפך יותר נכון עכשיו שכולם האיצו.
יהיו פיטורים. יהיו חברות שייסגרו. יהיו אנשים שיחליטו לצאת לגמרי מהתעשייה ויהיו את אלה שיפרחו וחדשים שייכנסו. אני לא יודע מה יהיה העתיד ובטח לא מה יהיה העתיד האישי שלי או של מי מכם, אבל בהערכה אחת אני די בטוח - יותר קוד גורם ליותר בעיות ודורש יותר מתכנתים. מהאמת הזו אי אפשר לברוח.