
כיצד Aviator סוקר פי 4 יותר קוד AI בלי לקרוא כל שורה
ב-Aviator, תשעה מהנדסים מיזגו פי 4 יותר בקשות משיכה על ידי אימות כוונה, קריטריוני קבלה, אינווריאנטים, החלטות וראיות במקום הבדלים גולמיים. זמן מיזוג חציוני ירד מ-2.1 ימים ל-3.4 שעות והחזרות ירדו ב-40%.
Aviator אומרת שאותם תשעה מהנדסים מיזגו פי 4 יותר בקשות משיכה לאחר ששינו את סקירת הקוד מקריאת הבדלים גולמיים לאימות כוונה, קריטריוני קבלה, אינווריאנטים, החלטות וראיות קונקרטיות. זמן מיזוג חציוני ירד מ-2.1 ימים ל-3.4 שעות, החזרות ירדו ב-40%, ואדם עדיין מאשר כל בקשת משיכה.
הבעיה: סקירת קוד לא מתרחבת עם AI
הקוד של הצוות התהפך מכתיבה אנושית עם עזרת AI לקוד שנוצר על ידי AI עם עזרה אנושית. בקשות משיכה שמוזגו מדי שבוע עלו מכ-100 ליותר מ-400, ובקשת המשיכה החציונית שנוצרה על ידי AI הגיעה ל-640 שורות, מעבר ל-400 שורות, שנחשבת באופן נרחב לגבול שבו זיהוי באגים יורד.
תפיסת באגים מעולם לא הייתה הנקודה העיקרית של סקירת קוד בכל מקרה. במחקר של מיקרוסופט מ-2013 מאת Bacchelli ו-Bird, רק 14% מההערות בסקירה עסקו בפגמים. סקירה היא הדרך שבה מהנדסים חולקים ידע ושומרים על המודל המנטלי של המערכת עדכני, וזה החלק שכדאי להגן עליו. כאשר סוכנים כותבים את רוב הקוד, זהו גם החלק שנמצא בסיכון הרב ביותר. כשנשאלו אם הם פשוט הפסיקו לסקור, הצוות אומר לא: הם הפסיקו לסקור את ההבדלים. המסקנה שלהם היא שהחלטות צריכות אדם, והבדל הוא המקום הגרוע ביותר לקבל אותן.
מה השתנה: אמת כוונה, לא שורות
סקירת קוד נהגה לעשות כמה משימות בבת אחת: לתפוס באגים, לאכוף מוסכמות צוות, להכריע החלטות עיצוב, ולשמור על הבנת המערכת של כולם עדכנית. הצוות פיצל את המשימות הללו ונתן לכל אחת בית טוב יותר.
כוונה וקריטריוני קבלה נלכדים ממפגש הקידוד עם הסוכן, לא נכתבים כמפרט מראש. בכל פעם שמהנדס מתקן את הסוכן או עונה על שאלתו, נוצר קריטריון. הצוות אומר שבעבר זרק אותם כשהמפגש הסתיים. כוונה עונה למה השינוי נעשה; קריטריוני קבלה עונים איך זה צריך להתנהג. כוונה ללא קריטריונים לא ניתנת לבדיקה, וקריטריונים ללא כוונה לא ניתנים לשיפוט.
החצי השני הזה הוא בדיוק מה שמבקר שקורא את ההבדלים לעולם לא יבדוק. לא כל קריטריון צריך דפדפן: חוזה API מוכח על ידי בקשה ותגובה מוקלטות, וכלל קוד על ידי התאמת ast-grep או ציטוט קובץ-ושורה. העצה היא לבחור את ההוכחה הזולה ביותר שמיישבת את השאלה. בדיקת CI ירוקה רק אומרת שהבדיקות שחשבת עליהן עברו.
החלטות מגיעות משלושה מקומות: מפגש הקידוד, הטיעון של הסוכנים, והרצות אימות שנכשלו. בקשת המשיכה מפרטת כל אחת, מאיפה היא הגיעה, ומי יישב אותה. בבקשת משיכה שהוסיפה ניסיונות חוזרים עבור משלוחי webhook שנכשלו, ארבע מתוך חמש החלטות יושבו; הסוכנים לא הסכימו האם לבטל כפילויות של משלוחים חוזרים, אז אדם יישב את זו.
מהנדסים מפסיקים לקרוא כל שורה. הם מחזיקים בכללים שבודקים כל שורה, ושומרים על הבנת המערכת על ידי קריאת כוונה, ראיות והחלטות.
התוצאות
עבודת הסקירה לא נעלמה. היא עברה לזיקוק אינווריאנטים, דיון בהחלטות ושיפור אימות. המעבר יכול להכאיב: חודש ראשון הוא עבודה כפולה, עד חודש שני אינווריאנטים מדביקים את הפער מספיק שהסקירות מצטמצמות, ועד חודש שלישי אנשים קוראים כוונה וראיות, לא קוד.
מקורות: The New Stack
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.