הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

חמש מיומנויות קריטיות למפתחים בעידן ה AI

04/05/2026

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

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

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

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

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

מלבד שלושת המיומנויות האלה שהן ייחודיות ל AI אני מזהה עוד שתי מיומנויות שתמיד היו חשובות ומקבלות חיזוק משמעותי בעידן החדש:

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

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

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

למה בכלל לקרוא את הקוד

03/05/2026

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

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

The problem with agents is that they make errors. Which is fine, humans also make errors There's a much more important difference between clanker and human. A human is a bottleneck. A human cannot shit out 20,000 lines of code in a few hours. Even if the human creates such booboos at high frequency, there's only so many booboos the human can introduce in a codebase per day. You have removed yourself from the loop, so you don't even know that all the innocent booboos have formed a monster of a codebase. You only feel the pain when it's too late.

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

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

Spend 40% of your time on code health, or else you’ll wind up spending >60% Basically the agent will always find problems, often shocking ones, e.g. where you discover you have two or even three completely redundant systems (databases, logging, telemetry, whatever) that need consolidating.

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

We are entering a surprising new phase of software development, in which rewriting things is often easier (and smarter) than trying to fix them.

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

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

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

מה למדתי על Code Review מהסוכנים של Qt

02/05/2026

החברים ב Qt שחררו מסמך סקיל שמלמד את קלוד קוד איך לעשות Code Review לקוד Qt. אפשר לקרוא כאן ואני ממליץ:

https://github.com/TheQtCompanyRnD/agent-skills/blob/main/skills/qt-cpp-review/SKILL.md

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

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

יש סוכנים שאחראיים על חיפוש בעיות נפוצות בקלאס מסוים או אוסף קלאסים, למשל הסוכן הראשון מחפש רק בעיות ב QAbstractItemModel. סוכן שני מחפש בכל המערכת בעיות זכרון, ושימו לב להגדרה שלו שכוללת ממש רשימה של בעיות זכרון נפוצות ב Qt:

Check for:

    Structs/classes with raw pointers where new is visible and no corresponding delete/deleteLater/smart-pointer wrapping exists (Rule of Five violation)

    Missing deleteLater() on QNetworkReply in finished handlers

    Q_ASSERT wrapping side-effectful expressions (compiled out in release builds — the side effect disappears)

    Q_ASSERT as the sole null guard (crashes in release)

    Polymorphic QObject subclasses missing Q_DISABLE_COPY_MOVE

    Polymorphic classes missing virtual destructor

    QTimer/QObject created with new but no parent and no other lifecycle management (scope, smart pointer, explicit delete)

    QObject::connect() called with potentially null sender/receiver outside a null guard (runtime warning)

    m_recentlyAccessed-style tracking lists that maintain pointers to objects that may be deleted elsewhere (dangling)

    Unbounded container growth (append without cap or trim)

    Destructor not cleaning up owned children recursively

    Abstract interfaces with no implementations beyond one class (YAGNI violation — codebase scope only)
References: references/qt-review-checklist.md § Ownership & Lifecycle, § Polymorphic Classes, § RAII Classes

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

סוכן שלישי ממשיך עם בעיות רוחביות ודואג לחפש דברים שקשורים ל Thread Safety, סוכן רביעי מתמקד בשמות, סגנון ובעיות בשפה, לדוגמה:

Missing const on methods that don't modify state

סוכן חמישי מוקדש לטיפול בשגיאות והשישי לביצועים ואיכות כללית של הקוד עם הוראות כמו:

Expensive operation before cheap early-exit check (wasted allocation)
Missing re-entrancy guard on methods that emit signals which could trigger re-entry

הביקורת שיש לי על רשימה כזאת היא לא בהכרח על הרשימה אלא על האנשים שישתמשו בה. רשימה מדויקת של הערות מעודדת את המודל למצוא את הבעיות ברשימה, גם אם מדובר ב False Positives, ולכן מפתחים שישתמשו ב Code Review מבוסס סוכנים עם רשימה ספציפית צריכים לשים לב:

  1. לקרוא בצורה ביקורתית את הנקודות שהמודל מחזיר, להבין מה אמיתי ומה False Positive.

  2. לקרוא בצורה ביקורתית את הקוד עצמו כדי למצוא נקודות שלא נמצאות ברשימה או שהמודל פספס.

  3. לעדכן את הרשימה מדי פעם ככל שמגלים נקודות שלא עלו ב Code Reviews או נקודות שמעודדות False Positives. מוחקים מה שיצר טעויות ומוסיפים את מה שלא עלה.

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

למי אכפת מ MCP Composability

01/05/2026

את הדוגמה הבא להרכבת MCP ראיתי בפוסט של אנטרופיק, ששמו לב לבעיה הזאת הרבה לפניי: "הי סוכן הורד לי בבקשה את סיכום הפגישה מהדרייב ותעלה אותו לג'ירה". משימה שנראית סופר פשוטה שהופכת למסובכת רק בגלל התשתית.

כשסוכן ינסה לבצע אותה בעזרת תשתית ה MCP המוכרת היום הסוכן יצטרך לעשות:

  1. הפעלת כלי - קח מידע מ Google Drive
  2. הפעלת כלי - כתיבה ל Jira

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

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

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

// Read transcript from Google Docs and add to Salesforce prospect
import * as gdrive from './servers/google-drive';
import * as salesforce from './servers/salesforce';

const transcript = (await gdrive.getDocument({ documentId: 'abc123' })).content;
await salesforce.updateRecord({
  objectType: 'SalesMeeting',
  recordId: '00Q5f000001abcXYZ',
  data: { Notes: transcript }
});

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

פתרון שאני יותר אוהב הוא פשוט לוותר על MCP ולכתוב כלים פשוטים לשורת הפקודה. אם היו כלים לשורת הפקודה לדבר עם gdrive ו salesforce הסוכן היה יכול לכתוב:

gdrive --get-document abc123 | salesforce --update-record --record-id 00Q5f00001abcXYZ

או בדוגמה של ספירת השורות בפוסט הסוכן יכל היה לכתוב:

get-post post-title | wc -l

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

באותו נושא שווה להזכיר את הפרויקט:

https://github.com/philschmid/mcp-cli

שמאפשר להפעיל שרתי MCP מתוך תוכניות CLI.

חמש דוגמאות ל Type Hints מעניינים בפייתון

30/04/2026

כתיבת Type Hints היא אחד הרעיונות שמתחילים פשוט ואז מסתבכים כשפוגשים קוד אמיתי. זאת הסיבה שלקח לפייתון כמה שנים עד שהגיעו לתחביר Type Hints שעובד ומשמח את רוב המפתחים. בואו נראה 5 מקרים מאתגרים ואת הפתרון שלהם במערכת הטיפוסים של פייתון.

המשך קריאה

איך (ולמה) לתת ל AI לטפל בריבייסים

29/04/2026

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

  1. גיט מייצר patch לקומיט הראשון, מנסה להפעיל אותו על המצב העדכני של main.

  2. יש קונפליקט, אתה מתקן את הקונפליקט ואז גיט ממשיך לקומיט הבא.

  3. גיט שוב מייצר patch ומנסה להפעיל אותו, שוב יש קונפליקט ואתה צריך לתקן גם את הקונפליקט השני.

וכן יש את rerere שזוכר איך תיקנת קונפליקט פעם אחת ויפעיל אותו אוטומטית. אבל הבעיה היותר משמעותית היא שמנגנון המיזוג פה עקום. הוא מניח שכל הקומיטים חשובים כשבפועל הרבה פעמים יש לנו בענף ניסויים ותיקונים. מתוך 20 קומיטים בענף יהיו לי 8 קומיטים חשובים ועוד 12 נסיונות שלא הצליחו ונדרסו. אבל ריבייס מכריח אותי למזג את כל הקומיטים לפי הסדר ולפתור את הקונפליקטים אחד אחד.

מזל שיש לנו AI.

המתג -p של קופיילוט מאפשר להעביר פרומפט משורת הפקודה. יחד עם --allow-all ו --autopilot יש לנו מפלצת סקריפטים. אני יוצר את הסקריפט git-llmrebase

  # ~/.git-llmrebase
  #!/usr/bin/env bash
  branch=$(git rev-parse --abbrev-ref HEAD)
  target="$1"

  ollama launch copilot --model glm-5.1:cloud -- --allow-all --autopilot --share -p \
  "Do an LLM rebase to ${target}: run git diff ${branch}...${target} review all changes from their merge-base and re-implement them on the ${target}. Move branches so ${target} won't change and ${branch} will point to the new implementation. Instead of applying the patches one by one just read the differences from ${target} and re-build the most recent changes of ${branch} there. End result: branch ${branch} is a single commit branch with the most recent changes and ${target} as its parent"

ואז מחבר אותו לגיט עם:

chmod +x ~/.git-llmrebase
git config --global alias.llmrebase '!~/.git-llmrebase'

ועכשיו נוכל להריץ:

git llmrebase foo

ולתת ל AI לשבור את הראש ולמצוא רק את השינויים הרלוונטיים.

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

איך לחבר את השירות שלכם לסוכן חכם

28/04/2026

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

הבעיה עם שרתי MCP היא שמאוד קשה לתאר למודל מה היכולות של השירות צד שלישי אליו ה MCP מחבר. בנוסף שרתי MCP הם ממש תוכנות ודורשים כניסה לקוד כדי לקרוא או לשנות אותם. את שני האתגרים האלה התעשייה מנסה לתקן בחודשים האחרונים בעזרת מנגנון שנקרא Skills. בואו נראה איך זה עובד באמצעות השוואה בין Skill ל MCP וכך נענה על השאלה "איך לחבר את השירות שלכם לסוכן חכם".

המשך קריאה

מי אתה גיטהאב קופיילוט - סיכום וובינר

27/04/2026

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

המשך קריאה

סימנים שאני בעצם לא מבין מה קורה בעבודה עם LLM

26/04/2026

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

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

אם אנחנו מסתכלים על התוצאה וצריכים להריץ בשביל להבין אם זה עובד.

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

אם העבודה עם הסוכן מתישה בהרבה מקידוד רגיל.

אם הקוד נראה לנו ממש סביר, אבל כשאנחנו מבקשים Code Review סוכן אחר מוצא דברים שאנחנו לא ראינו.

אם אנחנו מקבלים הודעות שנשמעות לא הגיוניות אבל ממשיכים קדימה כי בטח הסוכן יודע מה הוא עושה.

אם אנחנו מעתיקים הודעות שגיאה ולוגים לחלון של הסוכן ועובדים בשבילו במקום שהוא יעבוד בשבילנו.

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

הנה שיחה קצרה לדוגמה עם סוכן.

הסוכן- "הודעת השגיאה אומרת שגרסאות חדשות של רובי כבר לא טוענות אוטומטית את OpenStruct. הוספתי פקודת require יזומה ועכשיו זה עובד".

אני- "עדיף להשתמש ב Data"

הסוכן- "אתה צודק! ברור שעדיף להשתמש ב Data. מיד מעדכן את הקוד"

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

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

איך עובדים באנטרופיק: 7 רעיונות מרכזיים שלמדתי מהראיון של קט וו

25/04/2026

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

https://open.spotify.com/episode/7wTqD5zwl8ZitUeplapvBG?si=f87b7e5cd4c14ff3

אלה הנקודות המרכזיות שלקחתי מהשיחה:

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

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

  3. עדיין יש משימות פיתוח קשות ומהשיחה נשמע שגם באנטרופיק מאמינים שיהיו דברים קשים בעתיד הנראה לעין. יש משימות שלוקחות להם חודשים (בעיקר בצד ה Backend). יש תיעדוף מאוד קשוח איזה פיצ'רים ייבנו ואיך. יש הבנה שיש פיצ'רים שאפשר לרוץ איתם מהר ואפילו לתת ל AI לבנות מאפס, ויש שינויי תשתית מסובכים שדורשים הרבה מחשבה אנושית. 100% קוד מג'ונרט על ידי AI לא שווה 100% קוד שנכתב בלי בני אדם שמכתיבים מה ייכתב ומוודאים שדברים נכתבים נכון.

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

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

  6. באותו נושא היא מאוד המליצה לכתוב Eval-ים כדי לתאם ציפיות בין מנהלי פרויקט וצוותי הפיתוח.

  7. מודלים חדשים יכולים לייתר יכולות, ולפתוח פיצ'רים חדשים - כשהמודלים לא הצליחו לעשות משימות מורכבות הם הוסיפו מנגנון של Todo List בתוך קלוד קוד. המודל ממלא את רשימת ה Todo והרתמה רצה בלולאה עד שכל הסעיפים בוצעו. ככל שהמודל השתפר לכיוון אופוס או סונט 4.6 הם ראו שאפשר להעביר את כל פיצ'ר ה Todo להיות Tool והמודל מצליח להשתמש בו כדי לייצר לעצמו את הרשימות, ואופוס החדש אפילו לא צריך את זה ועובד טוב גם בלי רשימת Todo. פיצ'ר נוסף שעלה היה פיצ'ר ה Code Review, שהיה מוכן כבר תקופה אבל אף מודל לא הצליח לתת להם תוצאות טובות עד שהגיע אופוס 4.7 ולכן הם חיכו עם שילוב הפיצ'ר עד שהמודל ישתפר. הם מתמודדים עם זה באמצעות פיתוח פיצ'רים גם אם התוצאה עדיין לא מושלמת מתוך הנחה שעוד כמה חודשים תצא גרסה חדשה של המודל שכן תתמודד עם האתגר, ובמקביל כל גרסה חדשה של מודל חוזרים לבדוק אם יש פיצ'רים בסוכן שאפשר להוריד כי המודל כבר מצליח לעבוד טוב יותר בלעדיהם.

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