قبل أن تبني خط أنابيب، تحتاج إلى هذه الأشياء الثلاثة
قبل بضعة أشهر، جلست في اجتماع تخطيط حيث كان فريق متحمسًا لخط الأنابيب CI/CD الجديد الخاص بهم. لقد أمضوا أسابيع في تكوين الأدوات، وكتابة ملفات YAML، وإعداد الاختبارات الآلية. كان خط الأنابيب يعمل بنجاح. كانت عمليات النشر سريعة. شعر الجميع بالرضا.
ثم سأل أحدهم: "ما الذي نحاول تحقيقه بالفعل من كل هذا؟"
ساد الصمت الغرفة. تحدث البعض عن إصدارات أسرع. أشار آخرون إلى أخطاء أقل. قال القليلون إنهم يريدون تقليل العمل اليدوي. لم يكن لدى أي شخص نفس الإجابة. كان خط الأنابيب يعمل، لكن لم يستطع أحد شرح شكل النجاح.
ذلك الفريق بنى خط أنابيب دون الإجابة على ثلاثة أسئلة أساسية أولاً. ولهذا السبب، لم يحل خط الأنابيب الخاص بهم، مهما كان هندسيًا جيدًا، المشكلات الصحيحة.
ابدأ بـ "لماذا": النتيجة التجارية
كل جهد هندسي يحتاج إلى وجهة. بدونها، تنجرف الفرق. يبنون ميزات لم يطلبها أحد. يحسنون عمليات لا تهم. يقيسون أشياء تبدو جيدة على لوحات المعلومات ولكن لا علاقة لها بالنتائج الحقيقية.
النتيجة التجارية ليست قائمة ميزات. ليست مواصفات فنية. إنها نتيجة قابلة للقياس تهم الأشخاص الذين يستخدمون منتجك أو يدفعون مقابله.
أمثلة على النتائج التجارية:
- يمكن للمستخدمين الجدد إكمال التسجيل في أقل من دقيقتين.
- ينخفض وقت إنشاء التقرير الشهري من ثلاثة أيام إلى ساعة واحدة.
- تنخفض تذاكر دعم العملاء المتعلقة بمشكلات تسجيل الدخول بنسبة 40 بالمائة.
لاحظ ما ليست هذه الأمثلة. إنها ليست "سنقوم بتطبيق OAuth" أو "سننتقل إلى Kubernetes". تلك حلول تقنية. النتيجة التجارية تصف التأثير الذي تريد تحقيقه، وليس كيف تخطط لتحقيقه.
عندما يكون لدى الفرق نتيجة تجارية واضحة، تصبح القرارات أسهل. هل يجب إضافة هذه الميزة الجديدة أم إصلاح مشكلة الاستقرار؟ انظر إلى النتيجة التجارية. أي خيار يحقق التقدم؟ بدون هذا المرتكز، يعرّف كل فريق النجاح بشكل مختلف. فريق الواجهة الأمامية يقيس وقت تحميل الصفحة. فريق الواجهة الخلفية يقيس زمن استجابة API. فريق المنصة يقيس وقت التشغيل. الجميع مشغول. لا أحد متوافق.
ارسم التدفق: تدفق القيمة
بمجرد أن تعرف ما تريد تحقيقه، تحتاج إلى فهم كيف يتدفق العمل بالفعل من الفكرة إلى المستخدم. هذا هو تدفق القيمة الخاص بك.
تدفق القيمة ليس هو نفسه خط أنابيب CI/CD. خط الأنابيب هو تنفيذ تقني. تدفق القيمة هو الرحلة الكاملة: من لحظة كتابة شخص ما للكود، مرورًا بالاختبار والبناء والمراجعة والموافقة والنشر والتحقق، وأخيرًا الوصول إلى المستخدم الذي يحصل على قيمة منه.
يتضمن تدفق القيمة أيضًا أشياء تتجاهلها خطوط الأنابيب غالبًا:
- عمليات مراجعة الكود والموافقة
- خطوات التحقق اليدوية
- وقت الانتظار بين عمليات التسليم
- حلقات التغذية الراجعة عند حدوث خطأ ما
- عبء التواصل بين الفرق
رسم خريطة تدفق القيمة يعني سرد كل خطوة تحدث بين "كتابة الكود" و"حصول المستخدم على القيمة". لكل خطوة، اطرح ثلاثة أسئلة:
- ماذا تنتج هذه الخطوة؟
- من المشارك؟
- كيف نعرف إذا كانت تضيف قيمة؟
تكتشف العديد من الفرق أن نصف الخطوات في تدفق القيمة الخاص بهم لا تساهم بشكل مباشر في النتيجة التجارية. إنها موجودة لأن "هذه هي الطريقة التي فعلنا بها الأمور دائمًا". اجتماع موافقة أسبوعي لا يحضره أحد. توقيع يدوي يتم ختمه بشكل روتيني. مرحلة اختبار تشغيل نفس الفحوصات التي يقوم بها خط الأنابيب الآلي.
هذه الخطوات هي هدر. إنها تبطئ التسليم دون تحسين الجودة. عندما تراها في تدفق القيمة الخاص بك، لديك خياران: إزالتها أو إعادة تصميمها.
تعيين الملكية: الفريق
لديك وجهة وخريطة. الآن أنت بحاجة إلى أشخاص للتحرك.
عنصر الفريق يدور حول من يملك أي جزء من تدفق القيمة. هذا ليس متعلقًا بالمخططات التنظيمية أو خطوط التقارير. إنه يتعلق بوضوح المسؤولية.
يجب أن يكون لكل خطوة في تدفق القيمة مالك واضح. يعرف هذا المالك:
- ما هو مسؤول عن إنتاجه
- كيف يرتبط مخرجاته بالنتيجة التجارية
- من يعتمد على عمله
- ما يحتاجه من الآخرين للقيام بعمله
عندما تكون المسؤولية غير واضحة، تظهر فجوات. فريق التطبيق يعتقد أن النشر هو وظيفة فريق البنية التحتية. فريق البنية التحتية يعتقد أن النشر هو وظيفة فريق التطبيق. تبقى الإصدارات الجديدة في بيئة الاختبار (staging) لأسابيع لأن لا أحد يتحمل ملكية الدفع النهائي إلى الإنتاج.
تنظم المؤسسات المختلفة الفرق بشكل مختلف. بعضها يستخدم فرق ميزات تضم المطورين وضمان الجودة والعمليات في مجموعة واحدة. البعض الآخر لديه فريق منصة منفصل يوفر البنية التحتية والأدوات لفرق التطبيق. لا يوجد نهج أفضل بطبيعته. المهم هو أن كل جزء من تدفق القيمة له مالك محدد بالاسم، وأن هذا المالك يفهم كيف يساهم عمله في النتيجة التجارية.
كيف ترتبط هذه العناصر الثلاثة
النتيجة التجارية، وتدفق القيمة، والفريق ليست مستقلة. إنها تشكل نظامًا.
يوضح الرسم البياني أدناه كيف تشكل هذه العناصر الثلاثة نظامًا يوجه تصميم خط الأنابيب.
- النتيجة التجارية تعطي الاتجاه. بدونها، تتخذ الفرق قرارات بناءً على التفضيل الشخصي أو التحسين المحلي.
- تدفق القيمة يعطي المسار. بدونه، لا تستطيع الفرق رؤية أماكن اختباء التأخير والهدر.
- الفريق يعطي القدرة. بدون ملكية واضحة، يضيع العمل من بين الشقوق.
عندما يكون أحد هذه العناصر مفقودًا، يعاني الآخرون. فريق لا يعرف النتيجة التجارية سيحسن الأمور الخاطئة. تدفق قيمة غير مرسوم سيخفي الاختناقات. فريق بدون مسؤولية واضحة سيخلق تأخيرات في التسليم ولعبة إلقاء اللوم.
فقط بعد أن تصبح هذه المكونات الثلاثة واضحة، يجب أن تبدأ الحديث عن المنصات وخطوط الأنابيب واستراتيجيات النشر. الأدوات والأتمتة تسرع العملية. لكن إذا كانت العملية نفسها غير متوافقة، فإن التسريع يجعل الأمور أسوأ بشكل أسرع.
فحص سريع قبل البناء
قبل أن تصمم خط الأنابيب التالي أو تختار أداة النشر التالية، قم بهذه القائمة القصيرة مع فريقك:
- هل يمكن للجميع تسمية أهم نتيجة أو نتيجتين تجاريتين يعمل فريقك على تحقيقهما؟
- هل قمت برسم خريطة كاملة لتدفق القيمة من الكود إلى المستخدم، بما في ذلك الخطوات اليدوية ووقت الانتظار؟
- هل لكل خطوة في تدفق القيمة هذا مالك واضح؟
- هل يمكن لكل مالك شرح كيف يرتبط عمله بالنتيجة التجارية؟
إذا كانت أي إجابة بـ "لا"، قم بإصلاح ذلك أولاً. خط الأنابيب يمكنه الانتظار.
الخلاصة
خط الأنابيب هو أداة. استراتيجية النشر هي تقنية. لا شيء منهما يحل محل الحاجة إلى الوضوح بشأن ما تحاول تحقيقه، وكيف يتدفق العمل لتحقيقه، ومن المسؤول عن كل جزء من هذا التدفق.
ابدأ بالنتيجة التجارية. ارسم خريطة تدفق القيمة الخاص بك. حدد ملكية واضحة. ثم قم ببناء خط الأنابيب الذي يخدم هذا النظام، وليس العكس.