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

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

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

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

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

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

* * *

نظرة تاريخية

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

“مصطلح (هندسة البرمجيات) هي ليست الكلمة المناسبة لوصف هذه الوظيفة حيث أنها حتى الآن لا تقوم على ما تقوم عليه العلوم الهندسية الأساسية من تأسيس نظري ثم إثبات علمي، لذا فإنه يمكن القول بأن هذا المصطلح هو مصطلح عرفي جرت العادة على تستخدامه فقط.”

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

ولكن طريقة أجايل في تطوير البرمجيات أصبحت شائعة بشكل كبير، وهي طريقة أكثر مرونة ولكنها لا تهتم بالالتزام بخطة بعيدة المدى ولا بعملية التوثيق المعقدة. أحد أشهر أساليب أجايل هو سكرم (Scrum) والذي يعتمد على أخذ خطوات قصيرة للوصول للأهداف التي تتغير كثيرًا، أي تعتمد على التطوير بشكل مستمر.

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

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

* * *

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

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

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

في عام 2013، بدأ المجلس الوطني الأمريكي للممتحنين من المهندسين والمسّاحين (NCEES) في تقديم اختبارات لمهندسي البرمجيات. تم إنشاء الامتحانات بالتعاون مع منظمة IEEE والتي أنتجت دليلًا باسم (SWEBOK) يصف المعلومات والمؤهلات التي يجب أن يمتلكها مهندس البرمجيات.

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

إن صناعة تكنولوجيا المعلومات لا تهتم بالشهادات بقدر ما تهتم بها الهندسة، فالشركات الكبرى مثل جوجل لا تهتم بالشهادة الجامعية بقدر اهتمامها بمقدرة الشخص على القيام بالأعمال التي تراها جوجل مهمة.

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

* * *

المهندسون يتحملون مسئولية تجاه المجتمع، وخبراتهم تنبع من تلك المسئولية

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

إن الفرق بين المهندس وغيره، هو أن المهندس يقوم ببناء وتصميم البنية التحتية، ويصب عمله في خدمة المجتمع.

هذا المقال مترجمٌ عن المصدر الموضَّح أعلاه؛ والعهدة في المعلومات والآراء الواردة فيه على المصدر لا على «ساسة بوست».

عرض التعليقات
تحميل المزيد