ההבדל בין תכנות אקסטרים ו SCRUM
Extreme Programming vs SCRUM | XP לעומת SCRUM
קיימות מספר מתודולוגיות פיתוח תוכנה שונות המשמשות את תעשיית התוכנה לאורך השנים, כגון שיטת פיתוח מפל מים, דגם V, RUP ומעט ליניארית, ליטרית ומשולבת ליניארית-איטרטיבית. מודל Agile (או יותר נכון, קבוצה של מתודולוגיות) הוא מודל פיתוח תוכנה לאחרונה יותר על ידי המניפסט Agile כדי לענות על החסרונות שנמצאו אלה מתודולוגיות פיתוח תוכנה מסורתית.
-> ->שיטות Agile מבוססים על פיתוח איטרטיבי ולהשתמש משוב מהמשתמשים כמנגנון הבקרה הראשי. Agile ניתן לקרוא גישה ממוקדת אנשים מאשר שיטות מסורתיות. מודל Agile מספק גירסה עובדתית של המוצר מוקדם מאוד על ידי פירוק המערכת לחלקים תת-קטנים מאוד וניתנים לניהול, כך שהלקוח יוכל לממש חלק מההטבות בשלב מוקדם. בדיקת מחזור הזמן של Agile הוא קצר יחסית בהשוואה לשיטות המסורתיות, כי הבדיקה מתבצעת במקביל לפיתוח. בגלל כל היתרונות האלה, עדיף שיטות Agile על פני המתודולוגיות המסורתיות כרגע. Scrum ו- Extreme Programming הן שתי הגרסאות הפופולריות ביותר של שיטות Agile.
-> ->מהו SCRUM?
כאמור, SCRUM הוא תהליך ניהול פרויקטים מצטבר ואיטרטיבי, השייך למשפחת שיטות Agile. SCRUM מבוסס על מתן עדיפות גבוהה להשתתפות הלקוח בשלב מוקדם של מחזור הפיתוח. הוא ממליץ לשלב בדיקות על ידי הלקוח מוקדם ככל האפשר. הבדיקה נעשית בכל נקודה כאשר גרסה יציבה הופכת לזמינה. הבסיס של SCRUM מבוסס על תחילת בדיקות מתחילת הפרויקט ולהמשיך עד סוף הפרויקט.
ערך המפתח של SCRUM הוא "איכות היא באחריות הצוות", אשר מדגיש כי איכות התוכנה היא באחריות של כל הצוות (לא רק צוות בדיקה). היבט חשוב נוסף של SCRUM הוא לשבור את התוכנה לחלקים קטנים לניהול ולספק אותם ללקוח מהר מאוד. אספקת מוצר עובד הוא בעל חשיבות עליונה. לאחר מכן הצוות ממשיך לשפר את התוכנה ולספק ברציפות בכל צעד חשוב. זו מושגת באמצעות מחזורי שחרור קצר מאוד (נקרא sprints) ולקבל משוב לשיפור בסוף כל מחזור.
SCRUM מגדיר מספר תפקידי מפתח לפעולה חלקה של צוות הפיתוח. הם הבעלים של המוצר (המייצג את הלקוח ושומר על צבר המוצרים), מאסטר Scrum (הפועל כמארגן ומרכז הצוות על ידי ניהול פגישות Scrum, שמירה על צבר ספרינט ושריפת תרשימים) וחברי צוות אחרים.צוות עשוי להיות מורכב תפקידים מסורתיים, אבל בעיקר הם צוותי ניהול עצמי. ראשי Scrum artifacts הם צבר צבר מוצר / שחרור (רשימת המבקשים), ספרינט backlogs / backlogs פגם (משימות בכל איטרציה), לשרוף תרשימים (עבודה שנותרה לעומת תאריך). ראשי SCRUM טקסים הם צבר פגישה המוצר, מפגש ספרינט מפגש Retropect.
מהו תכנות אקסטרים?
Extreme Programming (מקוצר XP) היא מתודולוגיית פיתוח תוכנה השייכת למודל Agile. תכנות אקסטרים מבצע שלבים בשלבים מתמשכים קטנים מאוד (לעומת שיטות מסורתיות). המעבר הראשון, שנמשך רק יום או שבוע, אינו שלם בכוונה. כדי לספק מטרות קונקרטיות לפיתוח התוכנה, בדיקות אוטומטיות נכתבו בהתחלה. אז היזמים לעשות את קידוד. המוקד הוא על ביצוע תכנות כמו זוגות. לאחר כל הבדיקות לעבור, קידוד נחשב להשלים. השלב הבא הוא עיצוב ואדריכלות, העוסקת refactoring את הקוד על ידי אותה קבוצה של מתכנתים. בסוף שלב זה, מוצר שלם (אך פונקציונלי) מוצג בפני בעלי העניין. מיד לאחר מכן, השלב הבא (המתמקד במערך הבא של התכונות החשובות ביותר) מתחיל.
מה ההבדל בין תכנות אקסטרים לבין SCRUM?
Extreme Programming ו- SCRUM מובנים במתודולוגיות דומות מאוד ומתואמות. עם זאת, ישנם הבדלים עדינים אך חשובים בין שתי השיטות. SCRUM sprints נמשך 2-4 שבועות, ואילו איטרציות XP אופייניות קצרים יותר (בשבועיים האחרונים בשבועיים האחרונים). בדרך כלל, צוותי SCRUM אינם מאפשרים שינויים ב sprints, אבל צוותי XP הם קצת יותר גמישים לשינויים בתוך איטרציות. לדוגמה, לאחר התכנון ספרינט, קבוצה של פריטים של ספרינט זה נשאר ללא שינוי, אבל תכונה שלא החלה לעבוד על יכול בכל עת להיות swapped עם תכונה אחרת ב- XP. הבדל נוסף בין XP ו- SCRUM הוא שסדר התכונות שפותח ב- XP הוא לקוח בעל עדיפות קפדנית על-ידי הלקוח, ואילו צוות SCRUM מחליט את סדר הפריטים (לאחר הצטברות המוצר על-ידי בעל המוצר של SCRUM).
בניגוד ל- XP, SCRUM אינה מניחה כל שיטות הנדסיות. לדוגמה, XP מונע על ידי שיטות עבודה כמו פיתוח מונחה-בדיקה (TDD), תכנות זוג, refactoring וכו '. עם זאת, יש הסבורים כי החובה של קבוצה של פרקטיקות על צוותים המארגנים את עצמם עלולה להשפיע לרעה, וזה יכול להיחשב חסרון של XP. חסרון נוסף של תכנות אקסטרים הוא כי צוותים מנוסים עשויים נוטים refactor ללא בדיקות אוטומטיות או TDD (או פשוט פריצה). לכן, יש הסבורים כי SCRUM עדיף לבהות (כפי שהוא מביא שיפורים גדולים פשוט דרך חזרות ממוקד timeboxed) ו- XP מתאים לצוות בוגרת מעט אשר גילו את הערך של הפרקטיקות הנ"ל (במקום להשתמש בהם כי הם נשאלו לעשות זאת).