שיעור 7: תכנות קיצוני (XP) ופיתוח מונחה-בדיקות (TDD)
תכנות קיצוני (XP - eXtreme Programming) הוא אחת השיטות הזריזות (Agile) המוכרות והשלמות ביותר, שנוצרה בידי קנט בק (Kent Beck) ב-1996 — עוד לפני שהמונח 'Agile' נטבע. בשיעור זה נכיר את ארבעת ערכי הבסיס של XP (פשטות, תקשורת, משוב ואומץ), את 12 הפרקטיקות (בניסוח המקורי של בק) (משחק התכנון, סיפורי משתמש,
בקצרה: XP אומר 'קח את הדברים הטובים שאנחנו עושים והגבר אותם' — תקשורת, פשטות, משוב ואומץ. ו-TDD אומר: קודם כותבים בדיקה שנכשלת, ואז כותבים בדיוק מספיק קוד כדי שהיא תעבור — ואז עוצרים.
- תכנות קיצוני (XP)
- שיטת פיתוח זריזה שנוצרה בידי קנט בק ב-1996, מהשלמות והמוכרות ביותר; מבוססת על ארבעה ערכים (פשטות, תקשורת, משוב, אומץ) ועל 12 פרקטיקות הנדסיות, ברעיון 'קח את מה שעובד והגבר אותו'.
- פיתוח מונחה-בדיקות (TDD)
- שיטה שבה כותבים תחילה בדיקת יחידה שחייבת לרוץ ולהיכשל, אז כותבים קוד עד שהבדיקה עוברת, ועוצרים מיד כשהיא עוברת — בלי להוסיף פונקציונליות; אף בדיקה שעברה בעבר לא תיכשל.
- משחק התכנון (Planning Game)
- פרקטיקת תכנון ב-XP שמפרידה החלטות עסקיות מהחלטות פיתוח: העסק מציג ומתעדף סיפורי משתמש, המפתחים מעריכים מאמץ, והאיטרציות קצרות (1-2 שבועות) ואינן חורגות מהזמן שהוקצה.
- סיפור משתמש (User Story)
- תיאור קצר על כרטיס (שם + תיאור) של תכונה הנותנת ערך ללקוח, נכתב בידי הלקוח ומוערך בידי המפתחים; מחליף מסמכי דרישות גדולים, בדומה במטרתו ל-Use Case.
- תכנות בזוגות (Pair Programming)
- כל הקוד נכתב בזוגות בתחנה אחת: אחד כותב והשני חושב אם זה יעבוד, על דרכים טובות יותר ועל תרחישי בדיקה; מתחלפים כל כשעתיים, וכל זוג מתחלף — תומך בבעלות קולקטיבית וסקירה לא-רשמית.
- ארגון מחדש (Refactoring)
- שיפור מבנה הקוד הקיים בלי לשנות את התנהגותו, כדי לשמור על עיצוב פשוט; פעילות מתמשכת ולא חד-פעמית, שבה הבדיקות מבטיחות שההתנהגות לא נשברה.
- אינטגרציה מתמשכת (CI)
- בנייה ובדיקה של כל המערכת מספר פעמים ביום (אינטגרציה לפחות פעם ביום), עם בדיקות אוטומטיות; בדיקות היחידה חייבות לעבור 100% לפני האינטגרציה ואחריה.
- קצב בר-קיימא (Sustainable Pace, שבוע 40 שעות)
- 'תכנות הוא מרתון ולא ספרינט': הצוות עובד עד 40 שעות בשבוע; אנשים עייפים אינם פרודוקטיביים; במשבר מותר עד שבוע אחד של שעות נוספות, אך שבועות רצופים הם סימן שמשהו לא תקין.