برمجة عبادة الشحنة.
تضمين طقوسي لكود حاسوبي غير ضروري
برمجة عبادة الشحنة (Cargo cult programming) هي أسلوب في برمجة الحاسوب يتميز بالتضمين الطقوسي لكود أو هياكل برمجية لا تخدم أي غرض حقيقي. وتعتبر برمجة عبادة الشحنة عرضاً لعدم فهم المبرمج للخطأ الذي يحاول حله أو الحل الظاهر له (قارن مع تصحيح الأخطاء العشوائي shotgun debugging، والسحر العميق deep magic). وقد ينطبق مصطلح مبرمج عبادة الشحنة عندما يقوم شخص غير خبير بالمشكلة الحالية بـ نسخ بعض الكود البرمجي من مكان إلى آخر دون فهم يذكر لكيفية عمله أو ما إذا كان مطلوباً.
ويمكن أن تشير برمجة عبادة الشحنة أيضاً إلى ممارسة تطبيق نمط التصميم (design pattern) أو أسلوب كتابة الكود بشكل أعمى دون فهم الأسباب الكامنة وراء هذا المبدأ التصميمي. ومن الأمثلة على ذلك إضافة تعليقات غير ضرورية إلى كود يوضح نفسه بنفسه، أو الالتزام المفرط باصطلاحات نموذج برمجي (programming paradigm)، أو إضافة كود لحذف الكائنات التي يقوم نظام جمع المهملات (garbage collection) بجمعها تلقائياً.
أصل التسمية
طوائف عبادة الشحنة (Cargo cults) هي حركات مسيحانية نشأت في ميلانيزيا تحت الحكم الاستعماري، وألهمت ريتشارد فاينمان لصياغة مصطلح علم عبادة الشحنة (cargo cult science). ووفقاً لوصف فاينمان، فإنه بعد نهاية الحرب العالمية الثانية، اعتقد أتباع هذه الطوائف أن تسليم البضائع جواً سيستأنف إذا قاموا بطقوس معينة، مثل بناء مدارج طائرات، وإشعال النيران بجانبها، وارتداء سماعات أذن منحوتة من الخشب أثناء الجلوس في أبراج مراقبة وهمية. "الشكل مثالي. إنه يبدو تماماً كما كان يبدو من قبل. ولكنه لا يعمل."
ثم أصبح المصطلح يُستخدم على نطاق أوسع كاستعارة للطقوس الفارغة. وظهر مصطلح "برمجة عبادة الشحنة" في الإصدار 2.5.1 من ملف المصطلحات (Jargon File)، وهو معجم للغة العامية في مجال الحوسبة صدر في يناير 1991. وفي الوقت نفسه، يُتجنب مصطلح "عبادة الشحنة" بشكل متزايد في الأنثروبولوجيا لعدم تمثيله لتعقيد معتقدات ميلانيزيا.
هندسة برمجيات عبادة الشحنة
من المصطلحات ذات الصلة ببرمجة عبادة الشحنة في هندسة البرمجيات هو هندسة برمجيات عبادة الشحنة، وهو مصطلح صاغه ستيف مكونيل.
يصف مكونيل منظمات تطوير البرمجيات التي تحاول تقليد شركات التطوير الأكثر نجاحاً، إما عن طريق الاتباع الأعمى لـ عملية تطوير البرمجيات دون فهم المنطق الكامن وراءها، أو بمحاولة محاكاة نهج التطوير الموجه نحو الالتزام (حيث يكرس مطورو البرمجيات مبالغ ضخمة من الوقت والطاقة لإنجاح مشاريعهم) من خلال فرض ساعات عمل طويلة وعمل إضافي غير مدفوع الأجر، في حين أن هذه الأمور في الشركات الناجحة قد تكون نتيجة للدافعية العالية وليست سبباً للنجاح.
وفي كلتا الحالتين، يؤكد مكونيل أن الكفاءة هي التي تحدد في النهاية نجاح المشروع أو فشله، بغض النظر عن نهج التطوير المتبع؛ علاوة على ذلك، يدعي أن "المنظمات المدعية" غير الكفؤة (التي تقلد مجرد شكل منظمات تطوير البرمجيات الناجحة) تشارك في الواقع فيما يسميه هندسة برمجيات عبادة الشحنة.