• בלוג
  • אבל מי יבדוק את זה?

אבל מי יבדוק את זה?

30/10/2025

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

הנה עוד טייק שכתב סאם סאפרון באותו נושא:

On one side there is a contributor who spent a few minutes fiddling with AI prompts, on the other side you have an engineer that needs to spend many hours or even days deciphering alien intelligence.

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

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

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

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

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

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

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