قانون بروكس

قانون بروكس هو ملاحظة تتعلق بإدارة مشاريع البرمجيات، مفادها أن "إضافة المزيد من الأفراد إلى مشروع برمجي متأخر يزيد من تأخيره". [ 1 ] [ 2 ] وقد صاغه فريد بروكس في كتابه "أسطورة الشهر البشري " عام 1975. ووفقًا لبروكس، في ظل ظروف معينة، فإن إضافة فرد إضافي إلى المشروع يزيد من وقت إنجازه، وليس العكس.

التفسيرات

بحسب بروكس نفسه، فإن القانون "تبسيط مفرط ومُبالغ فيه" [ 1 ] ، ولكنه يُجسّد القاعدة العامة. ويُشير بروكس إلى العوامل الرئيسية التي تُفسّر سبب عمله بهذه الطريقة:

  1. يستغرق الأمر بعض الوقت حتى يصبح الموظفون الجدد في المشروع منتجين . يُطلق بروكس على هذه الفترة اسم " فترة التأسيس ". مشاريع البرمجيات عبارة عن مساعٍ هندسية معقدة ، ويجب على الموظفين الجدد في المشروع أولاً أن يتعرفوا على العمل الذي سبقهم؛ ويتطلب هذا التدريب تحويل الموارد العاملة بالفعل في المشروع، مما يقلل إنتاجيتها مؤقتًا ريثما يبدأ الموظفون الجدد بالمساهمة بفعالية. كما يحتاج كل موظف جديد إلى الاندماج مع فريق مؤلف من عدة مهندسين، والذين بدورهم يُدرّبونه في مجال خبرتهم في قاعدة البيانات البرمجية، يومًا بعد يوم. إضافةً إلى تقليل مساهمة الموظفين ذوي الخبرة (بسبب الحاجة إلى التدريب)، قد يُساهم الموظفون الجدد سلبًا، على سبيل المثال، إذا تسببوا في أخطاء تُؤخر إنجاز المشروع.
  2. تزداد أعباء الاتصال مع ازدياد عدد الأفراد. ونظرًا لتزايد عدد الخيارات المتاحة ، يزداد عدد قنوات الاتصال المختلفة بسرعة مع ازدياد عدد الأفراد. [ 3 ] يحتاج كل من يعمل على المهمة نفسها إلى التنسيق، لذا مع ازدياد عدد الأفراد، يقضون وقتًا أطول في محاولة معرفة ما يفعله الآخرون.
  3. إن إضافة المزيد من الأشخاص إلى مهمة قابلة للتجزئة بدرجة كبيرة، مثل تنظيف غرف فندق، يقلل من مدة المهمة الإجمالية (إلى الحد الذي يعيق فيه العمال الإضافيون عمل بعضهم البعض). ومع ذلك، فإن مهامًا أخرى، بما في ذلك العديد من التخصصات في مشاريع البرمجيات، أقل قابلية للتجزئة؛ ويشير بروكس إلى هذه القابلية المحدودة للتجزئة بمثال آخر: فبينما تستغرق امرأة واحدة تسعة أشهر لإنجاب طفل واحد، "لا تستطيع تسع نساء إنجاب طفل في شهر واحد".

الاستثناءات والحلول الممكنة

توجد بعض النقاط الرئيسية في قانون بروكس التي تسمح بالاستثناءات وتفتح الباب أمام حلول محتملة. [ 4 ] [ 5 ]

أولًا، تجدر الإشارة إلى أن قانون بروكس لا ينطبق إلا على المشاريع المتأخرة بالفعل. [ 6 ] يمكن إعادة المشاريع إلى مسارها الصحيح (أو الحفاظ عليها تحت السيطرة) بإضافة أفراد في وقت مبكر من العملية. [ 7 ] من المهم أيضًا تحديد ما إذا كان المشروع متأخرًا بالفعل، أو ما إذا كان الجدول الزمني في الأصل متفائلًا بشكل مفرط. تُعزى نسبة كبيرة من حالات تأخر المشاريع إلى أخطاء في الجدولة. يُعد تصحيح الجدول الزمني أفضل طريقة للحصول على إطار زمني ذي معنى وموثوق لإنجاز المشروع. [ 8 ]

يجب أيضًا مراعاة كمية ونوعية ودور الأفراد المُضافين إلى المشروع. إحدى الطرق البسيطة للتحايل على القانون المتعلق بتجاوز ميزانية المشروع هي إضافة عدد من الأفراد يفوق الحاجة، بحيث تُعوّض القدرة الإضافية تكاليف التدريب والتواصل. [ 9 ] يمكن إضافة مبرمجين أو متخصصين أكفاء بتكلفة تدريب أقل. [ 10 ] يمكن إضافة أفراد لأداء مهام أخرى متعلقة بالمشروع، مثل ضمان الجودة أو التوثيق؛ فإذا كانت المهمة واضحة، يتم تقليل وقت الإعداد إلى أدنى حد. [ 11 ]

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

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

تم اقتراح خطة برمودا ، التي يتم بموجبها إبعاد معظم المطورين في المشروع ("إرسالهم إلى برمودا ") وترك الباقين لإكمال البرنامج، كوسيلة للتحايل على قانون بروكس. [ 12 ] [ 13 ]

انظر أيضاً

ملحوظات

  1. 1 2 فريدريك ب. بروكس الابن. الشهر الأسطوري للرجل . 1995 [1975]. أديسون ويسلي.
  2. ماغي فوكس، إن بي سي نيوز، ٢١ أكتوبر ٢٠١٣، استخدام الهاتف أفضل: لماذا فشل موقع أوباما كير الإلكتروني . تاريخ الوصول: ٢١ أكتوبر ٢٠١٣. "ويشير خبراء البرمجيات إلى أن إرسال عدد كبير جدًا من "أفضل وألمع" الكفاءات قد لا يكون الحل الأمثل أيضًا. وغالبًا ما يستشهدون بقانون بروكس، الذي ينص على أن إضافة أشخاص إلى مشروع ما يبطئ من وتيرته."
  3. جيمس تايلور، "دليل البقاء لمديري المشاريع"، الطبعة الثانية، أماكوم، 2006، رقم ISBN 978-0814408773، ص 21.
  4. «على الرغم من قانون بروكس، فإن إضافة أشخاص إلى مشروع متأخر لا تزال أمرًا شائعًا» ... «لقد روجتُ لهذه الفكرة الشائعة في هندسة البرمجيات مرات عديدة، لكنني لم أعد أعتقد أنها صحيحة». (ماكونيل، 1999)
  5. "تكمن المشكلة في وجود استثناءات مهمة لا يأخذها الكثير من الناس في الاعتبار عند استخدام قانون بروكس لتبرير شيء ما". (بيركون، 2006)
  6. "يتضمن هذا المفهوم ضمناً أنه ينطبق فقط على المراحل النهائية للمشروع. والسؤال هو: كيف تعرف ما إذا كنت في المراحل النهائية للمشروع؟" (ماكونيل، 1999)
  7. «لقد وجدنا أن إضافة أفراد إلى مشروع متأخر ستزيد من تكلفته دائمًا، ولكن قد لا يكون المشروع متأخرًا بالضرورة، إذ قد يكون هناك جدول زمني كافٍ لاستيعابهم، وقد لا يكون المشروع بكامل طاقته. فقط في ظل قيود تسلسلية معينة بين مهام المشروع سيتأخر.» (هسيا، هسو، كونغ، 1999)
  8. من المرجح أن تتأخر المشاريع الفوضوية المتأخرة أكثر بكثير مما يتوقعه مدير المشروع - فإنجاز المشروع ليس بعد ثلاثة أسابيع، بل بعد ستة أشهر. لا بأس بتوظيف المزيد من الموظفين، فسيكون لديك متسع من الوقت ليصبحوا منتجين. سيظل مشروعك متأخرًا عن خطتك، لكن هذا ليس نتيجة لقانون بروكس، بل نتيجة للاستهانة بالمشروع منذ البداية. (ماكونيل، 1999)
  9. "درس جوردون ولامب قانون بروكس واقترحا أن أفضل طريقة للتعافي من جدول زمني متأخر هي إضافة عدد أكبر من الأشخاص مما قد يكون متوقعًا أن يكون ضروريًا، وإضافتهم مبكرًا." (هسيا، هسو، كونغ، 1999)
  10. «يفترض القانون أن جميع الأعمال الإضافية متساوية، وهذا غير صحيح. إذا كان الخيار بين إضافة مبرمج جيد، يعرف قاعدة البيانات البرمجية ويرتبط بعلاقات صداقة مع نصف الفريق، فسأفكر في الأمر.» (بيركون، 2006)
  11. «النهج المؤسف والشائع هو إقحام الناس دون شرح وافٍ وتركهم يكتشفون الأمر بأنفسهم. لكن إذا أوضح المدير سبب انضمام سالي وروبرت، وحدد لهما أدوارًا مناسبة، بمشاركة الفريق، فسيكون انتقالهما سلسًا.» (بيركون، 2006)
  12. شيا، توم (7 مايو 1984). "المطورون يكشفون النقاب عن 'برنامج وهمي'"" . InfoWorld . 6 (19). مجموعة InfoWorld الإعلامية: 48. ISSN 0199-6649 . تاريخ الاسترجاع : 13 أبريل 2010. " 
  13. برونو، إريك ج. (2023-02-06). "الأقواس المعقوفة #9: هل كان فريد بروكس مخطئًا بشأن تأخر مشاريع البرمجيات؟" . مجلة جافا . شركة أوراكل.

مراجع

  • ستيف ماكونيل. "إلغاء قانون بروكس"، مجلة IEEE Software، المجلد 16، العدد 6، الصفحات  6-8، نوفمبر/ديسمبر 1999. متاح أيضًا على موقع المؤلفين الإلكتروني ( إلغاء قانون بروكس؟ ).
  • بي هسيا، تشيه تونغ هسو، ديفيد سي كونغ. "إعادة النظر في قانون بروكس: نهج ديناميكيات النظام"، كومبساك، ص  370، المؤتمر الدولي السنوي الثالث والعشرون لبرمجيات وتطبيقات الحاسوب، 1999.
  • آر إل جوردون وجيه سي لامب. "نظرة فاحصة على قانون بروكس"، داتاماشن، يونيو 977، ص  81-86.
  • بيركون، سكوت (11 يناير 2006). "استثناءات من قانون بروكس" . تم الاسترجاع في 28 يوليو 2008 .
  • ينطبق قانون بروكس على العديد من الأنشطة التعاونية بين الأفراد