Scrum

היסטוריה

הגישה תוארה לראשונה בספרם של טַקֵאוּצִ'י ונוֹנַאקָה The New New Product Development Game שיצא לאור בשנת 1986. השניים הבחינו שפרויקטים לפיתוח מוצרים חדשים משיגים תוצאות טובות יותר כאשר אלה מתבצעים בידי צוותים קטנים ורב-תחומיים. בספרם הם עמדו על הדמיון בין צוותים עתירי ביצועים אלה לתצורת ה-Scrum במשחק הרוגבי, שם המונח מתאר את הדרך שבה המשחק מתחיל מחדש לאחר שהכדור יצא מהמגרש - שתי הקבוצות דוחפות אחת את האחרת כדי לזכות בכדור, והשחקנים בכל קבוצה נדרשים לפעול במשותף, כצוות מגובש. הטכניקה של "התחלה מחדש" היא אחת מאבני היסוד של השיטה - בפרויקט Scrum תהליך הפיתוח מתחיל שוב מראשיתו מדי חודש. כלומר, פעם בחודש מסופקת תוכנה עובדת למשתמשים, והערותיהם, כמו גם הדרישות החדשות, מיושמות במחזורי הפיתוח הבאים.
עקרונות השיטה נבעו מהתעשייה המסורתית, ובעיקר מחברת טויוטה, עד אשר התפתחו לתחום התוכנה.
בשנת 1991, דה-גרייס וסטול כינו גישה זו Scrum בספרם "Wicked Problems, Righteous Solutions". בתחילת שנות ה-90, השתמש קן שוואבר בשיטה שהובילה בסופו של דבר לשיטת Scrum, בחברתו Advanced Development Methods. באותו הזמן, ג'ף סאתרלנד, ג'ון סקמיוטאלס וג'ף מקנה פיתחו שיטה דומה בחברת Easel Corporation והיו הראשונים לכנותה Scrum. סאתרלנד ושוואבר הציגו פרסום המתעד את השיטה בכנס OOPSLA 96 שנערך באוסטין, טקסס. השניים שיתפו פעולה בשנים שלאחר מכן ורתמו את ניסיונם המשותף ליצירת Scrum כפי שהיא מוכרת כיום.

בעלי תפקידים

ב-Scrum מוגדרים מספר בעלי תפקידים; אלה מחולקים לשתי קבוצות: חזירים ותרנגולות. המקור למינוח זה הוא בבדיחה על חזיר ותרנגולת:
A pig and a chicken are walking down a road. The Chicken looks at the pig and says "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says "Good idea, what do you want to call it?" The chicken thinks about it and says "Why don't we call it 'Ham and Eggs'?" "I don't think so" says the pig, "I'd be committed but you'd only be involved"
בתרגום מקורב לעברית:
חזיר ותרנגולת הולכים ברחוב. התרנגולת מביטה בחזיר ואומרת "היי, אולי נפתח ביחד מסעדה?" החזיר מביט בתרנגולת ואומר "רעיון טוב, איך את רוצה שנקרא לה?" התרנגולת חושבת על כך ואומרת "מה דעתך על 'קותלי חזיר וביצים'?" החזיר משיב "לא נשמע לי, אני אהיה מחויב, אך את תהי רק מעורבת"
כלומר, מידת המחויבות של בעלי העניין בפרויקט שונה: 'חזירים' מחויבים לפתח את התוכנה באופן מחזורי ולספק תוצרים באופן סדיר; כל השאר הם 'תרנגולות' שיש להן עניין בפרויקט אך משקל דעותיהן זניח. אם הפרויקט יכשל, יהיו אלה ה'חזירים' שישלמו את המחיר. השיטה מתחשבת בצרכים, ברצונות וברעיונות של ה'תרנגולות', אך אינה מתירה להן להפריע לפרויקט בכל דרך שהיא.

פגישות

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

פגישת ניתוח מאוץ (Sprint Retrospective)

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

עתודת המוצר (Product Backlog)

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

עתודת המאוץ (Sprint Backlog)

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

גרף שריפה (Burn down chart)

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