وثائق

مهام وخطط وسبرينتات ومسارات العمل

أربع طرق لتنظيم العمل في Coroid، ومتى يجب استخدام كل منها.

Coroid يحتوي على أربع وحدات عمل. تتداخل هذه الوحدات مع بعضها، واختيار الوحدة المناسبة يعتمد بشكل أساسي على حجم العمل ومدى ضرورة تنفيذه دفعة واحدة.

وحدةحجمينتهي بـ
مهمةتغيير واحدوحدة pull request واحدة
خطةميزة مقسمة إلى مراحلوحدة pull request واحدة للخطة بأكملها
دورة عملكتلة عمل ممتدة عبر الزمنما تنتجه مهامها
مسارتدفق عمل متوازيالفرع الذي يتم دمج عمل الخطة فيه

سبرينت · أسبوعان

خطةإعادة تصميم صفحة الدفع

المرحلة 1

مهمةنموذج الدفعمهمةالتحقق من البطاقة

المرحلة 2

مهمةملخص الطلب
فرع المسارطلب سحب واحد لـ pull request

مهمة مستقلة

مهمةتصحيح تحليل التاريخ
طلب سحب واحد لـ pull request
السبرينت يجمع العمل خلال فترة زمنية. الخطة ترتب المهام في مراحل، وممرها يضعها كـ pull request واحد. المهمة المنفردة هي أيضاً pull request واحدة.

مهمة

هي الوحدة الأساسية. مهمة واحدة تمثل وحدة عمل تنتج وحدة pull request واحدة، وهي ما يتم تنفيذه فعليًا — أما الخطط ودورات العمل والمسارات فهي كلها طرق لتنظيم المهام.

إذا كان بإمكانك وصف النتيجة في فقرة واحدة ويمكن للمراجع قراءة النتيجة في جلسة واحدة، فهي تُعتبر مهمة.

خطة

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

استخدم خطة عندما:

  • تعتمد الخطوات اللاحقة على الخطوات السابقة
  • ترغب في رؤية النهج الكامل قبل الالتزام بتنفيذ أي جزء منه
  • يكون العمل عبارة عن ميزة وليس مجرد تغيير

الموافقة على الخطة تُعد نقطة التدخل الأقل تكلفة في النظام. رفض النهج هنا يكلف دقيقة واحدة؛ بينما رفضه بعد تنفيذ ثلاث مهام يكلف ثلاث عمليات تنفيذ.

كيف تصل الخطة إلى مستودعك

مهام الخطة لا تفتح كل منها وحدة pull request. تعمل هذه المهام على فروعها الخاصة وتندمج في مسار مشترك. فرع المسار، ويتم ترقية ذلك الفرع ليصبح طلب سحب واحد مقابل فرعك الأساسي.

فرع مهمةفرع مهمةفرع مهمة

فرع المسار

حيث يتم دمج عمل الخطة

طلب سحب واحد لـ pull request

الميزة المجتمعة، بعد مراجعة واحدة

main

فرعك الأساسي

مهمة لمشروع مختلف عن المسار؛ يتم ترقيتها بشكل مستقل، لذا يفتح خطة متعددة المشاريع طلب سحب واحد لـ pull request لكل مستودع.

تندمج فروع المهام في فرع مسار الخطة، ثم يتم ترقية المسار ليصبح طلب سحب واحد لـ pull request مقابل فرعك الأساسي.

وبالتالي، يمكنك مراجعة الميزة المجمعة دفعة واحدة، مع رؤية كل التغييرات أمامك، بدلاً من الموافقة على مراحل ناقصة بشكل منفصل.

الاستثناء هو العمل الذي يشمل عدة مشاريع: فالمهمة التي تنتمي إلى مشروع مختلف عن المسار تُرقى بشكل منفصل، لذا تنتج خطط متعددة المشاريع pull request لكل مستودع. هذا أمر لا مفر منه — فـ pull request لا يمكن أن يمتد عبر مستودعين.

دورة عمل

حاوية محددة زمنياً للعمل، مع مقاييسها وجدولها الزمني الخاص. تُجيب دورات العمل على سؤال «ما الذي سنقوم به خلال هذه الفترة، وما مدى نجاحه؟» بدلاً من «كيف يتم بناء هذه الميزة؟».

استخدم دورة عمل عند تنسيق عمل الفريق على مدى فترة زمنية. استخدم خطة عند تقسيم ميزة واحدة. هما ليسا بديلين لبعضهما — يمكن أن تحتوي دورة عمل على مهام تنتمي إلى عدة خطط.

مسار

المسار هو المكان الذي تُدمج فيه الأعمال المتوازية للخطة. تستهدف المهام فرع المسار بدلاً من فرعك الأساسي، حتى يتمكن عدة وكلاء من التقدم في نفس الوقت دون تضارب، ويتم ترقية النتيجة المجمعة كـ pull request واحد بمجرد أن تستوفي الشروط.

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

الاختيار

السؤال ليس حول عدد طلبات السحب التي تريدها — فكل من المهمة والخطة تصل كوحدة واحدة. بل يتعلق بمدى حاجة العمل إلى حدوث تغييرات قبل أن تكون النتيجة جاهزة للمراجعة.

  1. هل هذا تغيير واحد يمكن للمراجع قراءته في جلسة واحدة؟ نعم ← مهمة.
  2. هل يحتاج إلى عدة تغييرات متسلسلة قبل أن يكون ذا معنى ككل؟ نعم ← خطة. يتولى مسارها تشغيل الأجزاء بشكل متوازٍ حيثما يسمح ذلك.

تقف دورات العمل إلى جانب كل هذا كطبقة للتخطيط والإبلاغ.

أين يندرج مفهوم الإصدار

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

ما الذي يحدد عدد العمليات التي تعمل في آنٍ واحد؟

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