eXtreme Programming — בדרך כלל פשוט XP — הוא החבר התובעני ביותר במשפחת האג’ייל. East Agile Tracker בנוי קודם כול עבור XP; כל השאר נובע מכך.
עמוד זה מכסה מהו XP, מדוע הוא עובד, וכיצד לתרגל אותו עם ה-tracker כמשטח התכנון שלכם.
מהו XP
Section titled “מהו XP”XP נוצר על ידי Kent Beck בסוף שנות ה-90. הספר הראשון — Extreme Programming Explained: Embrace Change — פורסם ב-1999. הוא התחיל, כמו דברים רבים, עם צוות מתוסכל שניסה לשלח מערכת שכר ב-Chrysler.
ההימור של XP הוא שהדרך הנכונה להתמודד עם אי-ודאות בתוכנה היא לעשות את הדברים שעובדים, ולעשות אותם בתדירות גבוהה יותר. לבדוק? לבדוק כל הזמן. לבצע אינטגרציה? לבצע אינטגרציה מדי שעה. לדבר? לדבר ללא הרף. לתכנן? לתכנן בכל איטרציה, ולתכנן מחדש ככל שלומדים.
“XP היא מתודולוגיה קלת-משקל לצוותים בגודל קטן-עד-בינוני המפתחים תוכנה אל מול דרישות מעורפלות או משתנות במהירות.” — Kent Beck
חמשת הערכים
Section titled “חמשת הערכים”XP נוקב בחמישה ערכים שכל השאר תלוי בהם:
- תקשורת — הצוות מדבר. מדי יום. על העבודה, העיצוב, המכשולים. פנים-אל-פנים כשניתן. ממגורות הן האויב.
- פשטות — עשו את הדבר הפשוט ביותר שיכול אולי לעבוד. תוכלו להוסיף מורכבות מאוחר יותר אם באמת תזדקקו לה. כנראה שלא.
- משוב — מהקוד (בדיקות), מהצוות (תכנות בזוגות, סקירות), מהמשתמש (שחרורים תכופים). קבלו אותו מהר.
- אומץ — אמרו את האמת על ההתקדמות, ההערכות, והעיצוב. השליכו קוד שלא עובד. שכתבו את מה שמעכב אתכם.
- כבוד — כל אחד בצוות — וכעת, כל סוכן בצוות — תורם ערך. התייחסו זה לזה בהתאם.
התרגולים
Section titled “התרגולים”XP מפורסם בזכות שנים-עשר התרגולים המקוריים שלו, מאורגנים בארבעה תחומים:
- משחק התכנון (Planning Game) — הצוות והלקוח מתכננים יחד: מה בא הלאה, באיזה סדר, כמה גדול כל חלק.
- שחרורים קטנים (Small Releases) — שלחו לעיתים קרובות. ימים, לא חודשים. קבלו משוב על משהו מוחשי.
- סיפורי משתמש (User Stories) — דרישות הן שיחות, נלכדות כסיפורים קצרים מנקודת מבטו של המשתמש. “כמשתמש, אני רוצה X, כדי ש-Y.”
- עיצוב פשוט (Simple Design) — העיצוב הפשוט ביותר שעובר את הבדיקות ומבטא כל מושג נחוץ. לא יותר.
- שכתוב (Refactoring) — שפרו את העיצוב של קוד שכבר עובד. ללא הרף.
- מטאפורת מערכת (System Metaphor) — סיפור משותף על האופן שבו המערכת עובדת, המשמש להפוך החלטות עיצוב לעקביות.
- תכנות בזוגות (Pair Programming) — שני מפתחים, מקלדת אחת. אחד נוהג, אחד מנווט. החליפו לעיתים קרובות.
- בעלות קולקטיבית על הקוד (Collective Code Ownership) — כל אחד יכול לשפר כל קוד. ללא נחלות פרטיות.
- אינטגרציה רציפה (Continuous Integration) — בצעו אינטגרציה ובדיקה של הקוד פעמים רבות ביום. תפסו שבירות מיד.
- תקני קידוד (Coding Standards) — סגנון מוסכם כך שהקוד נקרא כאילו אדם אחד כתב אותו.
בדיקות
Section titled “בדיקות”- פיתוח מונחה-בדיקות (TDD) — כתבו את הבדיקה הכושלת תחילה, ואז את הקוד שגורם לה לעבור.
- בדיקות קבלה (Acceptance Tests) — הלקוח מגדיר, בקוד או בצורה הניתנת להרצה, מה “גמור” אומר עבור כל סיפור.
מדוע XP עובד
Section titled “מדוע XP עובד”XP אינו נוח. תכנות בזוגות מכריח אתכם לחשוב בקול. TDD מכריח אתכם לדעת איך נראית הצלחה לפני שאתם כותבים את הקוד. אינטגרציה רציפה הורגת את הענפים האהובים עליכם שחיים זמן רב. שחרורים קטנים פירושם שאינכם יכולים להסתתר מאחורי מפת-דרכים בת שישה חודשים.
זה עובד מפני שכל הדברים האלה מקצרים את לולאות המשוב. ככל שתגלו מהר יותר שטעיתם, כך התיקון זול יותר. XP הוא, ביסודו, על הפיכת לולאת המשוב להדוקה ככל האפשר.
הוא גם על אומץ וכבוד. אתם יכולים לתרגל XP רק בצוות שבוטח זה בזה מספיק כדי לטעות בקול.
מודל הסיפור הממושמע
Section titled “מודל הסיפור הממושמע”East Agile Tracker מקודד תיאוריה מסוימת של תכנון. התייחסו למקטע זה כאל מדריך ההפעלה ל-מדוע מודל הנתונים נראה כפי שהוא נראה — וכאל מדריך השדה למה לעשות (ומה לא) בפועל.
מדוע ארבעת סוגי הסיפור חשובים
Section titled “מדוע ארבעת סוגי הסיפור חשובים”הכול הוא סיפור, אך ישנם ארבעה סוגים, וההבחנה היא כל הנקודה:
- Features נושאות נקודות והן הדבר היחיד ש”נספר” אל תוך המהירות. זה מכריח אתכם לפרוס עבודה לערך הניתן לצפייה על ידי המשתמש.
- Bugs הם ללא נקודות (אפס). פגמים לא מזכים בקרדיט, מה שהופך את עלות התיקון החוזר לגלויה במקום לתגמל אותה.
- Chores הם גם ללא נקודות — עבודה הכרחית ללא ערך ישיר למשתמש (תשתית, שכתובים, התקנה). השארתם באפס דוחפת את הצוות לשלב אותם בתוך תכונות בכל מקום אפשרי כדי שמסגור הערך יישאר כן.
- Releases הם סמנים באפס נקודות המשמשים לעגן אבני דרך ולאפשר לכלי לחזות תאריך.
ההשפעה ההתנהגותית היא מה שחשוב: כאשר באגים ומטלות לא צוברים נקודות, צוות נדחף באופן טבעי לבטא עבודה כפונקציונליות מכוונת-משתמש, והוא נעשה מודע בחדות לעלות הפגמים. זוהי משמעת תכנון המקודדת במודל הנתונים.
ה-backlog היחיד והמסודר
Section titled “ה-backlog היחיד והמסודר”שלושה אזורים, חוק אחד.
- ה-Icebox הוא מאגר הרעיונות הלא-מתועדפים.
- ה-Backlog הוא רשימה מסודרת בקפדנות, עם עדיפות יחידה — ללא תיקו, ללא “P1/P1/P1”.
- אזור ה-Current מחזיק את האיטרציה(ות) הפעילה(ות).
בעל המוצר הוא הבעלים של הסדר מלמעלה למטה, והאינווריאנטה היא שראש ה-backlog הוא תמיד החשוב ביותר והמפורט ביותר, כאשר הבהירות פוחתת באופן לגיטימי ככל שיורדים. סיפור קרוב לראש עם קריטריוני קבלה מעורפלים הוא באג תכנון. מותר ל-Icebox להיות בית קברות; ל-Backlog לא.
תכנון אוטומטי מונע-מהירות
Section titled “תכנון אוטומטי מונע-מהירות”זהו החלק שרוב הצוותים מיישמים מחדש בצורה גרועה במקומות אחרים. תכנון בסגנון tracker מחשב מהירות ממוצעת מתגלגלת מנקודות שהתקבלו לאחרונה ומושך אוטומטית אותה כמות נקודות של סיפורים לתוך האיטרציה הבאה — אינכם “מתחייבים” ידנית לספרינט, הנתונים האמפיריים עושים זאת עבורכם. שתי השלכות ששווה לשמר:
- אתם מעריכים תכונות בלבד, באמצעות נקודות יחסיות (Fibonacci 1/2/3/5/8 או ה-0/1/2/3 ההדוק שלנו), לא שעות. הערכה היא שיחת סקילה, לא הבטחה.
- אתם לא מזייפים את המהירות. ניפוח נקודות כדי “להיראות מהירים”, או הענקת נקודות למטלות, שובר את התחזית שהופכת את כל המערכת לכנה. מהירות היא מכשיר מדידה, ואתם לא מזייפים את המכשיר של עצמכם.
הפרס הוא שתחזית תאריך השחרור הופכת לחישוב במקום למשא ומתן, והשיחה עם בעלי העניין עוברת מ”האם תוכלו להתחייב ל-X עד יום שישי” ל”במהירות הנוכחית, שחרור זה נוחת בערך בתאריך Y — הנה החלפת היקף/תאריך”.
מחזור החיים של הסיפור ולולאת הקבלה
Section titled “מחזור החיים של הסיפור ולולאת הקבלה”מכונת המצבים היא Start → Finish → Deliver → Accept / Reject. המצב הקריטי הוא Deliver: מהנדס מסמן סיפור כ-delivered, אך הוא אינו גמור עד שבעל המוצר מקבל אותו במפורש מול קריטריוני הקבלה — או דוחה אותו, ומחזיר אותו לאחור. זה צורב לולאת משוב-לקוח לתוך כל סיפור בודד במקום לדחות את הקבלה לתצוגת סיום-ספרינט.
קריטריוני הקבלה שייכים לסיפור לפני שהוא מתחיל, רצוי בצורת Given/When/Then כך שהם ממופים ישירות לבדיקות קבלה. INVEST הוא מבחן השפיות לשאלה האם סיפור בנוי היטב:
- Independent (עצמאי) — ניתן לשחרור ללא סיפורים אחרים.
- Negotiable (נתון למשא ומתן) — לוכד כוונה, לא מפרט קפוא.
- Valuable (בעל ערך) — למשתמש או לבעל עניין.
- Estimable (ניתן להערכה) — הצוות יכול לתת לו גודל.
- Small (קטן) — נכנס בנוחות לאיטרציה.
- Testable (ניתן לבדיקה) — יש לו קריטריוני קבלה שניתן להפעיל.
קצב (Cadence)
Section titled “קצב (Cadence)”טקסי התכנון קלים וקבועים:
- פגישת תכנון איטרציה שבועית כדי להעניק נקודות לסיפורים חדשים ולקבע קריטריוני קבלה בראש ה-backlog.
- סטנדאפ יומי קצר המתמקד בזרימה ובחוסמים.
- רטרוספקטיבה לכל איטרציה כדי להתאים את התהליך.
איטרציות הן בדרך כלל שבוע או שבועיים — קצרות מספיק כך שגילוי הערכה שגויה הוא זול.
התרגולים ההנדסיים שגורמים לתכנון לעבוד
Section titled “התרגולים ההנדסיים שגורמים לתכנון לעבוד”תכנון בסגנון tracker הוא החצי הגלוי של XP; הוא קורס ללא החצי ההנדסי.
- בדיקה-תחילה / TDD וחבילת בדיקות קבלה אמיתית הם מה שמאפשרים ל-”delivered” להיות בעל משמעות.
- אינטגרציה רציפה ושחרורים קטנים ותכופים שומרים על זמן מחזור קצר כך שהמהירות יציבה במקום גושית.
- תכנות בזוגות (או סקירה חזקה) שומר על עבודה-בתהליך נמוכה — סיימו לפני שאתם מתחילים — שהוא המנוף היחיד הגדול ביותר על זמן המחזור.
- בעל מוצר זמין הוא מה ששומר על לולאת הקבלה/דחייה מלהיתקע.
אנטי-פטרנים שיש לשים לב אליהם
Section titled “אנטי-פטרנים שיש לשים לב אליהם”הכשלים החוזרים:
- התייחסות ל-Backlog כחניון במקום כסדר עדיפות אמיתי.
- הערכת באגים ומטלות כדי לגרום למהירות להיראות טוב יותר.
- נשיאת סיפורים ענקיים שלא יכולים להסתיים באיטרציה. פצלו עד שכל אחד ניתן למשלוח באופן עצמאי.
- מתן לסיפורים להיערם ב-Delivered מפני שאף אחד לא מקבל.
כל אחד מאלה ממיר בשקט מערכת אמפירית חזרה לתכנון משאלות. ה-tracker לא יכול לעצור אתכם מלעשות אותם; הוא יכול רק להפוך אותם לגלויים. הסתכלו על עמודת ה-Delivered שלכם בסוף כל איטרציה — אם היא גדלה, זה האות שלכם.
XP עם East Agile Tracker
Section titled “XP עם East Agile Tracker”ה-tracker הוא משטח התכנון שצוותי XP רצו מאז ימי Pivotal Tracker. כל מושג ממופה ישירות:
סיפורי משתמש → סיפורים
Section titled “סיפורי משתמש → סיפורים”סיפורי משתמש של XP הם סיפורי East Agile Tracker. כתבו אותם בסוג Feature. השתמשו בתיאור לשיחה; השתמשו בתגובות לדיון מתמשך. קריטריוני הקבלה שייכים לתיאור.
משחק התכנון → הלוח
Section titled “משחק התכנון → הלוח”משחק התכנון ב-XP הוא שיחה בין העסק לצוות על עדיפות וגודל. ב-East Agile Tracker:
- איש המוצר כותב סיפורים ב-Backlog ומסדר אותם לפי עדיפות.
- הצוות מעריך תכונות בנקודות (סולם Fibonacci או East Agile).
- המערכת מתכננת איטרציות אוטומטית מתוך המהירות.
- הצוות מתחיל סיפורים מראש עמודת ה-Current.
זה הכול. ה”משחק” חי בשיחה; ה-tracker רק שומר על הניקוד.
שחרורים קטנים → שחרורים (סוג הסיפור)
Section titled “שחרורים קטנים → שחרורים (סוג הסיפור)”XP אומר שלחו לעיתים קרובות. Release הוא אחד מארבעת סוגי הסיפור ב-East Agile Tracker. צרו שחרור לכל אבן דרך של משלוח; גררו אותו לאיטרציה שבה הוא נשלח. שחרורים מדלגים על Started/Finished/Delivered ועוברים ישירות ל-Accepted כשאתם משלחים.
אינטגרציה רציפה → מכונת מצבי הסיפור
Section titled “אינטגרציה רציפה → מכונת מצבי הסיפור”מכונת המצבים אינה CI כשלעצמה — זוהי מערכת ה-build שלכם — אך המסלול Finished → Delivered → Accepted משקף את לולאת קבלת-הלקוח ש-XP מתאר. סיימו את העבודה, מסרו אותה ללקוח, קבלו כשהיא מאושרת כעובדת.
מהירות → “מזג האוויר של אתמול”
Section titled “מהירות → “מזג האוויר של אתמול””XP קורא לזה yesterday’s weather: כמה הספקתם באיטרציה האחרונה הוא החיזוי הטוב ביותר לכמה תספיקו בזו הנוכחית. East Agile Tracker מחשב מהירות אוטומטית — ממוצע של איטרציות אחרונות, אסטרטגיה ניתנת להגדרה — ומשתמש בה כדי לתכנן אוטומטית את קיבולת האיטרציה הבאה.
בדיקות קבלה → סקירות
Section titled “בדיקות קבלה → סקירות”סקירות סיפור ב-tracker ממופות לקבלה. הקצו סוקר (הלקוח, בעל המוצר, או אפילו סוכן הפועל כאחד). הם מאשרים או דוחים. דחייה שולחת את הסיפור חזרה ל-Started.
תכנות בזוגות → בעלות-משותפת
Section titled “תכנות בזוגות → בעלות-משותפת”צוותי XP מזדווגים על הקוד. ב-tracker, זה מופיע כריבוי בעלים על סיפור. הקצו את שני בני הזוג לסיפור; שני השמות מופיעים על הכרטיס.
XP עם סוכנים — התרגול החדש
Section titled “XP עם סוכנים — התרגול החדש”XP נכתב לפני שסוכני בינה מלאכותית יכלו לתרום באופן משמעותי לתוכנה. אנו חושבים שזה העדכון החשוב ביותר ל-XP בעשרים וחמש שנים.
בתרגול שלנו — ומה שה-tracker בנוי עבורו — סוכן הוא חבר צוות XP בעל שם. יש לו תפקיד משלו, בן-זוג משלו (אנושי או סוכן), ושובל ביקורת משלו. הוא יכול לעשות כל מה שחבר צוות אנושי יכול לעשות במשטח התכנון: להעריך, להחזיק בעלות על סיפורים, להגיב, להעביר מצבים, לקבל סקירות.
ערכי ה-XP עדיין מתקיימים. תקשורת: סוכנים מתקשרים על ידי קריאת זרם האירועים ופרסום תגובות. פשטות: סוכנים מוגבלים לתפקידים שאתם מעניקים להם. משוב: כל פעולת סוכן נמצאת בשובל הביקורת, ניתנת לסקירה מיידית. אומץ: היו כנים לגבי מה שהסוכנים שלכם עשו נכון ומה שלא. כבוד: חברי צוות-סוכנים תורמים ערך — הכירו בכך.
איננו מכניסים את הסוכנים לתוך ה-tracker לעשות את הקידוד. אנו נותנים את משטח התכנון לבני אדם וסוכנים שעובדים יחד. אתם מביאים את סוכן הקוד — Claude Code, Codex, או שלכם — ומחברים אותו ל-tracker דרך ה-API. הסוכן לוקח סיפורים, מבצע את העבודה, מגיב, מעביר מצבים. אתם סוקרים את השובל ומקבלים.
זהו תכנון אג’ילי מכליל (Inclusive Agile Planning). זהו XP, עם הצוות שיש לו בפועל.
קריאה נוספת
Section titled “קריאה נוספת”- Extreme Programming Explained — ספרו היסודי של Kent Beck, 1999.
- המניפסט האג’ילי — היכן שהמשפחה התחילה.
- פיתוח אג’ילי — התמונה הרחבה יותר.
- הוראות הפעלה — מדריך מעשי ל-tracker.
- מדריך API — חיבור סוכן הקוד שלכם.