« לעמוד הראשי

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 :

GitLab Creating User Stories

יצירת User Story (לחצו להגדלה)

לאחר שיוצרים issue, ניתן להוסיף User Story לתוך שדה ה- Description (ולפרט שם מה שנהוג – כגון הסבר על הפרסונות; תיאורי מקרה ומה יקרה וכו'). ניתן גם לצרף קבצים לתיאור. ניתן גם לציין משתמשים / בעלי תפקידים – מה שיעזור להבין מי אחראי על הפיתוח, על הבדיקות ועוד.

GitLab Adding user-story details

הוספת פרטים ל- User Story (לחצו להגדלה)

ניתן גם לקשור בין user stories שתלויים אחד בשני. מכיוון שבכוונתו לקשר בין user story ל- API שאנחנו מפתחים, משתמשים יכולים להזיז issue לפרוייקט אחר ("example-api") ע"י הקלקה פשוטה על כפתור Move (הכפתור נמצא בפאנל בצד ימין).

הוספת User Story ל- Sprint

לשם כך משתמשים ב- milestone – פשוט מציינים מספר, מוסיפים תאריך התחלה ותאריך סיום:

GitLab - Creating a Sprint

יצירת Sprint (לחצו להגדלה)

 

ניתן להוסיף פרטים נוספים ל- milestone, ולקשר אותו לפרוייקט סצפיפי או לקבוצה (group).

הוספת Labels

ניתן להוסיף labels, וכך בעצם לסמן ולתייג issues. זה יכול לשמש בהמשך כאמצעי יעיל להפעלת פילטרים, וכסוג של custom fields.

GitLab - Adding Labels

הוספת label (לחצו להגדלה)

ניתן לבחור צבע נפרד לכל label (שימושי למשל לצורך סימון ויזואלי של חשיבות ה- label . למשל אפשר לסמן ש- bug יקבל צבע אדום):

GitLab New label color selection

הוספת לייבל – בחירת צבע (לחצו להגדלה)

ניתן גם להשתמש ב- 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

GitLab Generate Scrumboard

כעת אפשר פשוט לגרור issues לתוך ה- board (בשיטת drag&drop) .
עדיין אפשר יהיה לראות labels אחרים של כל issue (במידה וקיימים) – מה שעוזר לזהות במהירות את התכונות של כל issue שעל הלוח.
אפשר גם לסדר את סדר ההופעה של ה- issues – שימושי כדי לציין תעדוף (priority) שלהם מבחינת סדר מימוש / קדימות תיקון באגים וכד'.
ויותר מזה – אפשר ליצר הרבה לוחות, להוסיף פילטרים כך שזה ישמש הרבה צוותים שונים או יאפשר לראות את הפרוייקט מפרספטיקבות שונות.

בדוגמא הבא יצרנו לוח עבור "Technical Analysis" :
יצרנו 2 לייבלים בשם  TA-Needed ו- TA-Done
יצרנו את הלוח. לאחר מכן בחרנו אותו מבין רשימת הלוחות (ב- drop-down list השמאלי)
יצרנו פילטר מסוג Milestone (שיציג לנו ספרינט מסויים – את הספרינט העתידי).
וטדאאם … יש לנו לוח שמציג את המשימות לניתוח טכני בספרינט העתידי:

GitLab Multiple boards

יצירת board לפי חתך ספציפי – שילוב של labels ו- milestone

 

כדאי לדעת: ב- GitLab למעלה מ- 40 פיצ'רים הנוגעים לניהול משימות ו- issue tracking. אפשר לפנות אלינו ולקבל רשימה מפורטת של כל הפיצ'רים, כולל פירוט באיזו גירסא הם זמינים – חינמית / בתשלום וכד'. הפרטים ליצירת קשר בהמשך המאמר (ת.ג.)

ניטור ביצועי פיתוח

אנחנו משתמשים גם ב- Epics שעברו להיות יותר ברי-השגה לאחרונה (לאחרונה רוב הפיצ'רים התומכים בזה עברו לגירסת Premium מהגירסא היקרה יותר Ultimate).

Epic Roadmap מאפשר לייצר תצוגה ויזואלית של ביצועים וקצב הפיתוח שלנו, על ציר הזמן. בתצוגה אפשר לראות deadlines , משקל , אחוז העבודה שכבר הושלמה (אם הגדרתם משקלים). אפשר להגדיר את ה- deadlines באופן ידני או לקחת את זה מה- sprints (שגם אותם אפשר להוסיף לתצוגה). לדוגמא:

GitLab Monitoring Performance

הצגת Epics כ- roadmap (לחצו להגדלה)

 

ואם פותחים milestone , אפשר לייצר בקלות burndown chart (שמראה את צפי העבודה שנותרה לאורך ציר הזמן) , כפי שניתן לראות להלן:

GitLab Burndown Chart

תצוגת דו"ח Burndown chart . לחצו להגדלה

לצד זה אפשר גם לקבל אנליטיקות מ- GitLab  – למשל: [TBD]

 

כדאי לדעת: ב- GitLab למעלה מ- 15 פיצ'רים הנוגעים ל- Epics (ובנוסף למעלה מ- 40 תכונות התומכות ב- בניהול משימות ו- issue tracking). אפשר לפנות אלינו ולקבל רשימה מפורטת של כל הפיצ'רים, כולל פירוט באיזו גירסא הם זמינים – חינמית / בתשלום וכד'. הפרטים ליצירת קשר בהמשך המאמר (ת.ג.)

לסיכום:

approved signature

המוצר התקבל אצלנו לעבודה !

בתחילה חשבתי ש- 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

 

קישורים רלבנטים: