Agile Project Management with GitLab
לאחרונה נתקלתי במאמר נחמד שנכתב ע"י משתמשת GitLab , ומדבר על GitLab ככלי לניהול משימות ו Agile וגם מסביר איך עושים זאת הלכה למעשה.
תרגמתי אותו (וגם הוספתי הסברים משלי בכמה נקודות).
קישור למאמר המקורי כאן בסוף התרגום.
מעט רקע נוסף:
המאמר במקור נכתב ע"י Naz Eylem Kaya – משתמשת מרוצה של GitLab , שבתפקידה היא מנהלת מוצר . היא מחברת Trendyol והם משתמשים בגירסת Premium (בחברה 500 משתמשים בגירסת GitLab Premium), כאשר לאחרונה יכולות של ניהול Epics עברו אליה מגירסא יקרה יותר (Ultimate).
להלן תרגום המאמר (השארתי אותו בגוף ראשון).
ניהול פרוייקט מבוסס Agile באמצעות GitLab
לאחרונה החלטנו לאחסן את הקוד ואת פיתוח המוצר שלנו – כולם יחד ב- GitLab. בעבר השתמשנו ב- Jira, Microsoft Project וכלים לניטור פרוייקטים. מאחר שהפסקנו להשתמש ב- Stash / Bitbucket, החלטתי לבדוק אם GitLab גם שימושי לתפעול ה- backlog / issues/ ניהול הפרוייקט שלנו.
היו לכך 2 סיבות:
צוות הפיתוח ואני (מנהלת המוצר) נוכל לנהל את הפרוייקט מפלטפורמה אחת משותפת.
שנית – GitLab מאפשרת לנו למדוד 4 מטריקות חשובות:
- Cycle Time
- Lead Time (הזמן מה- commit ל- production)
- MTTR – במשמעות Mean Time To Repair (בהנחה ויש תקלה – כמה זמן לוקח להחזיר את הקוד בחזרה למצב של ריצה [ת.ג.])
- CFR – במשמעות Change Failure Rate (אחוז השינויים שהלכו ל- production ומצריכים עבודה נוספת [ת.ג.] )
סקירה על תכונות GitLab:
ראשית – כדאי לשים לב שהמינוחים ב- GitLab מעט שונים:
- User Story נקרא ב- GitLab בשמות Issue או Epic (תלוי איך תרצו להשתמש בהם)
- Sprint הוא Milestone
- Story Point הוא Weight
ניתן לראות "מילון" מלא שמשווה את המינוחים, במאמר שלנו על AGILE ו- GitLab שכתבנו ב- 2019 וניתן להורידו כאן (ת.ג.)
Product Backlog
משימות (issues) משוייכות לפרוייקט (Project). יש ליצור פרוייקט ואח"כ אפשר לייצר בו issues :
לאחר שיוצרים issue, ניתן להוסיף User Story לתוך שדה ה- Description (ולפרט שם מה שנהוג – כגון הסבר על הפרסונות; תיאורי מקרה ומה יקרה וכו'). ניתן גם לצרף קבצים לתיאור. ניתן גם לציין משתמשים / בעלי תפקידים – מה שיעזור להבין מי אחראי על הפיתוח, על הבדיקות ועוד.
ניתן גם לקשור בין user stories שתלויים אחד בשני. מכיוון שבכוונתו לקשר בין user story ל- API שאנחנו מפתחים, משתמשים יכולים להזיז issue לפרוייקט אחר ("example-api") ע"י הקלקה פשוטה על כפתור Move (הכפתור נמצא בפאנל בצד ימין).
הוספת User Story ל- Sprint
לשם כך משתמשים ב- milestone – פשוט מציינים מספר, מוסיפים תאריך התחלה ותאריך סיום:
ניתן להוסיף פרטים נוספים ל- milestone, ולקשר אותו לפרוייקט סצפיפי או לקבוצה (group).
הוספת Labels
ניתן להוסיף labels, וכך בעצם לסמן ולתייג issues. זה יכול לשמש בהמשך כאמצעי יעיל להפעלת פילטרים, וכסוג של custom fields.
ניתן לבחור צבע נפרד לכל label (שימושי למשל לצורך סימון ויזואלי של חשיבות ה- label . למשל אפשר לסמן ש- bug יקבל צבע אדום):
ניתן גם להשתמש ב- Scoped Labels , בפורמט key::value, המונעים מצב שבו issue יקבל שני לייבלים שסותרים אחד את השני (זו אפשרות מתקדמת יחסית – קיימת החל מגירסת Premium). למשל:
ניתן להגדיר את שני ה- labels הבאים:
priority::low
priority::high
ואז issue יוכל לקבל רק אחד מהם ברגע נתון (שינוי לאחר יבטל אוטומטית את ה- label האחר ששייך לאותו key)
SCRUM Board
ניתן לבנות board שמותאם בדיוק לצרכים שלי – וזה הפיצ'ר האהוב עלי ב- GitLab . אפשר למשל להגדיר board בשם "Development", ואז מוסיפים לו labels באופן כזה שכל אחד מסמל סטטוס פיתוח / בדיקות, ולאחר מכן מוסיפים אליו issues . למשל:
To-Do, DEV-In-Progress, DEV-Done, TEST-In-Progress, UAT
כעת אפשר פשוט לגרור issues לתוך ה- board (בשיטת drag&drop) .
עדיין אפשר יהיה לראות labels אחרים של כל issue (במידה וקיימים) – מה שעוזר לזהות במהירות את התכונות של כל issue שעל הלוח.
אפשר גם לסדר את סדר ההופעה של ה- issues – שימושי כדי לציין תעדוף (priority) שלהם מבחינת סדר מימוש / קדימות תיקון באגים וכד'.
ויותר מזה – אפשר ליצר הרבה לוחות, להוסיף פילטרים כך שזה ישמש הרבה צוותים שונים או יאפשר לראות את הפרוייקט מפרספטיקבות שונות.
בדוגמא הבא יצרנו לוח עבור "Technical Analysis" :
יצרנו 2 לייבלים בשם TA-Needed ו- TA-Done
יצרנו את הלוח. לאחר מכן בחרנו אותו מבין רשימת הלוחות (ב- drop-down list השמאלי)
יצרנו פילטר מסוג Milestone (שיציג לנו ספרינט מסויים – את הספרינט העתידי).
וטדאאם … יש לנו לוח שמציג את המשימות לניתוח טכני בספרינט העתידי:
כדאי לדעת: ב- GitLab למעלה מ- 40 פיצ'רים הנוגעים לניהול משימות ו- issue tracking. אפשר לפנות אלינו ולקבל רשימה מפורטת של כל הפיצ'רים, כולל פירוט באיזו גירסא הם זמינים – חינמית / בתשלום וכד'. הפרטים ליצירת קשר בהמשך המאמר (ת.ג.)
ניטור ביצועי פיתוח
אנחנו משתמשים גם ב- Epics שעברו להיות יותר ברי-השגה לאחרונה (לאחרונה רוב הפיצ'רים התומכים בזה עברו לגירסת Premium מהגירסא היקרה יותר Ultimate).
Epic Roadmap מאפשר לייצר תצוגה ויזואלית של ביצועים וקצב הפיתוח שלנו, על ציר הזמן. בתצוגה אפשר לראות deadlines , משקל , אחוז העבודה שכבר הושלמה (אם הגדרתם משקלים). אפשר להגדיר את ה- deadlines באופן ידני או לקחת את זה מה- sprints (שגם אותם אפשר להוסיף לתצוגה). לדוגמא:
ואם פותחים milestone , אפשר לייצר בקלות burndown chart (שמראה את צפי העבודה שנותרה לאורך ציר הזמן) , כפי שניתן לראות להלן:
לצד זה אפשר גם לקבל אנליטיקות מ- GitLab – למשל: [TBD]
כדאי לדעת: ב- GitLab למעלה מ- 15 פיצ'רים הנוגעים ל- Epics (ובנוסף למעלה מ- 40 תכונות התומכות ב- בניהול משימות ו- issue tracking). אפשר לפנות אלינו ולקבל רשימה מפורטת של כל הפיצ'רים, כולל פירוט באיזו גירסא הם זמינים – חינמית / בתשלום וכד'. הפרטים ליצירת קשר בהמשך המאמר (ת.ג.)
לסיכום:
בתחילה חשבתי ש- issues ב -GitLab יכולים להיות רק ב -2 מצבים: פתוחים או סגורים. גיליתי שבעצם אפשר להגדיר כל סטטוס שרוצים (בעזרת הלוחות).
גם האפשרות לריבוי לוחות (כפי שהודגם לעיל) שימושית מאוד.
הצגת Epics על ציר הזמן (timeline) גם מאוד שימושית – ואינה קיימת ב- Jira .
לצד היתרונות הרבים יש גם כמה חסרונות:
ההתמצאות בהתחלה אינה טריויאלית וקצת מבלבלת – למשל – בהתחלה יצרתי milestone עבור פרוייקט ולא עבור קבוצה – מה שגרם לכך שכאשר יצרתי sprint , ה- milestone קושר לפרוייקט אחד בלבד.
שנית – אין בקרה על הסטטוסים – אפשר למשל ליצור issue בלי שמשתמשים יהיו חייבים להצמיד אליו weight (היינו רוצים לאכוף זאת).
לסיכום: חווית השימוש שלי כ- product manager דומה מאוד ל- Jira. מערכת GitLab מספקת את כל הצרכים והדרישות שלי. יותר מזה – היא הרבה יותר גמישה מ- Jira. צוותים יכולים לאמץ זאת בקלות ולהתאים זאת לצרכים שלהם.
חברת ALM-Toolbox היא המפיצה הרשמית של GitLab בישראל, ומספקת יעוץ, הטמעה, הדרכות, התאמת רישוי Enterprise לצרכי הלקוח, מכירת רישוי של GitLab ו- Jira, וכן תכנון והקמה של תהליכי פיתוח, בדיקות ו- CI pipelines. נוכל לסייע בכל עניין הקשור ל- GitLab ו- Jira בסביבות בענן או על שרת פרטי (on-premises)
נשמח לענות על כל שאלה – אפשר לפנות אלינו במייל gitlab@almtoolbox.com או טלפונית 072-240-5222
קישורים רלבנטים:
- המאמר המקורי
- GitLab & Agile Software Development (מאמר המפרט את כל יכולות ה- Agile ב- GitLab – בעברית – להורדה)
- אתר GitLab בעברית ישראל
- לקבלת הצעת מחיר ל- GitLab Premium