פיתוח זריז וגמיש (זמיש) בשיטת agile

מה זה Agile?

אג׳ייל היא מתודולוגית פיתוח השואפת להתייחס לפיתוח תוכנה בצורה שונה מבחינת זריזות וגמישות התהליך.

כדי להסביר את המתודולוגיה נתחיל בהסבר קצר על שיטת הפיתוח המסורתית שנקראת גם waterfall. בשיטה זו אנו מתחילים באפיון מקיף של הפרוייקט כדי להבין את כל המשמעויות והנגזרות הטכניות שלו. אח״כ אנחנו מחלקים את המשימות בין צוותי פיתוח שונים (עיצוב, UI, פונקציונליות, QA ועוד…). כל חלק בתהליך הפיתוח תלוי בחלק שלפניו, כך שלא ניתן למשל להתחיל בפיתוח הפונקציונליות לפני שעיצוב הפרוייקט מוכן, מאושר וסגור באופן סופי.

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

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

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

המנשר לפיתוח תוכנה זריז מצהיר כך:

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

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

עקרונות שיטת Agile

  • ראש סדר העדיפויות הוא לספק מוקדם ובאופן רציף ככל האפשר תוכנה בעלת ערך ללקוח.
  • מצפים בברכה לשינויים בדרישות התוכנה, אפילו בשלב מתקדם של הפיתוח. תהליכים מהירים ברי-שינוי מאפשרים יתרון משמעותי בתחרות הלקוח.
  • אספקה של תוכנה עובדת באופן תדיר, ממספר שבועות עד למספר חודשים, עם שאיפה לסולם זמנים קצר.
  • אנשי פיתוח והמשתמש העסקי חייבים לעבוד ביחד באופן יום יומי לאורך הפרויקט.
  • בנה פרויקטים על בסיס יחידים בעלי מוטיבציה. תן להם את סביבת העבודה, ענה על צורכיהם וסמוך עליהם שהעבודה תעשה.
  • הדרך האפקטיבית והמספקת ביותר לשיתוף מידע בקבוצת הפיתוח היא שיחה פנים מול פנים.
  • תוכנה עובדת היא יחידת המידה העיקרית להתקדמות אמיתית בפיתוח.
  • תהליכים "קלי תנועה" מקדמים sustainable development (תהליך שאינו פוגע בעתיד על מנת ליהנות ממנו בהווה) .
  • המשקיעים, המפתחים והמשתמשים צריכים לשמור על קצב קבוע לאורך זמן.
  • יש לספק תשומת לב מתמשכת למצוינות טכנולוגית ועיצוב (Design) טוב שמגביר את "קלות התנועה".
  • פשטות – היא חיונית (האומנות למקסם את כמות העבודה שלא תעשה).
  • הארכיטקטורה, העיצוב והדרישות חייבות להתבצע בתוך "קבוצות עצמאיות" (כמו עוצבה בצבא שמנהלת את עצמה ובעלת כל המשאבים).
  • בזמנים רגועים, על הצוות להגות ולחשוב על איך להפוך להיות יותר אפקטיבי, מאשר לדמות את התנהגות שלו לזה.