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

ما هي القضايا الفرعية؟

القضايا الفرعية هي وسيلة لكسر قضية أكبر في مهام أصغر وأكثر قابلية للإدارة. باستخدام هذه الميزة ، يمكنك الآن إنشاء قوائم هرمية ضمن مشكلة واحدة ، مما يسهل تتبع التقدم والتبعيات. من خلال توفير هيكل واضح ، تساعد الفرق الفرعية أن تظل الفرق منظمة وتركز على أهدافها.

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

لقطة شاشة تعرض قائمة من القضايا الفرعية على جيثب.

تاريخ موجز

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

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

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

بناء القضايا الفرعية

لبناء القضايا الفرعية ، بدأنا بتصميم بنية هرمية جديدة للمهام بدلاً من تعديل وظائف قائمة المهام الحالية. قدمنا ​​القدرة على عش المهام داخل المهام ، وخلق بنية هرمية. يتطلب هذا التحديثات لنماذج البيانات الخاصة بنا وتقديم المنطق لدعم القضايا الفرعية المتداخلة.

من منظور نمذجة البيانات ، يخزن جدول القضايا الفرعية العلاقات بين قضايا الوالدين والطفل. على سبيل المثال ، إذا كانت العدد X هي أحد الوالدين للمسألة Y ، فإن جدول القضايا الفرعية سيخزن هذا الرابط ، مما يضمن الحفاظ على العلاقة الهرمية.

بالإضافة إلى ذلك ، نشهد معلومات إكمال القضية الفرعية في جدول قائمة الإضافات الفرعية. يتيح لنا ذلك الحصول على تقدم بشكل مؤدي دون الاضطرار إلى اجتياز قائمة من القضايا الفرعية. على سبيل المثال ، عند اكتمال المشكلة Y ، يقوم النظام تلقائيًا بتحديث تقدم المشكلة X ، مما يلغي الحاجة إلى التحقق يدويًا من حالة جميع القضايا الفرعية.

أردنا تمثيلًا مباشرًا للقضايا الفرعية كعلاقات في MySQL. وفر هذا النهج العديد من الفوائد ، بما في ذلك الدعم الأسهل للقضايا الفرعية في بيئات مثل Github Enterprise Server و Github Enterprise Cloud مع إقامة البيانات.

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

ركزنا أيضًا على توفير عناصر تحكم بديهية لإنشاء القضايا الفرعية وتحريرها وإدارتها. تحقيقًا لهذه الغاية ، عملنا عن كثب مع مصممي الوصول وفريق المكونات المشتركة لـ Github التي صممت القائمة التي تشغل القضايا الفرعية.

كان هدفنا هو جعل المستخدمين سهلاً قدر الإمكان للمستخدمين لتحطيم مهامهم دون تعطيل سير عملهم.

باستخدام القضايا الفرعية في الممارسة

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

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

جمع ردود الفعل المبكرة

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

يجعل ميزات البناء في Github من السهل حقًا تحسين ميزاتنا الخاصة مع تقدمنا. كان من الرائع حقًا البدء في تحطيم أعمال القضايا الفرعية باستخدام القضايا الفرعية. هذا سمح لنا بتجربة الميزة مباشرة وتحديد أي نقاط ألم أو مناطق للتحسين. على سبيل المثال ، و has:sub-issues-progress و has:parent-issue تطورت المرشحات من المناقشات المبكرة حول بناء جملة تصفية. يضمن هذا النهج العملي أن قمنا بتسليم منتج مصقول وسهل الاستخدام.

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

دعوة إلى العمل

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

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

شكرا لكونك جزء لا يتجزأ من مجتمع جيثب. معا ، نحن نشكل مستقبل التنمية التعاونية!

كتبه

شون وونغ

مهندس البرمجيات Github Sr.

Source link


اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *