إدارة مشاريع تطوير البرامج على Github Projects

إدارة مشاريع البرمجيات
Github

بدأت منصة Github مؤخرًا في الإشارة إلى الإصدار الجديد من مشاريعها باسم "Github Projects"، بينما تم تغيير اسم الإصدار السابق إلى "Github Projects (Classic)". هذا التحديث يمثل خطوة نحو تعزيز قدرات ووظائف المنصة، حيث يقدم الإصدار الجديد مزايا وتحسينات تساعد في تسهيل إدارة المشاريع وتعاون الفرق. الإصدار الكلاسيكي ما زال متاحًا للمستخدمين الذين يفضلون واجهته ووظائفه الحالية، لكن الشركة تشجع المستخدمين على تجربة واعتماد الإصدار الجديد للاستفادة من التحسينات والميزات الإضافية التي يقدمها.

تعريف ب Github Projects

هذه الميزة هي نسخة جديدة من ميزات إدارة المشاريع (Projects) يمكن استخدامها على Github. تتميز هذه النسخة بانها أكثر مرونة و كذلك فهي قابلة للتخصيص بشكل أوسع مما يزيد كفاءة التخطيط وتتبع العمل على GitHub.

ما هو Github Projects

Github Projects هو نظام قابل للتخصيص يشبه جدول البيانات، يتيح لك إنشاء سجلات للمهام، بما في ذلك إمكانية استيراد المهام من القضايا (Issues) وطلبات السحب (Pull Requests) الموجودة على جيتهاب.

يوفر Github Projects إمكانية إنشاء عدة طرق عرض مختلفة لنفس جدول المهام، وذلك بناءً على التصفية، الفرز، والتجميع المنطقي للمهام.

عند استيراد القضايا (Issues) أو طلبات السحب (Pull Requests) من Github، يمكنك الوصول إلى معظم الحقول الموجودة فيها، بما في ذلك العنوان، التسميات (Labels)، المكلفين، وغيرها. كما يمكنك إضافة حقول مخصصة تساعدك في تنظيم المهام بطريقة تتناسب مع متطلباتك الخاصة..

أنواع البيانات التي يمكنك تخزينها في جداول Github Projects

1. Text

بيانات نصية قصيرة مثل التعليقات والروابط وما إلى ذلك.

2. Number

أي أرقام مثل عدد الأيام وتقديرات النقاط للمهام وما إلى ذلك.

3. Date

بيانات التاريخ بدون مكون الوقت ، لذا يمكنك اختيار يوم مثل 25/8/2022.

4. Single Select

تسمح هذه الحقول باختيار قيمة واحدة من مجموعة من القيم التي يمكنك تحديدها مسبقًا.

5. Iteration

قد يكون التكرار جديدا بالنسبة لك. التكرارات هي مجرد كتل زمنية تتكرر وقد تكون بها فترات راحة. يتم إنشاء التكرارات تلقائيًا نيابة عنك ولكن يمكنك تخصيص أسمائها ونطاقات التواريخ. يمكنك استخدام نوع البيانات هذا ، على سبيل المثال ، لتصنيف المهام الخاصة بك Sprints إذا كنت تتبع منهجية Scrum.

تسعير Github Projects

Github Projects هو جزء من خدمة Github وليس لديه باقات تسعير منفصلة.

بعض التحديات ل Github Projects

  • حقول الاختيار من متعدد غير مدعومة
  • لا توجد ميزة التراجع
  • لا يمكن فرز تذاكر لوحة كانبان
  • لا يتم دعم التعبئة السريعة مثل تلك الموجودة في Excel
  • لا يمكن تثبيت الأعمدة لتقليل التمرير الأفقي.
  • لا يوجد سجل تغييرات لذلك من الصعب إجراء التغييرات ومن قام بها
  • لا يمكنك استخدام التاريخ الحالي عند البحث عن حقول التاريخ وتصفيتها.
  • عدم الارتباط يجعل من الصعب إعادة استخدام الأعمدة

كيفية إستخدام Github Projects

إنشاء مشروع Projects جديد

مشاريع Github Projects ليست مخصصة لأي Repository معينة ، لذا انتقل إلى صفحة Github الرئيسية لمشاريع الحساب الشخصي أو الصفحة الرئيسية لمؤسستك إذا كان لديك حساب مؤسسة.

اضغط على [Projects] ثم اضغط على [[New project]

 اضغط على [New project]

قد ترى الشاشة التالية والتي تخبرك ببعض المعلومات حول بعض ميزات Github Projects ، اضغط على [Create]

الآن تم إنشاء مشروعنا الجديد. قد ترى الشاشة التالية. إضغط على Views لتغيير اسم "العرض"

يمكنك تغيير اسم العرض إلى أي اسم تريده. على سبيل المثال سنقوم بتغيير الاسم إلى Main:

إنشاء عمود جديد

لنقم الآن بإضافة عمود آخر إلى جدولنا. لإضافة عمود جديد ، ما عليك سوى الضغط على علامة + ثم الضغط على [New field] كما يلي.

لنقم الآن بإضافة عمود آخر إلى جدولنا. لإضافة عمود جديد ، ما عليك سوى الضغط على علامة + ثم الضغط على [New field] كما يلي.

يمكنك إعطاء العمود أي اسم تريده. هنا سوف نسميه Task Type. أدخل الإسم ثم اضغط على Single select والتي ستشكل نوع بيانات العمود.

سنقوم الآن بإدخال بعض القيم التي نريد استخدامها في عمود Task Type مثل (Backend a و Frontend)

وبهذا نكون قد أنشأنا عمودًا جديدًا من نوع Single Select.

إضافة مهام إلى المشروع في Github Projects

هناك عدة طرق لإضافة مهام إلى مشروعك عند استخدام Github Projects ، لكننا سنعرض مثالاً على مدى سهولة وسلاسة إضافة Issue أوPull Request أو تذكرة مهام مخصصة للمشروع.

أولاً ، اضغط على علامة + كما هو موضح أدناه ، وستظهر لك قائمة بها 3 خيارات ، اختر منها:

  • [Add an issue from a repository]

يمكننا الآن البدء في البحث عن أي Issue أو Pull Request من أي repository في مؤسستنا ، أو أي repository خاصة بك إذا كنت تستخدم حسابك الشخصي.

لدي repository تسمى laimuna-cms تحتوي على Issues و PRs أريد إضافتها إلى هذا المشروع . سأضغط عليها للبحث في Issues و PRs داخلها.

يمكننا الآن رؤية قائمة ال Issues و ال PRs من laimuna-cms التي اخترناها للتو. سأضغط على ال Issue في أعلى القائمة لإضافته إلى مشروعي.

يوفر Projects Beta أيضًا خيار إنشاء تذاكر مهام غير مرتبطة بأي repository. يقد كون هذا مفيدًا إذا كنت تريد فقط إنشاء مسودات أو إذا كنت ترغب في مشاركة المهام مع أعضاء ليسو في فريق التطوير. فقط ابدأ في الكتابة على صف جديد على النحو التالي.

سترى أن الصفين الأول و الثاني لهما واجهة مستخدم مختلفة في بداية الصف للتمييز بين Issues وال PRs من جهة و مهام المسودات مثل تلك التي أنشأناها للتو من جهة أخرى.

يمكنك أيضًا الحصول على عرض كامل للتذاكر. بالنسبة ل Issues و ال PRs ، فسترى جميع المعلومات.

ستتمكن أيضًا من تعديل وصف ال Issue أو إضافة تعليقات وردود أفعال. هذا مفيد لأنك لن تحتاج إلى الانتقال إلى ال Issue في صفحة جديدة.

لنضف نقطة إضافية لوصف ال Issue ثم لنحفظ التغيير الذي أجريناه بالضغط على [Update comment]:

إضافة عرض للجدول

لإنشاء عرض جديد ، اضغط على زر [+ New view] أعلى الجدول

دعنا الآن نختار تخطيطًا جديدًا (Layout) لعرضنا الجديد. اضغط على السهم الموجود على يمين اسم العرض كما هو موضح أدناه.

من القائمة المنبثقة ، يمكننا اختيار ال Layout لعرضنا. يمكننا اختيار إما عرض الجدول (Table) أو عرض اللوحة (Board). دعونا نختار Board هذه المرة:

سيتغير التخطيط وسيتم تنظيم مهامك في لوحة كانبان. العمود الافتراضي هو حالة المهمة (Status) والتي يمكن أن تكون (Todo, In progress, Done). ستتم إضافة المهام التي لم يتم تعيين الحالة لها إلى عمود No Status.

دعنا نغير اسم العرض إلى Main Kanban ليسهل علينا معرفة ما هو.

تحويل مسودة مهمة إلى issue.

يمكنك إنشاء Issues من مهام مشروعك دون الحاجة إلى نسخ كل منها يدويًا. من السهل جدًا القيام بذلك من الصفحة الرئيسية للمشروع. اختر أولاً المسودة التي تريد تحويلها إلى قضية ما.

في صفحة تفاصيل مهمة المسودة ، اضغط على [Covert to issue]

سترى قائمة بال repositories الخاصة بك وستكون قادرًا على البحث في جميعها. اختر ال repository التي تريد إضافة المهمة الحالية إليها وسيتم إنشاء ال issue.

إستخدام ميزة ال Iteration

كما ذكرنا سابقًا ، يمكن أن تكون هذه الميزة مفيدة إذا كنت ترغب في إنشاء كتل زمنية متكررة مثل تلك الخاصة بال Sprints.

لإنشاء عمود Iteration ، اضغط أولاً على علامة [+] كما هو موضح أدناه:

أدخل اسم للعمود مثلا (Sprint) ثم اختر [Iteration] كنوع العمود.

سيؤدي هذا إلى إنشاء إعدادات Iteration الافتراضية مع بدء ال Iteration الأول في نفس اليوم وبمدة أسبوعين. يمكن تغيير هذه الإعدادات من القوائم المنسدلة. اضغط على [Save and create] لحفظ و إنشاء العمود.

سيؤدي هذا إلى إنشاء عمود Sprints الجديد بقيم فارغة.

الآن يمكننا المضي قدمًا واختيار Iteration لأي مهمة بالضغط على السهم في الخلية ثم اختيار ال Iteration المطلوب من القائمة المنسدلة:

بعد اختيار Sprint1 ، ستتم إضافته إلى المهمة:

يمكننا تكرار ذلك لجميع المهام الأخرى:

يمكننا أيضًا تغيير قيم ال Iteration ، مثل تاريخ البدء والمدة بالإضافة إلى إدخال
فواصل بين ال iterations.

للقيام بأي من هذه التغييرات ، اضغط على سهم العمود ثم على [Edit values] من القائمة.

سترى تفاصيل إعدادات الiteration لعمود Sprint:

لإضافة itreation جديد ، اضغط على [Add iteration]

سيتم إنشاء عنصر iteration جديد (Sprint 4).

الآن ، لنقم بإنشاء طريقة عرض Kanban جديدة لمشاهدة مهام كل iteration على حدة. للقيام بذلك ، قم بإنشاء View جديد ومنحه اسمًا وصفيًا على سبيل المثال Sprints Board.

و غير التخطيط إلى Board ثم إضغط على [column field: Status]

سيكون العمود الافتراضي لفصل Kanban هو Status كما ذكرنا سلفا. دعونا نغير ذلك إلى Sprint.

سنرى أن لوحة الكانبان ستصبح مقسمة بناء على عمود Sprint بدلا من عمود Status:

تجميع المهام (خاصية Group)

تسمح لك هذه الميزة بتجميع المهام (Drafts ، Issues ، Pull requests) معًا بناءً على قيمة مشتركة يمكنك اختيارها.

لمعرفة كيفية استخدام هذه الميزة ومدى فائدتها ، دعونا ننشئ View جديدًا ونطلق عليه Sprit Groups.

الآن دعونا نجمع المهام بناء على عمود Sprint بالانتقال إلى خيارات العرض.
نرى أنها تقول groups: none ، لأننا لم نطبق أي تجميع حتى الآن. لتعيين التجميع للعرض الحالي، اضغط على [groups: none]

سترى نافذة منبثقة أخرى بها قائمة من الأعمدة التي يمكنك استخدامها لتجميع المهام. إضغط على [Sprint]:

سترى أن مهامك قد تم تجميعها حسب قيم Sprint.

لاحظ النقطة الزرقاء بجانب اسم ال View. يشير هذا إلى أنه لم يتم حفظ تغييراتنا. لحفظ التغييرات الأخيرة ، اضغط على السهم كما هو موضح أدناه:

ثم اضغط على [Save changes].

سيؤدي هذا إلى حفظ التغييرات الأخيرة وسيُظهر عرض Sprint Groups مهامنا مجمعة حسب قيم Sprint.

إخفاء بعض القيم (خاصية Hide)

عند استخدام Projects Beta ، من المهم لنا أن نكون قادرين على تخصيص تذاكر المهام عن طريق إضافة أي عدد من الحقول لمساعدتنا في تجميع المهام وتصفيتها والبحث فيها بسهولة. قد ينتج عن هذا عدد مهول من المعلومات التي قد تعقد فهم المهام. لهذا السبب ، يوفر Projects Beta خيار إخفاء الحقول التي لا نهتم بها في ال View. لن يؤدي إخفاء الحقول إلى حذفها ، بل سيجعلها ببساطة غير مرئية في ال View التي نخفيها فيها.

لإظهار أو إخفاء بعد الحقول في عرض Main Kanban على سبيل المثال ، إذهب ل Main Kanban ثم إضغط على السهم يمين اسم العرض:

في النافذة المنبثقة ، سترى Configuration ، والتي من خلالها يمكنك رؤية الحقول المعروضة حاليًا في تذاكر المهام الخاصة بك في هذا العرض. لتغيير هذا اضغط على [Title, Assignees, and Status]:

ستظهر نافذة منبثقة أخرى حيث سترى قائمتين من مربعات الاختيار بأسماء جميع حقول الجدول. تعرض القائمة العلوية التي تحمل عنوان Visible fields الحقول المعروضة حاليًا في التذاكر الخاصة بك ، بينما تعرض قائمة Hidden fields الحقول غير المعروضة في التذاكر.

يمكنك جعل أي حقل مرئيًا عن طريق تحديد خانة الاختيار الخاصة به أو إخفاءه بإلغاء تحديد خانة الاختيار الخاصة به ، وسوف ينعكس هذا على الفور على تذاكر المهام.

عرض كانبان

يسمح لك عرض Kanban بتغيير قيم الحقول في المهام بسهولة عن طريق نقل التذاكر بين أعمدة كانبان. على سبيل المثال ، يمكننا تغيير حقل Status لأي تذكرة عن طريق نقلها من عمود Todo إلى عمود آخر:

فرز المهام (خاصية Sort)

يمكنك فرز تذاكر المهام بناءً على أي حقل ، ولكن الفرز ينطبق فقط على طرق العرض مع تخطيط Table وليس على Board.

لفرز المهام ، اضغط على السهم بجوار Sprint Groups ثم اضغط على [/sort: manual]

سترى قائمة الحقول التي يمكنك استخدامها لفرز تذاكر المهام:

دعنا نفرز التذاكر حسب Status في هذا العرض. للقيام بذلك ، اضغط على [Status]

بحث و فلترة المهام (خاصية Search or filter)

لإدارة المهام بشكل فعال ، قد نحتاج إلى إضافة عوامل تصفية إلى الView لإظهار المهام التي تتطابق مع معايير محددة. لحسن الحظ ، يسمح لنا Projects Beta بإجراء بعض البحث والتصفية على مهامنا. لاستكشاف هذه الميزة ، دعونا نقم بإنشاء طريقة عرض جديدة ولنسميها Unfinished Stories.

دعونا نجمع حسب Sprint كما فعلنا من قبل في عرض Sprint Groups.

بعد ذلك لنختار [Search or filter this view] من قائمة الضبط:

إكتب sta و سترى أنه قد تم إقتراح حقل status أسفل حقل الإدخال. إضغط على status:

ستظهر نافذة منبثقة أخرى مع القيم الفعلية التي يمكنك التصفية من خلالها لحقل status، و حقل إضافي هو Exclude status حيث يتيح لك هذا الخيار أن تختار المهام التي لا تستوفي شرط أل status الذي سنختاره لاحقا ، لذا لنضغط على [Exclude status].

ثم إضغط على [Done].

سيؤدي هذا إلى تصفية جميع المهام التي لها حالة بخلاف Done.

أتمتة سير العمل (خاصية Workflows)

يأتي Projects Beta مرفقًا ببعض عمليات أتمتة سير العمل التي يمكنك تمكينها أو تعطيلها لمشروعك. لا تزال الأتمتة المخصصة غير مدعومة من قبل الموجودة في خارطة طريق التطوير.

لعرض وتبديل الأتمتة ، انتقل إلى صفحة الإعدادات:

هنا يمكنك الإطلاع على خيارات الأتمتة المدعومة ويمكنك تمكينها أو تعطيلها لمشروعك.

الخلاصة

Projects Beta من Github كما يوحي الاسم لا تزال منتجًا تجريبيًا و من الممكن أن تتغير. لقد قدمنا بعرض بعضًا من ميزاته القوية في هذا المنشور لمساعدتك على فهم كيفية استخدامها أو تجربتها بشكل أفضل.