מתודולוגית Agile, על מה מדברים?

PDF versionSend to friendPrinter-friendly version

בעולם של ניהול פרויקטים בתחום טכנולוגיות המידע משתמשים בשנים האחרונות במושג חדש יחסית – מתודולוגיות Agile לניהול פרויקטים.

Agile – זריזות, היא מתודולוגיה איטרטיבית שהותאמה לפיתוח תוכנה בצוותים קטנים תוך שימת דגש על יעילות, זריזות ואיכות.
מאחר ובאתר שלנו אנחנו לא אוהבים להתייחס לתיאוריות אלא לפרקטיקה בלבד אנחנו ננסה באמצעות סדרת מאמרים לבחון את מתודולוגית Agile ודרכים ליישם אותה בצורה פשוטה בתחום טכנולוגיות המידע ופיתוח תוכנה.
תהליכי Agile מתמקדים בנקודה הבעייתית ביותר בחיי פרויקט תוכנה והיא השינויים הנדרשים והדרכים לתת להם מענה באופן זריז ומהיר.
בכדי שנוכל לצור הקשרים הספציפיים צריך להבין את שלושת המאפיינים העיקריים של Agile:
  1. צעדים אינקרמנטליים ואבולוציוניים – מאפשריים לשלב במהלך הפרויקט שינויים הנובעים מאירועים פנימיים וחיצוניים.
  2. חלקים קטנים ומודולריים – מאפשרים להוסיף ולשנות את התהליך בהתאם לצרכים משתנים.
  3. בסיס זמן – הבנוי על מחזורי עבודה החוזרים על עצמם המכילים מעגלי משוב ואבני דרך לבדיקת התקדמות.
בעולם העסקי של היום השינויים הם המאפיין הקבוע. שינויים ארגוניים או שינויי שוק בכל הרמות מתרחשים כל הזמן. השינוי עצמו אינו הבעיה. על העסק והתהליכים העסקיים שלו לתמוך בעולם משתנה זה.
בעבר השינויים היו אינקרמנטליים וכאשר התרחש שינוי רדיקאלי, היה פסק זמן מספיק ארוך עד שהופיע השינוי הבא אחריו.
הבעיה בעולם העסקי העכשווי היא ששינוי אינו עוד אינקרמנטלי או אפילו לנארי. שינויים רדיקאליים שאינם לינאריים מתרחשים בחיים העסקיים כל הזמן. הקצב של השינויים לא רק הולך וגדל אלא גם שאי-הוודאות הופכת להיות דבר רגיל במקומותינו.
כל הארגונים עומדים בפני בעיות שיכולות לקבל מענה ע"י מתודולוגית Agile, אבל לא כל החברות בשלות לרעיונות הרדיקליים הנדרשים בכדי להפוך לארגון Agile. Agile הוא עדיין תחום צומח ולכן לא ניתן לרכוש פתרונות מוכנים מהמדף כמו במתודולוגיות ותיקות אחרות. אלמנטים של Agile אפשר למצוא בהרבה תהליכים, אבל סנונית אחת אינה מבשרת את בוא האביב.
רק ארגונים שמודעים לסיכונים ואינם מפחדים מהם יכולים לקחת על עצמם משימה של תהליך Agile. ארגונים שצריכים תבניות מוגדרות ומבנה מפותח בשלמות שאפשר ליישמו בסיכון נמוך צריכים להתרחק מתהליכי Agile.
רכישת ויישום תוכנה מונע בדרך כלל ע"י צורך לפתור בעיה ספציפית, לעשות דברים טוב יותר, לשנות או לשפר את התהליכים העסקיים. לקהילה העוסקת בתהליך פיתוח תוכנה יש שתי גישות ביחס לתוצאה של הרצויה:
  • דברים משתפרים עם הזמן
  • דברים הופכים לגרועים יותר עם הזמן
קונפליקט זה של דעות מוסיף יותר בלבול לשאלה – האם אנחנו באמת משפרים את התוצאה של התוכנה ע"י שיפור תהליכי הניהול הפיתוח?
לפני מספר שנים, מתודולוגיות ותהליכים היו תחום של אקדמיה. גן החיות של המתודולוגיה גדל ובאותו זמן התמקד בהיבטים מסחריים של מכירת מתודולוגיות אלו לארגונים, מנהלים ומפתחים. תהליך מכירה זה בהרבה מקרים הביא ליישום רציונאלי של שיטות אלה בתחומים ספציפיים.
לעומת זאת התשתית של הטמעת מתודולוגיות ניהול פרויקטים Agile מספקת הנחיות כלליות ולא כללים ברורים כמו במתודולוגיות אחרות.
במאמר הבא נדון בגישות המובילות ובערכים של מתודולוגית Agile.
רונן שמחון