الأخلاقيات في هندسة البرمجيات
الأخلاقيات في هندسة البرمجيات، ومهندسون البرمجيات في العصر الحالي هم مهندسو العصر الرقمي الذي تشهده
هذه الحقبة من التاريخ، من تصميم وإنشاء أدوات وبرامج تساهم في تسهيل الحياة وتؤثر على طريقة العيش والتفاعل
بين الناس، ومع سرعة تطور التكنولوجيا، يصبح دور مهندسو البرمجيات أكثر تأثيرا في الحياة اليومية، لذا لابد أن تكون الأخلاقيات في هندسة البرمجيات من أهم المواضيع التي توضع في الصدارة.
مدونة الأخلاقيات Code of Ethics
مدونة الأخلاقيات من أساسيات هندسة البرمجيات والممارسات المهنية الإحترافية إطار عمل شامل للسلوك الأخلاقي المتفق عليه في صناعة البرمجيات، وتوفر مدونة الأخلاقيات ثمانية مبادئ أساسية لتحقيق أخلاقيات هندسة البرمجيات
في سلوك مهندسي البرمجيات، وتعتبر هذه المبادئ بمثابة إتزام أخلاقي على كل مهندش برمجيات الإلتزام به بشكل صارم.
- المصلحة العامة (Public Interest): مهندسي البرمجيات عليهم العمل لصالح المصلحة العامة بشكل مستمر، وهذا يندرج تحت العمل في شركات صناعة البرمجيات والتي تلتزم بشكل تقائي في تنفيذ هذا المبدأ في منتجاتها.
- العميل وصاحب العمل (Client and Employer): على مهندس البرمجيات المشاركة في بناء المنتجات التي تحقق مصالح ومتطلبات العملاء وصاحب العمل، وأن تكون هذه المنتجات لها فائدى على المصلحة العامة.
- المنتج (Product): على كل مهندس برمجيات التأكد أن المنتجات التي يشارك في تطويرها وتعديلها على قدر كافي من المعايير الإحترافية، ويمكن أن تتحقق الأخلاقيات في هندسة البرمجيات من خلال هذا المبدأ إذا تم تطبيقه بشكل صحيح.
مباديء الأخلاقيات في هندسة البرمجيات
الحكم (Judgment):
مهندس البرمجيات لابد أن يكون صاحب نزاهة واستقلال في الأحكام التي يصدرها في حياته المهنية، لأن إصدار
الأحكام المجردة في حق الأشخاص ليست من الأخلاقيات في هندسة البرمجيات.
الإدارة (Management):
مديري هندسة البرمجيات لابد أن يكون لهم وعي كافي بأخلاقيات هندسة البرمجيات، والمساهمة في تطوير وتعزيز المناهج الأخلاقية المتبعة في الإدارة وتطبيقها بشكل عملي في مراحل تطوير وصيانة المنتجات البرمجية.
المهنة (Profession):
كل مهندس برمجيات مسؤول عن توفير سمعة جيدة ونزيهة عن مهنة هندسة البرمجيات وذلك بما يتوافق مع المصلحة العامة.
الزملاء (Colleagues):
يجب دعم زملاء العمل في مهنة هندسة البرمجيات، والتعاون الجيد بين الزملاء لتوفير منتجات عالية الجودة تتوافق مع المصلحة العامة.
الذات (Self):
مهنة هندسة البرمجيات تتطلب التعلم مدى الحياة، لذا على كل مهندس برمجيات التأقلم على أسلوب الحياة الطبيعي
لهذه المهنة، وأن يساهم في تطوير ذاته من خلال التعلم الجيد من المصادر المفيدة، مما يعزز النهج الأخلاقي لمزاولة هذه المهنة بشكل احترافي ومهذب.
هذه المبادئ الثماني تضمن بشكل مؤكد إلتزام مهندسي البرمجيات بتطوير وتعزيز مهنة هندسة البرمجيات وتوفيرها
بشكل مهذب ومحترم، مع تركيز شامل لصحة المهندس، وسلامة المنتجات، ورفاهية الجمهور المستهدف، وتعمل
هذه المبادئ كبوصلة أخلاقية لكل مهندس برمجيات أثناء رحلته المهنية.
لماذا نهتم بالأخلاقيات في هندسة البرمجيات
الإفادة العامة
عند ملاحظة المبادئ الثمانية التي تحدثنا عنها في الفقرة السابقة، نجد أن هذه المبادئ تتمحور حول شئ واحد
وهو المصلحة العامة، لأن مهندسي البرمجيات والمطورين من مسؤوليتهم تطوير منتجات تؤثر بشكل مباشر على
حياتنا اليومية وحياة كل فرد منا، وبدون الأخلاقيات في هندسة البرمجيات، قد يتم بناء منتجات بطرق غير شرعية
تضر بالمصلحة العامة.
وأساس صناعة البرمجيات هو بناء أدوات لتعزيز وتسهيل أداء المجتمع والفرد، وتؤكد الأخلاقيات على ضرورة وضع الفرد والمجتمع كأهمية قصوى عند بناء أي منتج.
تلبية المعايير المهنية
الأخلاق الشخصية مهمة جدا، ولكنها ليست كافية مع وجود صناعة معقدة جدا مثل صناعة البرمجيات، فالمعايير المهنية
كما ذكرنا في أهم الأخلاقيات في هندسة البرمجيات، توفر إطار عمل شامل ليساعد المحترفين من مهندسي البرمجيات
في تبرير الأعمال التي يقومون بها، وتشجعهم على إعتبار الأخلاقيات كعامل أساسي مهم في كل مشروع يشاركون فيه.
والإلتزام بهذه المعايير وتطبيقها تطبيقا صحيحا، يضع جميع مهندسي البرمجيات في فئة المهنيين الإحترافيين والقادة الذين لديهم مسؤوليات مختلفة، وتضمن هذه المعايير وجود تأثير حقيقي وإيجابي من قبل صناعة البرمجيات بشكل عام.
توفير برامج عالية الجودة
صناعة البرمجيات هي أساس الأنظمة الحيوية التي نستخدمها في حياتنا اليومية، مثل: أنظمة البنوك، وأنظمة شبكات الإتصالات، وأنظمة محطات توليد الطاقة، والعديد من الأنظمة الأخرى، لذا تعتبر الأخلاقيات في هندسة البرمجيات هي
العامل الضروري والحاكم لضمان استخدام هذه الأنظمة لبرامج ذات جودة عالية، ويمكن الاعتماد عليها، ولها تأثر جيد
على المصلحة العامة.
كما تؤكد مدونة الأخلاقيات في هندسة البرمجيات على وجود ضرورة على إنشاء منتجات تلبي المعايير المهنية،
وتجتاز الاختبارات اللازمة لاستخدام هذه المنتجات، ولا تؤثر على جودة الحياة أو الخصوصية أو البيئة، كما تهدف
الأخلاقيات في هندسة البرمجيات إلى التميز وليس تنفيذ المطلوب فقط.
المعضلات الأخلاقية في هندسة البرمجيات
التحيز الخوارزمي Algorithmic Bias
أجهزة الحاسوب بطبيعتها هي أجهزة محايدة أخلاقيا، ويمكن للتحيز الأخلاقي التسلل عن غير قصد إلى الخوارزميات المستخدمة في البرنامج، لذا يجب على مهندس البرمجيات معالجة المشاكل التحيزية التي تنشأ في البرنامج، فمثلا
واجهت شركة جوجل بعض الإنتقادات بسبب التحيز في تكنولوجيا قامت بتطويرها تساعد معالجة الصور وهذه التكنولوجيا
لم تقدر على تمثيل ألوان البشرة المختلفة، لذا من المهم التعرف على هذه المشاكل ومعالجة البيانات الموجودة على أساسها.
جمع البيانات الشخصية Personal Data Collection
جمع وإدارة البيانات الشخصية هو أمر أخلاقي معقد جدا، وعلى مهندسي البرمجيات التأكد أن البيانات التي يتم
تجميعها تندرج تحت بنود الخصوصية للمستخدمين، كما يجب على الشركات تشجيع ثقافة الانفتاح لدى الموظفين للتعبير
عن مخاوفهم تجاه البيانات الشخصية والتأكيد على الخصوصية.
ضعف الحماية الأمنية Weak Security Protection
من الأخلاقيات في هندسة البرمجيات اتباع الطرق الآمنة، وعدم التضحية بالأمان مقابل التطوير والتسليم السريع
للمنتجات، كما يجب على مهندسي البرمجيات إعطاء الأولوية للأمان في المراحل الأولية لبناء المنتجات
(التصميم والتطوير) واستمرار هذه الأولوية حتى بعد إطلاق المنتج وتسليمه للعميل، ويؤدي إهمال الأمن في
المنتجات البرمجية إلى انتهاكات غير شرعية تضر الفرد والمؤسسات.
العلاقة السلبية بين الميزة والتأثير Negative Relationship between Feature and Impact
إضافة المميزات الكثيرة في المنتجات بدون التركيز على مدى أهميتها وتأثيرها الواضح على الأخلاقيات قد يؤدي إلى
عواقب وخيمة، وعلى شركات البرمجيات وضع أولوية واضحة لكلا من الأخلاقيات في هندسة البرمجيات والجودة، وذلك
على حساب تطوير الكثير من المميزات، وهذا يضمن وجود مستخدمين يهتمون بالمنتج ويستفيدون منه.
الأخلاقيات في هندسة البرمجيات
مهندسو البرمجيات لديهم دور هام في تشكيل وهيكلة العالم الرقمي، لأن عملهم يؤثر في طريقة عيشنا، وحياتنا
كلها، فالإلتزام بالقواعد الومدونات الأخلاقية المتفق عليها هو أمر ضروري لضمان استخدام هذه البرامج والمنتجات لصالح
الرأي العام وتلبية المعايير المهنية التي تساهم في تطوير منتجات عالية الجودة.
كذل، يجب أن تكون الأخلاقيات في هندسة البرمجيات هي أساس بناء أي مشروع برمجي، وعلى شركات البرمجيات
الإلتزام بهذه الأخلاقيات وتوضيحها للموظفين، ومساهمة تلك الشركات في معرفة تأثير المنتجات الخاصة بها على
المجتمع، حيث يؤدي ذلك إلى بناء نظام بيئي رقمي يفيد الجميع.
كما علينا أن نتذكر أن الهدف الأساسي لهندسة البرمجيات الأخلاقية هو نجاح الأفراد والشركات والمجتمع.