ما هو العائد على الاستثمار المستمر التكامل ؟

StackOverflow https://stackoverflow.com/questions/2523841

  •  22-09-2019
  •  | 
  •  

سؤال

حاليا منظمتنا لا يمارس التكامل المستمر.

من أجل الحصول على CI الخادم وتشغيلها, سوف تحتاج إلى تقديم وثيقة تثبت العائد على الاستثمار.

وبصرف النظر عن وفورات في التكاليف من خلال إيجاد إصلاح الخلل في وقت مبكر ، أنا غريبة عن فوائد أخرى/الوفورات التي لا يمكن أن عصا في هذه الوثيقة.

هل كانت مفيدة؟

المحلول

السبب رقم 1 لإعجاب CI هو أنه يساعد على منع المطورين من التحقق من التعليمات البرمجية المكسورة التي يمكن أن تشل في بعض الأحيان فريقًا بأكمله. تخيل لو قمت بإجراء تسجيل وصول مهم يتضمن بعض التغييرات في مخطط DB قبل مغادرتي لقضاء إجازة. من المؤكد أن كل شيء يعمل بشكل جيد على مربع DEV الخاص بي ، لكنني أنسى تسجيل الوصول إلى تغيير مخطط DB الذي قد يكون أو لا يكون تافهًا. حسنًا ، هناك الآن تغييرات معقدة تشير إلى حقول جديدة/تم تغييرها في قاعدة البيانات ، لكن لا أحد في المكتب في اليوم التالي لديه هذا المخطط الجديد ، لذا فإن الفريق بأكمله قد انخفض بينما يبحث شخص ما في إعادة إنتاج العمل الذي قمت به بالفعل و فقط نسيت تسجيل الوصول.

ونعم ، لقد استخدمت مثالًا سيئًا بشكل خاص مع تغييرات DB ولكن قد يكون أي شيء ، حقًا. ربما يكون تسجيل الوصول الجزئي مع بعض رمز البريد الإلكتروني الذي يتسبب بعد ذلك في إرساء Devs الخاص بك عن مستخدميك النهائيين الفعليين؟ سمها ما شئت...

لذلك في رأيي ، فإن تجنب حالة واحدة من هذه الحالات سيجعل عائد الاستثمار لمثل هذا المسعى يؤتي ثماره بسرعة كبيرة.

نصائح أخرى

إذا كنت تتحدث إلى مدير برنامج قياسي ، فقد يجدون أن التكامل المستمر يصعب فهمه من حيث العائد على الاستثمار البسيط: ليس من الواضح على الفور المنتج المادي الذي سيحصلون عليه مقابل استثمار معين بالدولار.

إليكم كيف تعلمت أن أشرح ذلك: "التكامل المستمر يلغي فئات مخاطرة كاملة من مشروعك."

إدارة المخاطر هي مشكلة حقيقية لمديري البرامج الذين يقعون خارج كين العادي لأنواع هندسة البرمجيات الذين يقضون وقتًا أطول في كتابة التعليمات البرمجية أكثر من القلق بشأن كيفية إنفاق الدولارات. جزء من العمل مع هذه الأنواع من الناس بفعالية هو تعلم التعبير عن ما نعرف أنه شيء جيد من حيث يمكنهم فهمه.

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

  1. مخاطر التكامل: في نظام الإنشاء المستمر القائم على التكامل ، فإن قضايا التكامل مثل "لقد نسي التحقق من ملف قبل أن يعود إلى المنزل لقضاء عطلة نهاية أسبوع طويلة" أقل عرضة للتسبب . التوفير للمشروع لتجنب أحد هذه الحوادث = عدد الأشخاص في الفريق (ناقص واحد بسبب الشرير الذي نسي تسجيل الوصول) * 8 ساعات لكل يوم عمل * كل ساعة لكل مهندس. هنا ، هذا يصل إلى آلاف الدولارات التي لن يتم فرضها على المشروع. فوز العائد على الاستثمار!
  2. خطر الانحدار: مع وجود مجموعة اختبار / اختبار تلقائي يتم تشغيله بعد كل بناء ، فإنك تقلل من خطر أن يؤدي التغيير إلى الكود إلى كسر شيء يستخدم للعمل. هذا هو أكثر غموضا وأقل ضمانا. ومع ذلك ، فأنت على الأقل تقدم إطار عمل حيث يتم استبدال بعض الاختبارات البشرية الأكثر مملًا وتستغرق وقتًا طويلاً (أي باهظة الثمن) بأتمتة.
  3. مخاطر التكنولوجيا: يمنحك التكامل المستمر أيضًا فرصة لتجربة مكونات التكنولوجيا الجديدة. على سبيل المثال ، وجدنا مؤخرًا أن Java 1.6 Update 18 كان يتعطل في خوارزمية جمع القمامة أثناء نشر على موقع بعيد. نظرًا للتكامل المستمر ، كان لدينا ثقة كبيرة في أن التراجع إلى التحديث 17 كان لديه احتمال كبير للعمل حيث لم يفعل التحديث 18. هذا النوع من الأشياء أصعب بكثير من حيث القيمة النقدية ولكن لا يزال بإمكانك استخدام وسيطة المخاطر: فشل معين للمشروع = سيء. تخفيض رشيقة = أفضل بكثير.

CI يساعد مع اكتشاف القضية. قم بقياس مقدار الوقت الذي يستغرقه حاليًا لاكتشاف التصميمات المكسورة أو الأخطاء الرئيسية في الكود. اضرب ذلك حسب التكلفة للشركة لكل مطور باستخدام هذا الرمز خلال هذا الإطار الزمني. اضرب ذلك في عدد المرات التي تحدث فيها الكسر خلال العام.

هناك رقمك.

كل بناء ناجح هو مرشح للإصدار - بحيث يمكنك تقديم التحديثات وإصلاحات الأخطاء بشكل أسرع بكثير.

إذا كان جزء من عملية البناء يولد مثبتًا ، فإن هذا يسمح بدورة نشر سريعة أيضًا.

من عند ويكيبيديا:

  • عندما تفشل اختبارات الوحدة أو تظهر خطأ ، قد يعود المطورون إلى قاعدة كود إلى حالة خالية من الأخطاء ، دون إضاعة الوقت
  • يكتشف المطورون مشكلات التكامل وإصلاحها بشكل مستمر - تجنب الفوضى في اللحظة الأخيرة في تواريخ الإصدار ، (عندما يحاول الجميع التحقق من إصداراتهم غير المتوافقة قليلاً).
  • الإنذار المبكر من الكود المكسور/غير المتوافق
  • الإنذار المبكر من التغييرات المتضاربة
  • اختبار الوحدة الفوري لجميع التغييرات
  • توافر مستمر للبناء "الحالي" للاختبار أو التجريبي أو الأغراض
  • ردود فعل فورية للمطورين حول الجودة أو الوظائف أو التأثير على مستوى النظام للكود الذي يكتبونه
  • يدفع مطورو تسجيل الوصول بشكل متكرر إلى إنشاء رمز وحدات أقل تعقيدًا
  • المقاييس التي تم إنشاؤها من الاختبارات الآلية و CI (مثل مقاييس تغطية الكود ، وتعقيد الكود ، والميزات كاملة) ، يركز المطورين على تطوير رمز وظيفي ، والمساعدة في تطوير الزخم في الفريق
  • مطلوب مجموعة اختبار متطورة بشكل جيد لأفضل فائدة

نستخدم CI (اثنان من البناء يوميًا) ويوفر لنا الكثير من الوقت في الحفاظ على رمز العمل متاحًا للاختبار والإصدار.

من وجهة نظر المطورين يمكن أن يكون CI تخويفًا عند نتيجة البناء التلقائي ، يتم إرسالها عبر البريد الإلكتروني إلى جميع أنحاء العالم (المطورين ، مديري المشاريع ، إلخ) ، يقول: "فشل خطأ في تحميل DLL من" xyz.dll "فشل." وأنت السيد Xyz وهم يعرفون من أنت :)!

هنا هو بلدي على سبيل المثال من تجاربي الخاصة...

يحتوي هذا النظام على منصات متعددة وتكوينات مع أكثر من 70 من المهندسين الذين يعملون على نفس قاعدة القانون.عانينا من مكان ما حوالي 60% بناء نجاح أقل استخداما التكوينات و 85% على الأكثر استخداما.كان هناك ثابت سيل من رسائل البريد الإلكتروني يوميا عن تجميع أخطاء أو مخالفات أخرى.

لقد قمت ببعض الحسابات التقريبية و يقدر أن فقدنا بمعدل ساعة واحدة في اليوم لكل مبرمج سيئة يبني ، والتي يبلغ ما يقرب من 10 أيام رجل من العمل كل يوم.هذا لا عامل في التكاليف التي تحدث في التكرار وقت المبرمجين رفض لمزامنة آخر رمز لأنهم لا أعلم إذا كانت مستقرة ، التي تكلف الولايات المتحدة أكثر من ذلك.

بعد نشر رف من بناء خوادم مدارة من قبل فريق المدينة ونحن نرى الآن في المتوسط نسبة النجاح 98% على جميع التكوينات ، ومتوسط خطأ ترجمة يبقى في الجسم لمدة دقائق وليس ساعات ومعظم المهندسين لدينا الآن مرتاح فى أحدث تنقيح قانون.

عموما أود أن أقول أن تقدير متحفظ على الوفورات الإجمالية حوالي 6 أشهر رجل من الوقت على مدى الأشهر الثلاثة الأخيرة من المشروع مقارنة مع الأشهر الثلاثة السابقة على نشر CI.هذه الحجة قد ساعدت الولايات المتحدة في تأمين الموارد لتوسيع بناء لدينا خوادم والتركيز أكثر المهندس الوقت الإضافي الاختبار الآلي.

أكبر مكسب ، هو دائمًا بناء ليلي ل QA. تحت نظامنا القديم ، سيكتشف كل منتج ، على الأقل مرة واحدة في الأسبوع ، في الساعة 2 صباحًا أن شخصًا ما قد فحص رمزًا سيئًا. لم يسبب هذا بنية ليلية للاختبار ، وكان العلاج هو إرسال بريد إلكتروني للهندسة. كانوا يشخصون المشكلة والاتصال بـ Dev. في بعض الأحيان استغرق الأمر ما دام الظهر قبل QA في الواقع شيء للعمل معه. الآن ، بالإضافة إلى وجود تثبيت جيد كل ليلة ، نقوم بتثبيته بالفعل على VM لجميع التكوينات المدعومة المختلفة كل ليلة. حتى الآن عندما يأتي QA ، يمكنهم البدء في الاختبار في غضون بضع دقائق. الآن عندما تفكر في الطريق القديم ، جاءت QA في التثبيت ، وأطلق جميع VMs ، ثم بدأها ، ثم بدأت الاختبار. نوفر QA على الأرجح 15 دقيقة لكل تكوين للاختبار ، لكل شخص QA.

هناك خوادم CI مجانية متوفرة ، وأدوات بناء مجانية مثل NANT. يمكنك تنفيذه على صندوق DEV الخاص بك لاكتشاف الفوائد.

إذا كنت تستخدم التحكم في المصدر ، ونظام تتبع الأخطاء ، أتصور أن كونه أول من قام بالإبلاغ عن الأخطاء (في غضون دقائق بعد كل تسجيل الوصول) سيكون مقنعًا إلى حد ما. أضف إلى ذلك الانخفاض في معدل الأخطاء الخاص بك ، وربما سيكون لديك بيع.

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

  • هل ستوفر التكلفة؟ ربما لا،
  • هل سيفشل المشروع أثناء UAT؟ قطعا لا،
  • هل سيتم إغلاق المشروع بينهما؟ - احتمال كبير عندما يجد العملاء أن هذا لن يقدم النتيجة المتوقعة.
  • هل ستحصل على بيانات حقيقية وبيانات حقيقية حول المشروع - نعم

لذلك فهو يساعد في الفشل بشكل أسرع ، مما يساعد على تخفيف المخاطر في وقت سابق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top