מתודולוגיות פיתוח וניהול פרויקט תוכנה

תקציר העבודה

תקציר – Abstract מרכיב מרכזי ביותר בניהול פרויקטי תוכנה (כמו גם פרויקטים בתחומים אחרים) הוא הגדרה מסודרת של מחזור חיי הפרויקט. פרויקט הוא שרשרת של צעדים (שלבים) שתחילתה בייזום וסופה בהתקנה ומסירה ללקוח. ובאמצע, אפיון מסודר, פנייה לספקים (אופציונאלי), עיצוב, בנייה, טסטים וכו'. שרשרת זו מכונה מחזור חיי הפרויקט או בקיצור מחזור חיים ובאנגלית, SLC או SDLC שפירושו System [Development] Life Cycle. כל מתודולוגיה מכובדת לניהול פרויקט מציגה את מחזור החיים שלה, אך אם נתעלם מהבדלי מינוחים וטרמינולוגיה, כולם מדברים, פחות או יותר, על אותו מחזור חיים, או לפחות על אותם מרכיבים בסיסיים שלו.  במשך שנים "שלטה בכיפה" השיטה הסדרתית. לפי שיטה זו שלבי מחזור החיים מתבצעים באופן רציף ועוקב אחד אחרי השני. בעיקרון, כל "פתיחה" של שלב חדש בפרויקט מותנית ב"סגירה" מסודרת של השלב הקודם, כולל כל האישורים המקצועיים והניהוליים. מאז עלתה על הבימה בשנות השמונים של המאה הקודמת, שוכללה שיטה זו בהדרגה ונוספו לה מרכיבים חשובים כמו התייחסות לשלב התפעול והתחזוקה (שלב מוזנח בדרך כלל), טיפול בצורך בהרחבות ופיתוחים נוספים, הבחנה בין סוגי מערכות וגדלי פרויקטים ועוד. אך ביסודה, נשארה השיטה הסדרתית, או כפי שהיא גם מכונה לפעמים: מודל "מפל המים", בצורתה הבסיסית.
ענף טכנולוגיית המידע עבר, כידוע, פיתוח מואץ ושינויים מפליגים, בעשור האחרון. זאת, הן בשל התפתחויות טכנולוגיות פנימיות מרשימות בכל שלושת היסודות המרכזיים שלו: חומרה, תוכנה ותקשורת; והן בשל התפתחויות עסקיות חיצוניות, היינו דרישות הולכות וגוברות של הלקוחות לספק מערכות מידע בקצב מהיר ומשתנה ללא הרף. שם המשחק, בשני המישורים, הוא Time to market. לאור זאת, ברור שמחזור חיים סדרתי, עם כל יתרונותיו הברורים והשכלולים שעבר במרוצת הזמן, אינו מספק ויש צורך לעבור לשיטות מתקדמות יותר.
בשנות התשעים החלה להופיע שיטת הפיתוח בסבבים, או בשמה האחר, השיטה המדורגת (Iterative/Incremental Development). המייצג המרכזי של שיטה זו הוא המודל הספירלי של פרופסור Boehm. לפי שיטה זו, פיתוח המערכת מבוצע בסבבים הולכים ומתרחבים דמויי ספירלה. בכל סבב עוברת המערכת שלב נוסף של פיתוח, אשר נחלק לארבע מקטעים (תת-סבבים) ברורים: תכנון, חקר ישימות, בנייה ובחינה והערכה. למרות ששיטה זו הוצגה, משך תקופה לא קצרה, כאנטיתזה לשיטה הסדרתית, מתברר היום שיש בין שתי השיטות יותר השלמה מאשר ניגוד או עימות. השיטה הספירלית מתמקדת ב"ליבה" של מחזור החיים, בחלק בו המערכת מאופיינת לפרטים, מעוצבת, נבנית, משולבת ונבדקת בהדרגה. השיטה הסדרתית "עוטפת" את השיטה הספירלית ומגדירה את מכלול הפעולות שיש לבצע לפני ואחרי הליבה שהן מטבען פעילויות סדרתיות.
אך אין זה הכל. במקביל לשיטה הסדרתית והספירלית, הלכה והתפתחה מעין שיטה שלישית של פיתוח מרובה יחידות מסירה. הדגש כאן הוא על חלוקת המערכת לתת-מערכות וכתוצאה מכך חלוקת הפרויקט לתת-פרויקטים. שיטה זו מבוססת על הרעיון המקובל בכלל התעשייה של בניית מוצר במהדורות שונות. שיטה זו התפתחה "מלמטה למעלה", יותר בפרקטיקה ופחות באקדמיה, כתוצאה מצורך ברור של השטח לספק פתרונות מהירים ולהיענות לשינויים ודרישות חדשים לבקרים. מה שתרם לשיטה זו, בין השאר, הם מעורבות גוברת והולכת של הדרג הבכיר בנושאי המחשוב בארגון, עבודה משותפת וצמודה של מומחי המחשוב עם נציגות הלקוח וצוותי משתמשים (תוך שימוש בטכניקות שונות כגון JAD, Groupware ועוד) ומוכנות הלקוח לקבל פתרונות בשלבים.
שלוש השיטות, הסדרתית, הספירלית ופיתוח מרובה יחידות מסירה הן חלופיות אך לא סותרות. יש ביניהן השלמה ברורה ואנו זקוקים לשלושתן. שיטות אלה מעמידות בפני מנהל הפרויקט מגוון אפשרויות הן ברמה הניהולית (ניהול הפרויקט) והן ברמה ההנדסיתטכנית (ניתוח המערכת והנדסת תוכנה). כמנהל, הוא צריך לבחון ולהחליט באיזו שיטת ניהול כוללת הוא בוחר לנהל את הפרויקט: יחידת מסירה אחת או ריבוי יחידות מסירה. או שמא מדובר בכלל בפרויקט של הוספת יחידת מסירה למערכת קיימת. ואולי מדובר במקרי קצה מיוחדים כמו פרויקטים גדולים מאד מצד אחד או ההפך,  פרויקטים קטנים מאד וקצרי מועד באופן בולט. כאיש מקצוע, הוא צריך לבחור את שיטת הפיתוח המתאימה: הסדרתית או הספירלית. את זאת הוא יעשה יחד עם אנשי המקצוע הבכירים בפרויקט, בהתאמה לשיטת תוכן העניינים
תקציר – Abstract                                                                                           2
השיטה הסדרתית                                                                                          4
מפת"ח 5                                                                                                         7
השיטה הספירלית                                                                                         9
יחידות מסירה                                                                                              11
פיתוח בסבבים – Iterative Development                                                    14
סיכום, מפת"ח 6                                                                                          16
אפילוג, פיתוחים נוספים בהנדסת תוכנה                                                 18
רשימת איורים איור 1: מחזור חיים סדרתי                                                                                                4
איור 2: מודל מפת"ח – גישת המטריצה, סרגל אחד לאורך מחזור החיים                                    7
איור 3: מודל מפת"ח – פיתוח בסבבים מלווה בסרגל תוצרים אחד לאורך מחזור החיים               8
איור 4: השיטה הספירלית                                                                                                 9
איור 5: שילוב המודל הספירלי במחזור החיים הכולל של הפרויקט                                          10 איור 6: פיתוח מערכת במספר יחידות מסירה                                                                      11
איור 7: השוואה בין פיתוח מרובה יחידות מסירה ובין פיתוח עם יחידת מסירה אחת                  12
איור 8: פיתוח מערכת במספר יחידות מסירה בשיטה הספירלית                                             15
איור 9: המודל המסכם, פיתוח בסבבים בגישת מפת"ח 6                                                       16