How to do asynchronous Scrum standups using Discourse?

إذن، بعد أكثر من 4 سنوات، إليك لمحة عن كيفية استخدام فريق الذي أعمل فيه لمنصة Discourse في الاجتماعات اليومية القصيرة (Daily Scrums).

الإطار التنظيمي

  • فريق مشروع يعمل على مبادرات مفتوحة المصدر متنوعة بصفته “عملاء خارجيين”، لكنه يقع ضمن مؤسسة كبيرة.
  • تملك المؤسسة الأكبر أدواتها الخاصة للمُستندات، وإدارة المشاريع، والدردشة (Slack) وغيرها، وكانت تاريخياً غير راغبة في التحول إلى أدوات مفتوحة المصدر أو مشاركة أعمال المؤسسة علناً.
  • يجب أن يكون عمل هذا الفريق (أ) متوافقاً مع معايير الإبلاغ داخل المؤسسة الأكبر، و(ب) متاحاً للجمهور.

الإطار التقني

  • منتدى Discourse يتيح للفريق التفاعل مع الجمهور والأطراف الخارجية الأخرى.
  • فئة مخصصة لإدارة المشاريع يمكن للجميع قراءتها، لكن فقط الفريق يمكنه الكتابة فيها.
  • فئة فرعية بعنوان “الوقوفات اليومية” (Daily Standups) تابعة لتلك الفئة، يمكن للفريق فقط الكتابة فيها، ومُعدّة لإغلاق المواضيع تلقائياً بعد 23 ساعة.
  • قمنا بإعادة تسمية @discobot وتأكّدنا من حصوله على صلاحية الوصول إلى الفئة.

الحل (الحالي حتى الآن)

  • نستخدم Zapier للتحكّم الآلي، رغم التردد، لأن الإضافات المتاحة في Discourse أو الأدوات مفتوحة المصدر لم تكن كافية بعد.
  • من الاثنين إلى الجمعة، ينشئ Zapier موضوعاً جديداً في فئة “الوقوفات اليومية” باسم المستخدم الآلي، في وقت مُحدّد كل يوم، مع تضمين التاريخ الحالي في عنوان الموضوع.
  • يرسل Zapier تذكيرات عبر Slack (وهي ميزة تسمح بتأجيل التذكير أو تجاهله) لكل مشارك في الوقوفة في وقت يقارب بداية يوم عمله، مرفقاً برابط مباشر إلى موضوع الوقوفة الخاص بتلك اليوم.
  • يراقب Zapier المنشورات في تلك الفئة، ويستثني أي منشور صادر عن البوت، أو المنشور الأول لأي موضوع، كما يستثني الإغلاق التلقائي الذي قد يُفعّل عن طريق الخطأ. ثم يعيد صياغة المنشور بشكل جذري باستخدام أدوات Zapير لنشره في قناة Slack، محاكياً التنسيق الذي تستخدمه أعضاء فرق أخرى، مع إضافة رابط المنشور في السطر الأول من رسالة Slack (وهو التاريخ المُولّد تلقائياً). اضطررنا إلى فعل ذلك لأن إضافة تكامل الدردشة (Chat Integration Plugin) كانت تُنتج بيانات وصفية إضافية مزعجة للمستخدمين الآخرين في القناة.
  • في مرحلة ما، نضيف التاريخ يدوياً إلى إضافة التقويم (Events Plugin)، بحيث يظهر تقرير الوقوفة على الصفحة الرئيسية /calendar مع الأنشطة الأخرى.
  • نتأكد من أن إضافة تكامل الدردشة تستبعد (تُصمّت) فئة الوقوفة هذه لمنع تكرار نفس الوقوفة في مكان آخر ضمن مساحة عمل Slack المعنية.

قائمة أمنيات Discourse

ما سيكون رائعاً في يوم ما، حتى لا نضطر لاستخدام Zapier:

  • جدولة دورية للمنشورات التلقائية، مع إمكانية استخدام قوالب نصية تتضمن متغيرات مثل التاريخ.
  • إضافة تكامل الدردشة: إمكانية تحرير قالب ما يُرسل عبر إضافة تكامل الدردشة إلى قنوات مختلفة، بطريقة مشابهة لقوالب البريد الإلكتروني.
  • إضافة التعيين (Assign): السماح بتعيين عدة أشخاص لموضوع واحد، وتحديد فترات التذكير لكل فئة، والسماح بإجراء التعيينات عبر واجهة برمجة التطبيقات (API) أو كجزء من قالب الإنشاء التلقائي المذكور أعلاه.
15 إعجابًا