تصميم أنظمة القيادة: هندسة المؤسسات والعمليات
تخطيطات الفرق في الممارسة العملية
يوفر إطار تخطيطات الفرق (Team Topologies)، الذي أنشأه ماثيو سكيلتون ومانويل بايس ونُشر في كتابهما عام 2019، مفردات منظمة لتنظيم الفرق الهندسية. يبني على قانون كونواي من خلال تحديد أربعة أنواع أساسية للفرق وثلاثة أنماط تفاعل. في مقابلات مدير الهندسة، يُتوقع منك استخدام هذه المفردات بدقة وشرح متى يكون كل نوع فريق ونمط تفاعل مناسباً.
أنواع الفرق الأربعة
الفرق المتوافقة مع التدفق هي وحدات تسليم القيمة الأساسية. كل فريق متوافق مع التدفق يتوافق مع تيار عمل واحد -- عادةً منطقة منتج، أو رحلة مستخدم، أو نطاق أعمال. يمتلكون دورة الحياة الكاملة من التصميم عبر النشر والمراقبة. معظم المهندسين في المؤسسة يجب أن ينتموا إلى فرق متوافقة مع التدفق. الهدف هو أن تعمل هذه الفرق بأقل تبعيات على الفرق الأخرى.
فرق المنصة تبني وتحافظ على منصات داخلية تقلل الحمل المعرفي للفرق المتوافقة مع التدفق. قد يمتلك فريق المنصة خط أنابيب CI/CD، أو بوابة المطورين، أو خدمة المصادقة المشتركة، أو حزمة المراقبة. عملاؤهم هم فرق هندسية أخرى، وليس المستخدمين النهائيين. فريق المنصة المُدار بشكل جيد يتعامل مع عروضه الداخلية كمنتجات -- مع توثيق، واتفاقيات مستوى خدمة، وحلقات تغذية راجعة.
الفرق التمكينية تساعد الفرق المتوافقة مع التدفق على اكتساب قدرات جديدة دون خلق تبعيات طويلة الأمد. قد يتخصص فريق تمكيني في مجالات مثل الأمان، أو هندسة البيانات، أو أتمتة الاختبارات. يعملون مع فريق متوافق مع التدفق لفترة محدودة، وينقلون المعرفة والأدوات، ثم ينتقلون لمساعدة فريق آخر. الفارق الرئيسي هو أن الفرق التمكينية لا تمتلك خدمات إنتاجية؛ إنها تبني القدرات في الآخرين.
فرق الأنظمة الفرعية المعقدة توجد عندما يتطلب مكون معرفة متخصصة عميقة ستُرهق فريقاً متوافقاً مع التدفق. تشمل الأمثلة محرك ترميز فيديو في الوقت الفعلي، أو خط أنابيب استدلال تعلم الآلة، أو نظام حساب المخاطر المالية. تمتلك هذه الفرق نظاماً فرعياً محدداً وتكشف واجهة API نظيفة للفرق المتوافقة مع التدفق لاستهلاكها.
أنماط التفاعل الثلاثة
كيفية تفاعل الفرق لا تقل أهمية عن كيفية هيكلتها. تحدد تخطيطات الفرق ثلاثة أنماط تفاعل صريحة:
| نمط التفاعل | الوصف | متى يُستخدم |
|---|---|---|
| التعاون | يعمل فريقان معاً بشكل وثيق على هدف مشترك مع تواصل عالي النطاق | خلال مراحل الاستكشاف، عند بناء شيء جديد، أو عندما تكون حدود الفرق غير واضحة |
| X-كخدمة | يقدم فريق قدرة يستهلكها فريق آخر من خلال واجهة API أو منصة محددة بوضوح | عندما تكون الواجهة مستقرة، والخدمة ناضجة، ولا يحتاج الفريق المستهلك لفهم التفاصيل الداخلية |
| التيسير | يُدرّب فريق (عادةً تمكيني) فريقاً آخر لمساعدته على تبني ممارسة أو تقنية جديدة | عندما يحتاج فريق متوافق مع التدفق لبناء قدرة جديدة لكنه يفتقر للخبرة للقيام بذلك وحده |
الرؤية الحاسمة هي أن أنماط التفاعل يجب أن تتطور بمرور الوقت. قد يبدأ فريقان في نمط التعاون أثناء بناء خدمة جديدة معاً، ثم ينتقلان إلى X-كخدمة بمجرد استقرار الواجهة. إذا بقي التفاعل في نمط التعاون بشكل دائم، فهذا يشير إلى أن حدود الفرق خاطئة ويجب إعادة رسمها.
متى تقسم أو تدمج الفرق
الإشارة الأساسية لتقسيم فريق هي الحمل المعرفي. هذا المفهوم، المتجذر في نظرية الحمل المعرفي لجون سويلر من علم النفس المعرفي، يشير إلى إجمالي الجهد الذهني المطلوب لفهم نظام والعمل ضمنه. عندما يمتلك فريق خدمات كثيرة جداً، أو نطاقات كثيرة جداً، أو قاعدة كود معقدة جداً، لا يستطيع المهندسون الأفراد الاحتفاظ بسياق كافٍ في أذهانهم لاتخاذ قرارات جيدة بسرعة.
علامات أن الفريق يحتاج للتقسيم:
- المهندسون كثيراً ما يقولون "لا أعرف كيف يعمل ذلك الجزء" عن كود يملكه فريقهم
- دورات المناوبة مُرهقة لأن الفريق يدعم أنظمة كثيرة جداً
- سرعة السبرنت تنخفض رغم عدم تغير حجم الفريق، لأن تكاليف تبديل السياق ترتفع
- تنخفض جودة مراجعة طلبات السحب لأن المراجعين يفتقرون لمعرفة النطاق في مجالات معينة
علامات أن الفرق يجب دمجها:
- فريقان يحجبان بعضهما باستمرار على واجهات مشتركة
- معظم عناصر العمل تتطلب تنسيقاً عبر كلا الفريقين قبل أن يتمكنوا من الشحن
- كل فريق صغير جداً (أقل من 4 أشخاص) لاستدامة التسليم المستقل
- حدود النطاق بين الفريقين رُسمت بشكل خاطئ وتخلق احتكاكاً اصطناعياً
الأنماط المضادة الشائعة
فريق الخدمات المشتركة عنق الزجاجة. عندما يكون فريق "منصة" أو "خدمات مشتركة" واحد مسؤولاً عن نشر أو تكوين أو الموافقة على التغييرات لعدة فرق متوافقة مع التدفق، يصبح عنق زجاجة. سرعة كل فريق مُقيَّدة بإنتاجية الفريق المشترك. الحل هو إما تضمين القدرة مباشرة في الفرق المتوافقة مع التدفق أو بناء منصات خدمة ذاتية حقيقية بتفاعل X-كخدمة.
فريق المنصة بدون عملاء. فريق المنصة الذي يبني بنية تحتية أو أدوات دون تغذية راجعة منتظمة من الفرق التي يخدمها سيبني الأشياء الخاطئة. يجب أن تتعامل فرق المنصة مع الفرق المتوافقة مع التدفق كعملاء -- بإجراء استطلاعات، وتتبع مقاييس التبني، وتحديد الأولويات بناءً على نقاط الألم لدى مستخدميها، وليس اهتماماتها التقنية الخاصة.
فخ التعاون الدائم. فريقان "يتعاونان" دائماً هما في الحقيقة فريق واحد بحدود اصطناعية. نمط التعاون المستمر يزيد تكاليف التنسيق ويُشتت الملكية. إذا احتاج فريقان للتعاون بشكل مكثف لأكثر من بضعة أسابيع، فكّر في دمجهما أو إعادة رسم الحدود.
الفريق التمكيني الذي يصبح تبعية. الفريق التمكيني الذي لا يُسلّم عمله أبداً يصبح فعلياً ذراعاً استشارياً دائماً. تبدأ الفرق المتوافقة مع التدفق بالاعتماد عليه بدلاً من بناء القدرات داخلياً. يجب أن يكون للفرق التمكينية مشاركات محددة زمنياً مع معايير خروج واضحة.
الانتقال من هياكل المؤسسات القديمة
معظم المؤسسات لا تبدأ بتخطيطات نظيفة. أنت ترث فرق مكونات (فريق واجهة أمامية، فريق واجهة خلفية، فريق ضمان الجودة)، أو فرق قائمة على المشاريع، أو هياكل مصفوفية. يحدث الانتقال على مراحل:
- ارسم الحالة الحالية -- حدد الفرق الموجودة، وما تمتلكه، وكيف تتفاعل
- حدد أكبر نقاط الاحتكاك -- أين تسبب عمليات التسليم تأخيرات؟ أي الفرق مُرهقة؟
- ابدأ بفريق واحد متوافق مع التدفق -- اختر منطقة منتج وشكّل فريقاً متعدد الوظائف يمتلكها من البداية للنهاية
- تطوّر تدريجياً -- حوّل الفرق الأخرى نحو التخطيط المستهدف كلما تعلمت ما يعمل، مع التعديل بناءً على إشارات الحمل المعرفي
- أضفِ الطابع الرسمي على أنماط التفاعل -- أبرم اتفاقيات صريحة حول أي الفرق تتعاون، وأيها تستهلك خدمات، وأيها تُيسّر
في المقابلات، وصف مسار انتقال متعمد بدلاً من "إعادة تنظيم كبيرة مفاجئة" يُظهر النضج والحكم العملي.
التالي، سنفحص تصميم العمليات الهندسية -- كيفية بناء تخطيط السبرنت، وإدارة الحوادث، وإدارة الديون التقنية، وعمليات RFC التي تتوسع مع مؤسستك. :::