في البحث عن عزاء

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

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

بحثاً عن نموذج بديل

هذا مقال تم نشره علي موقع بوابة الشروق ثم تم حذفه بعد النشر بما يزيد عن أسبوع ضمن مجموعة مقالات لعدد من الشباب تم حذفها بقرار من رئيس التحرير بحجة أنه لم يراجعها شخصياً، في سابقة لم تحدث من قبل علي قدر علمي.

الرومان يتناقلون الخبر غير مصدقين. الصدمة، الغضب، الخوف والإهانة…. الكثير من الإهانة التي لم يشعر الرومان بمثلها عبر التاريخ.

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

                                                ********************                                                         أكمل قراءة…

أخطاء كلاسيكية

أحد المفاهيم الأساسية التي تعلمتها في بداية معرفتي بعلم هندسة البرمجيات كان مفهوم (الأخطاء الكلاسيكية). هي أخطاء تتكرر علي مر السنين و هي أخطاء مغرية، أفعال تبدو للنظرة الأولي بديهية و منطقية إلا أنه بعد شيء من التفكير العميق و قراءة تاريخ مشروعات البرمجيات – إن كان يمكن إستخدام كلمة تاريخ عند الحديث عن علم وليد مثل علم البرمجيات – تكتشف أن هذه الأفعال هي أخطاء كارثية.

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

بالتالي زيادة عدد المبرمجين عندما يتأخر المشروع هو نوع من سكب البنزين علي النار المشتعلة بالفعل.

هذه الفكرة عرفت لأول مرة عام 1975 و حتي اليوم يقع فيها عدد محترم من مديري المشروعات. الكتاب الذي عرفت عن طريقه فكرة (الأخطاء الكلاسيكية) كان يضم 32 خطئاً كلاسيكياً في صناعة البرمجيات.

لفترة ظللت أفكر في الموضوع في نطاق أدارة مشروعات البرمجيات، و لكن تدريجياً إنتبهت لأنها مشكلة بشرية عامة. لو تتبعت التاريخ لوجدت الكثير من الأفعال التي تبدو بديهية منطقية إلا أن بعض التدقيق و الكثير من قراءة التاريخ يخبرونك أنها كارثية. أكمل قراءة…