عندما يمتلك فريقك الرحلة بأكملها: الفرق المتوافقة مع التدفق والتسليم
تخيل هذا: فريقك يريد إضافة فلتر جديد لميزة البحث في تطبيق التجارة الإلكترونية الخاص بك. لديك التصميم جاهزًا، والكود مكتوبًا، والاختبارات تمر محليًا. لكنك لا تستطيع شحنه. تحتاج فريقًا آخر لنشره. فريق مختلف يدير البنية التحتية. شخص آخر يتعامل مع تغييرات قاعدة البيانات. وجدول الإصدارات يتحكم به مجموعة تجتمع مرة واحدة في الأسبوع.
هذا هو الواقع للعديد من فرق الهندسة. عمل تسليم ميزة واحدة يتضمن تسليمات بين فرق متعددة. كل تسليم يضيف وقت انتظار، وتغيير سياق، وعبء تنسيق. الميزة التي استغرقت ثلاثة أيام لبنائها قد تستغرق أسبوعين للوصول إلى المستخدمين.
هناك طريقة أفضل. تُسمى الفريق المتوافق مع التدفق (Stream-Aligned Team)، وهي النمط الأساسي في نموذج "طوبولوجيا الفرق" (Team Topologies).
ما الذي يجعل الفريق متوافقًا مع التدفق
الفريق المتوافق مع التدفق يمتلك دورة قيمة كاملة من الفكرة إلى المستخدم. لا يعتمد الفريق على فرق أخرى لشحن الميزات، أو إصلاح الأخطاء، أو النشر إلى الإنتاج. لديهم كل ما يحتاجونه لأخذ تغيير من مرحلة الالتزام (commit) إلى الاستخدام المباشر.
ضع في اعتبارك الفريق الذي يملك ميزة البحث في تطبيق تجارة إلكترونية. يضم هذا الفريق مطوري الواجهة الخلفية الذين يتعاملون مع الفهارس والاستعلامات، ومطوري الواجهة الأمامية الذين يبنون صفحة نتائج البحث، ومهندسي ضمان الجودة الذين يختبرون سيناريوهات البحث، وشخصًا يدير النشر إلى الإنتاج. عندما يريد هذا الفريق إضافة فلتر جديد، يفعلون ذلك بأنفسهم: تصميم التغيير، كتابة الكود، اختباره، ونشره. لا انتظار لفريق آخر لإنهاء عمله أولاً.
إليك مقارنة جنبًا إلى جنب بين مساري التسليم:
هذا هو معنى امتلاك دورة القيمة الخاصة بك. دورة القيمة هي سلسلة الخطوات التي تحول الفكرة إلى قيمة يمكن للمستخدمين استخدامها فعليًا. في مصطلحات CI/CD، تغطي دورة القيمة كل شيء بدءًا من الالتزام بالكود (commit) مرورًا بالبناء والاختبار والنشر وصولاً إلى الميزة وهي مباشرة للمستخدمين. الفريق المتوافق مع التدفق يمتلك كل هذه المراحل.
كيف يغير هذا CI/CD
عندما يمتلك الفريق دورة القيمة الخاصة به، يتغير خط أنابيب CI/CD بشكل جوهري. يصمم الفريق خط الأنابيب الخاص به ليناسب احتياجاته. يقررون متى يتم تشغيل اختبارات التكامل، وما هي استراتيجية النشر التي تناسب ميزتهم، ومتى يتم التراجع. لا يحتاجون إلى مواءمة جدول إصداراتهم مع فرق أخرى.
هذا النمط يغير كيفية تفكيرنا في الملكية. في الإعدادات التقليدية، غالبًا ما ترى فصلًا: الفريق (أ) يبني الميزات، الفريق (ب) يتعامل مع النشر، الفريق (ج) يدير البنية التحتية. في كل مرة يحدث خطأ ما، ينتظر الفريق (أ) الفريق (ب) أو (ج). مع الفريق المتوافق مع التدفق، الملكية شاملة من البداية إلى النهاية. الفريق الذي يبني الميزة يديرها أيضًا في الإنتاج.
التأثير العملي على تصميم خط الأنابيب الخاص بك كبير. بدلاً من خط أنابيب عملاق واحد يجب أن تمر عبره كل الفرق، يمكن أن يكون لكل فريق خط الأنابيب الخاص به. قد يكون لدى فريق الواجهة الخلفية خط أنابيب مع اختبارات تكامل ثقيلة. قد يركز فريق الواجهة الأمامية على اختبارات الانحدار البصري. كل خط أنابيب يعمل بشكل مستقل، بوتيرة الفريق الخاصة.
اختناقات الاتصال تختفي
واحدة من أكبر المكاسب مع الفرق المتوافقة مع التدفق هي تقليل اختناقات الاتصال. لا يحتاج فريقك إلى اجتماع تنسيق فقط للنشر إلى بيئة التدريج (staging). لا تنتظر فتحة إصدار. تتحرك بسرعتك الخاصة، ضمن الحدود المتفق عليها مع الفرق الأخرى.
فكر في آخر مرة واجه فيها فريقك مشكلة في الإنتاج. إذا كنت فريقًا متوافقًا مع التدفق، لكنت أصلحتها فورًا لأنك تمتلك الكود والنشر. لن تحتاج إلى تقديم تذكرة، أو انتظار فريق البنية التحتية لمنحك صلاحية الوصول، أو شرح المشكلة لفريق آخر لا يعرف قاعدة الكود الخاصة بك.
ليس كل فريق يمكن أن يكون متوافقًا مع التدفق
الفرق المتوافقة مع التدفق لا تظهر بين ليلة وضحاها. في مؤسسة صغيرة، قد يتعامل فريق واحد مع التطبيق بأكمله. في مؤسسة كبيرة، قد يتعامل فريق واحد مع مجال منتج واحد مثل البحث أو التوصيات أو المدفوعات. المفتاح هو أن يكون لكل فريق حدود واضحة حول ما يملكونه وما ينتمي إلى فرق أخرى.
هذا النمط لا يعني أيضًا أن الفرق تعمل بمعزل عن الآخرين. لا تزال الفرق المتوافقة مع التدفق بحاجة إلى أدوات وبيئات وبنية تحتية للعمل معها. إنهم بحاجة إلى منصة للبناء عليها. هذا هو المكان الذي تأتي فيه أنماط الفرق الأخرى، مثل فرق المنصة (Platform Teams) التي توفر الأساس حتى تتمكن الفرق المتوافقة مع التدفق من التحرك بسرعة دون بناء كل شيء من الصفر.
قائمة تحقق عملية للانتقال نحو الفرق المتوافقة مع التدفق
إذا كنت ترغب في البدء في نقل فرقك نحو هذا النموذج، إليك قائمة تحقق عملية للعمل من خلالها:
- ارسم دورة القيمة الحالية الخاصة بك. اكتب كل خطوة من الفكرة إلى الإنتاج. لاحظ الفرق المشاركة في كل خطوة. احسب عدد مرات التسليم.
- حدد مجالًا واحدًا محددًا. اختر ميزة أو خدمة لها حدود واضحة. يمكن أن تكون البحث أو المدفوعات أو الإشعارات أو ملفات تعريف المستخدمين. ابدأ بمجال واحد، وليس النظام بأكمله.
- امنح الفريق الملكية الشاملة. دعهم يمتلكون الكود والاختبارات والنشر ومراقبة الإنتاج لهذا المجال. أزل التبعيات على الفرق الأخرى لهذا النطاق.
- دعهم يصممون خط الأنابيب الخاص بهم. لا تجبرهم على استخدام قالب خط أنابيب على مستوى الشركة. دعهم يختارون استراتيجية الاختبار الخاصة بهم، وتكرار النشر، ونهج التراجع.
- وفر منصة، وليس بوابة. ابنِ بنية تحتية وأدوات مشتركة يمكن للفرق استخدامها، لكن لا تجعلهم ينتظرون الموافقات أو يقفون في طابور للحصول على فتحات الإصدار.
- ضع حدودًا واضحة. حدد ما يملكه هذا الفريق وما تملكه الفرق الأخرى. وثق الواجهات بين الفرق. تأكد من أن الجميع يعرف أين تنتهي مسؤولية فريق وتبدأ مسؤولية آخر.
الخلاصة الحقيقية
الفرق المتوافقة مع التدفق تغير تجربة التسليم من الانتظار والتنسيق إلى الحركة والشحن. عندما يمتلك الفريق دورة القيمة الخاصة به، يختفي احتكاك عمليات التسليم. يصبح خط أنابيب CI/CD أداة يتحكم فيها الفريق، وليس عملية يخضع لها الفريق. يمكن للفريق الاستجابة لمشكلات الإنتاج فورًا، وشحن الميزات بوتيرته الخاصة، والتركيز على بناء القيمة بدلاً من التنقل بين التبعيات التنظيمية.
ابدأ صغيرًا. اختر مجالًا واحدًا محددًا، وامنح الفريق الملكية الكاملة، وشاهد كيف تتغير سرعة تسليمهم. الفرق بين انتظار الإذن وامتلاك الرحلة بأكملها أكبر مما تتوقع معظم الفرق.