تظهر صعوبة تقسيم Product Backlog عندما يتحول المنتج من فكرة بسيطة إلى منظومة كبيرة: تطبيق جوال، بوابة ويب، لوحة تحكم، تقارير بيانات، واجهات تكامل، وربما أكثر من نوع مستخدم. عندها لا تكون المشكلة في كثرة العناصر فقط، بل في طريقة تنظيمها: هل نقسمها حسب المنصة؟ حسب الفريق؟ حسب الشاشة؟ أم حسب القيمة التجارية؟
الإجابة العملية هي أن Backlog الجيد لا يعكس الهيكل التنظيمي للشركة، بل يعكس طريقة خلق القيمة للمستخدم والعمل. في هذا الدليل سنبني إطاراً يساعد مدير المنتج وفرق Scrum على تفكيك المنتج المعقد إلى عناصر واضحة، قابلة للتنفيذ، قليلة التكرار، ومفهومة عبر الفرق.
جدول المحتويات
- لماذا يفشل تقسيم Product Backlog في المنتجات المعقدة؟
- ابدأ بخريطة القدرات قبل كتابة Epics
- حوّل القدرات إلى User Story Map
- تقسيم Product Backlog باستخدام الشرائح العمودية
- هل ننظم Epics حسب المنصة أم القيمة التجارية؟
- كيف نوثق اختلافات المنصات دون تكرار؟
- إدارة الفرق المتداخلة: فرق مكونية أم فرق موجهة للقيمة؟
- مثال عملي: Super App متعدد المستخدمين
- قائمة فحص قبل اعتماد أي عنصر في Backlog
- أخطاء شائعة يجب تجنبها
- الخلاصة: Backlog واضح يبدأ من القيمة لا من الفوضى التنظيمية

لماذا يفشل تقسيم Product Backlog في المنتجات المعقدة؟
أكثر الأخطاء شيوعاً هو البدء من الحل بدلاً من السلوك المطلوب. فيتم إنشاء Epic لتطبيق iOS، وأخرى لأندرويد، وثالثة للويب، ورابعة للتقارير، ثم نكتشف أن كل Epic تحتوي تقريباً على السلوك نفسه بصياغات مختلفة. النتيجة: تكرار في المتطلبات، تضارب في الأولويات، وصعوبة في معرفة ما الذي تم تسليمه فعلياً للمستخدم.
الفشل يحدث أيضاً عندما يتم تنظيم Backlog حول الفرق الموجودة مسبقاً: فريق واجهات، فريق Backend، فريق بيانات، فريق تقارير. هذا قد يبدو مريحاً إدارياً، لكنه ينتج عناصر عمل أفقية لا تقدم قيمة مكتملة بمفردها. ينتهي Sprint وقد تم بناء API وجزء من قاعدة البيانات، لكن المستخدم لا يستطيع إنجاز مهمة كاملة.
في المنتجات الكبيرة، المطلوب ليس تفصيلاً أكثر فقط، بل نموذج تفكير أفضل. يجب أن نعرف القدرات الأساسية للمنتج، الرحلات التي يمر بها المستخدم، ثم نقسم العمل إلى شرائح عمودية صغيرة تحمل قيمة قابلة للاختبار.
ابدأ بخريطة القدرات قبل كتابة Epics
خريطة القدرات Capability Map هي طريقة لفهم ما يستطيع المنتج فعله بصرف النظر عن الشاشات أو المنصات. بدلاً من القول: “نحتاج صفحة طلبات في الويب وتبويب طلبات في الجوال”، نقول: “نحتاج قدرة إدارة الطلبات”. هذه القدرة يمكن أن تظهر لاحقاً في أكثر من منصة، لكنها تبقى مفهوماً واحداً في Backlog.
تعمل خريطة القدرات كطبقة عليا تمنع الفوضى. فهي تجيب عن سؤال: ما المجالات الوظيفية الكبرى التي يجب أن يدعمها المنتج؟ في تطبيق تجارة أو Super App مثلاً قد تشمل القدرات: تسجيل المستخدم، إدارة الملف الشخصي، البحث والاكتشاف، الدفع، تتبع الطلب، الإشعارات، خدمة العملاء، التقارير التشغيلية.
كيف تبني Capability Map بسيطة؟
- ابدأ من أهداف المنتج لا من الشاشات: ما النتائج التي يجب تمكينها؟
- اجمع القدرات في مجموعات منطقية، مثل: الهوية، المعاملات، البيانات، التواصل.
- اكتب القدرة بصيغة اسمية مستقرة، مثل: “إدارة المدفوعات” لا “إضافة زر دفع”.
- تجنب التفاصيل التقنية في هذه المرحلة، فالهدف هو بناء خريطة مشتركة للفهم.
- اربط كل قدرة بمؤشر قيمة أو نتيجة أعمال كلما أمكن.
هذه الخريطة لا تستبدل Backlog، لكنها تمنع تحوله إلى قائمة طويلة من الطلبات غير المترابطة. كما تساعدك على رؤية التداخل بين الفرق والمنصات مبكراً.
حوّل القدرات إلى User Story Map
بعد تحديد القدرات، تأتي خطوة User Story Mapping. هنا نرتب العمل حسب رحلة المستخدم وتسلسل استخدامه للمنتج. الفكرة المهمة أن المستخدم لا يفكر في مكونات تقنية، بل في هدف يريد إنجازه: التسجيل، البحث، الاختيار، الدفع، المتابعة، الحصول على دعم.
تساعد Story Map على ترتيب Epics والميزات حول التدفق الطبيعي للقيمة. الصف العلوي عادة يمثل الأنشطة الكبرى، وتحت كل نشاط تظهر القصص أو المهام الأصغر. عندها يصبح السؤال: ما أقل شريحة من هذه الرحلة يمكن أن تحقق قيمة حقيقية في الإصدار الأول؟
| المستوى | السؤال الأساسي | مثال |
|---|---|---|
| القدرة | ما الذي يجب أن يستطيع المنتج فعله؟ | إدارة الطلبات |
| النشاط | ما الخطوة التي يقوم بها المستخدم؟ | متابعة حالة الطلب |
| الميزة | ما السلوك القابل للإطلاق؟ | عرض آخر حالة للطلب |
| القصة | ما الحاجة المحددة لمستخدم معين؟ | كعميل، أريد رؤية حالة طلبي لأعرف إن كان في الطريق |
بهذا الأسلوب لا تضيع القصص داخل تقسيمات تقنية أو منصاتية. إذا ظهرت الحاجة في الويب والجوال، تبقى القصة مرتبطة بالسلوك نفسه، مع توثيق اختلافات المنصة داخل معايير القبول أو ملاحظات التصميم.
تقسيم Product Backlog باستخدام الشرائح العمودية
جوهر تقسيم Product Backlog في المنتجات المعقدة هو استخدام Vertical Slicing. الشريحة العمودية تعني بناء جزء صغير مكتمل من القيمة يمر عبر طبقات المنتج: واجهة، منطق أعمال، بيانات، تكاملات، واختبار. ليست بالضرورة كبيرة، لكنها قابلة للاستخدام أو التحقق.
مثلاً، بدلاً من إنشاء عناصر منفصلة مثل “بناء قاعدة بيانات الطلبات”، “إنشاء API الطلبات”، “تصميم شاشة الطلبات”، الأفضل أن تكون الشريحة: “عرض آخر خمسة طلبات للعميل المسجل”. هذه الشريحة تتطلب عملاً في عدة طبقات، لكنها تقدم قيمة مفهومة وقابلة للاختبار.

قواعد عملية لتقسيم الميزات الكبيرة
- قسّم حسب سيناريو الاستخدام: عميل جديد، عميل عائد، مدير عمليات، محلل بيانات.
- قسّم حسب مستوى التعقيد: ابدأ بالحالة العادية، ثم أضف الاستثناءات لاحقاً.
- قسّم حسب نوع البيانات: عرض بيانات أساسية أولاً، ثم فلاتر متقدمة، ثم تصدير.
- قسّم حسب القرار التجاري: ما الجزء الذي يساعدنا على التعلم أو تقليل المخاطر مبكراً؟
- قسّم حسب القناة عند اختلاف السلوك فعلاً: لا تجعل كل منصة Epic مستقلة إلا إذا كانت التجربة أو القيود مختلفة جذرياً.
الاختبار الجيد لأي شريحة هو هذا السؤال: هل يمكن عرضها لصاحب مصلحة وشرح القيمة التي تقدمها دون الحديث عن تفاصيل تقنية داخلية؟ إذا كانت الإجابة لا، فربما ما زلت تقسم أفقياً.
هل ننظم Epics حسب المنصة أم القيمة التجارية؟
في أغلب الحالات، يجب أن تكون Epics منظمة حول القيمة التجارية أو القدرة الأساسية، لا حول المنصة. المنصة تصبح خاصية تنفيذية أو قناة تقديم. فميزة “تتبع الطلب” قد تُنفذ في تطبيق العميل، ولوحة موظف الدعم، ورسائل الإشعار، لكنها تظل مرتبطة بقيمة واحدة: تقليل الغموض حول حالة الطلب.
مع ذلك، توجد حالات يكون فيها التقسيم حسب المنصة مبرراً، مثل اختلاف التجربة جذرياً، أو وجود قيود اعتماد ونشر مستقلة، أو تباين كبير في المستخدمين. المهم ألا يتحول ذلك إلى تكرار أعمى لنفس السلوك في ثلاث Epics منفصلة.
| أسلوب التنظيم | متى يناسب؟ | الخطر المحتمل |
|---|---|---|
| حسب القيمة أو القدرة | عندما يكون السلوك مشتركاً عبر قنوات متعددة | الحاجة إلى تنسيق جيد بين المنصات |
| حسب رحلة المستخدم | عندما يكون الهدف تحسين تجربة كاملة من البداية للنهاية | إغفال بعض المتطلبات التقنية غير المرئية |
| حسب المنصة | عند اختلاف التجربة أو قيود النشر جذرياً | تكرار القصص وتضارب الأولويات |
| حسب المكون التقني | عند وجود منصة داخلية أو خدمة مشتركة معقدة | إنتاج عمل لا يراه المستخدم كقيمة مباشرة |
كيف نوثق اختلافات المنصات دون تكرار؟
في المنتجات متعددة المنصات، التكرار لا يحدث لأن الفرق لا تعمل بجد، بل لأن طريقة التوثيق تشجع النسخ. الحل هو إنشاء قصة أو ميزة واحدة للسلوك المشترك، ثم توثيق اختلافات المنصات داخل أقسام واضحة.
مثال: إذا كانت ميزة “إعادة تعيين كلمة المرور” مطلوبة في الويب والجوال، لا تنشئ قصتين متطابقتين إلا إذا اختلف السلوك. يمكن كتابة القصة مرة واحدة، ثم إضافة معايير قبول مشتركة، وبعدها ملاحظات خاصة بكل قناة: الويب، iOS، Android، البريد الإلكتروني، الرسائل النصية.
نموذج مختصر لتوثيق السلوك متعدد المنصات
- السلوك الأساسي: ما النتيجة التي يجب أن تحدث للمستخدم؟
- معايير القبول المشتركة: القواعد التي تنطبق على كل المنصات.
- اختلافات القناة: ما الذي يختلف في الواجهة أو التفاعل أو القيود؟
- التبعيات: خدمات، بيانات، تكاملات، موافقات أمنية.
- نطاق الإصدار: ما المنصات الداخلة في هذا الإصدار وما المؤجل؟
هذا الأسلوب يحافظ على مصدر واحد للحقيقة، ويمنع ظهور ثلاث نسخ من المتطلب نفسه ثم اختلافها بمرور الوقت.
إدارة الفرق المتداخلة: فرق مكونية أم فرق موجهة للقيمة؟
عندما يكبر المنتج، تظهر معضلة تصميم الفرق. هل نحتاج فريق Backend، وفريق بيانات، وفريق واجهات؟ أم فرقاً مسؤولة عن قيمة كاملة مثل “رحلة الطلب” أو “تجربة الدفع”؟ لا توجد إجابة واحدة لكل الحالات، لكن هناك قاعدة مفيدة: كلما زادت الحاجة إلى سرعة التعلم وتسليم قيمة متكاملة، زادت فائدة الفرق الموجهة للقيمة.
الفرق المكونية Component Teams مناسبة عندما يكون المكون عميقاً ومعقداً ويتطلب خبرة متخصصة، مثل منصة بيانات مركزية أو محرك توصيات. لكنها قد تخلق طوابير انتظار وتبعيات كثيرة إذا أصبح كل تغيير صغير يحتاج المرور عبر عدة فرق.
أما الفرق الموجهة للقيمة Value-oriented Teams فتضم مهارات متعددة لإنجاز شريحة كاملة من القيمة. في منتج كبير، قد يكون لديك فريق لرحلة التسجيل، وآخر للطلب والدفع، وثالث للتقارير التشغيلية. هذا يقلل التسليم الجزئي ويجعل Backlog أقرب إلى نتائج المستخدم.
متى تستخدم كل نموذج؟
- استخدم الفرق الموجهة للقيمة عندما تكون الأولوية لتسليم تجارب متكاملة بسرعة.
- استخدم الفرق المكونية عندما تكون المعرفة المتخصصة نادرة أو المكون يخدم عدة منتجات.
- أنشئ منصة أو فريق تمكين عندما تحتاج الفرق الأخرى إلى أدوات ومعايير مشتركة لا إلى تسليم ميزة مباشرة.
- راجع النموذج دورياً؛ تصميم الفرق ليس قراراً ثابتاً إلى الأبد.
الأهم أن لا يتحول Backlog إلى قائمة طلبات لكل فريق على حدة. حتى مع وجود فرق مكونية، يجب ربط عناصرها بقدرة أو هدف منتج واضح.
مثال عملي: Super App متعدد المستخدمين
لنفترض أن لدينا Super App يقدم خدمات توصيل، حجوزات، دفع، ودعم عملاء. المستخدمون هم: عميل، مزود خدمة، موظف عمليات، محلل بيانات. إذا نظمنا Backlog حسب الشاشات، سنحصل على مئات العناصر: شاشة طلب للعميل، شاشة طلب للمزود، شاشة متابعة للعمليات، تقرير طلبات، إشعار طلبات. سيبدو كل شيء ضرورياً، لكن الأولوية ستصبح غامضة.
النهج الأفضل يبدأ بقدرات مثل: إدارة الطلب، إدارة المزودين، الدفع، مراقبة العمليات، التقارير. ثم نبني Story Map لرحلة الطلب: إنشاء طلب، تسعير، قبول، تنفيذ، تتبع، إغلاق، تقييم. بعد ذلك نحدد شريحة الإصدار الأول: عميل ينشئ طلباً بسيطاً، مزود يقبله، والعميل يرى الحالة الأساسية.
التقارير لا تُترك للنهاية، لكنها لا تُقسم كعالم مستقل بالكامل. نحدد أولاً الأسئلة التشغيلية الحرجة: كم طلباً قيد التنفيذ؟ ما الطلبات المتأخرة؟ ما معدل الإلغاء؟ ثم نضيف قصص تقارير صغيرة مرتبطة بالرحلة نفسها، لا لوحة بيانات ضخمة بلا قرار واضح.
قائمة فحص قبل اعتماد أي عنصر في Backlog
قبل نقل أي Epic أو Feature أو User Story إلى مرحلة الجاهزية، استخدم هذه الأسئلة لتقليل الفوضى والتكرار:
- هل يرتبط العنصر بقدرة واضحة في خريطة القدرات؟
- هل يقدم قيمة أو تعلماً قابلاً للتحقق؟
- هل هو مقسم عمودياً أم مجرد طبقة تقنية منفصلة؟
- هل توجد نسخة مشابهة منه لمنصة أخرى؟ إن وجدت، هل الاختلاف حقيقي أم تكرار؟
- هل معايير القبول توضّح السلوك لا التصميم التفصيلي فقط؟
- هل التبعيات مع الفرق الأخرى معروفة ومحدودة؟
- هل يمكن تنفيذه داخل Sprint أو يحتاج إلى تقسيم إضافي؟
هذه الأسئلة البسيطة تمنع Backlog من التحول إلى مخزن طلبات، وتجعله أداة لاتخاذ القرار والتركيز.
أخطاء شائعة يجب تجنبها
- تحويل كل شاشة إلى Epic: الشاشة ليست دائماً قيمة مستقلة؛ قد تكون مجرد قناة لسلوك أوسع.
- نسخ القصص بين المنصات: هذا يخلق اختلافات غير مقصودة ومناقشات مكررة.
- تأجيل البيانات والتقارير بالكامل: في المنتجات التشغيلية، بعض المؤشرات جزء من القيمة وليس إضافة لاحقة.
- تقسيم العمل حسب تخصصات الفريق فقط: هذا يزيد التبعيات ويؤخر التحقق من القيمة.
- كتابة قصص كبيرة باسم MVP: الإصدار الأول لا يعني تجميع كل شيء في عنصر واحد، بل اختيار شريحة صغيرة ذات معنى.
الخلاصة: Backlog واضح يبدأ من القيمة لا من الفوضى التنظيمية
إن تقسيم Product Backlog لمنتج معقد لا يعني إنتاج عدد أكبر من القصص، بل بناء طريقة أوضح لرؤية القيمة. ابدأ بخريطة القدرات لتحديد ما يفعله المنتج، ثم استخدم User Story Mapping لترتيب رحلة المستخدم، وبعدها طبّق Vertical Slicing لإنتاج شرائح صغيرة قابلة للتسليم والاختبار.
عندما توثق السلوك مرة واحدة وتفصل اختلافات المنصات بوضوح، وتختار تصميم الفرق بناءً على تدفق القيمة لا الراحة الإدارية فقط، يصبح Backlog أداة قيادة حقيقية. فهو يساعدك على تقليل التكرار، كشف التبعيات مبكراً، وتوجيه الفرق نحو نتائج ملموسة بدلاً من الانشغال بقوائم طويلة من المهام.
ليس بالضرورة. إذا كان السلوك التجاري مشتركاً بين المنصات، فالأفضل الاحتفاظ بعنصر واحد مع توثيق اختلافات كل منصة. أما إذا كانت المنصة تخدم مستخدمين مختلفين أو تجربة مختلفة جذرياً، فقد يكون وجود Backlog أو مسار مستقل مبرراً.
القدرة تصف ما يستطيع المنتج فعله على مستوى مستقر وعالٍ، مثل إدارة الطلبات أو الدفع. أما Epic فهو حزمة عمل كبيرة قابلة للتقسيم داخل Backlog لتحقيق جزء من هذه القدرة أو تطويرها.
تكون القصة مقسمة عمودياً إذا كانت تقدم سلوكاً قابلاً للاستخدام أو الاختبار من منظور المستخدم، حتى لو كان صغيراً. إذا كانت القصة تتحدث فقط عن قاعدة بيانات أو API أو تصميم شاشة دون قيمة مكتملة، فهي غالباً تقسيم أفقي.
تكون الفرق المكونية مناسبة عندما يتطلب المكون معرفة عميقة ونادرة أو يخدم عدة منتجات، مثل منصة بيانات أو خدمة أمنية. لكن إذا تسببت في طوابير انتظار كثيرة، فيجب التفكير في فرق موجهة للقيمة أو فرق تمكين تقلل التبعيات.
نعم. في منتجات البيانات، ابدأ بالقرارات التي يحتاجها المستخدم، ثم قسّم التقارير ولوحات البيانات حسب أسئلة عملية صغيرة، مثل مراقبة التأخير أو قياس الإلغاء، بدلاً من بناء لوحة كبيرة تضم كل المؤشرات مرة واحدة.