المسئولية والمحاسبة Responsibility and Accountability

27

عز الدين محمد عثمان الأمين

المسئولية Responsibility:

لغة هي: الأعمال التي يكون الإنسان مطالباً بها. أما اصطلاحاً فهي المقدرة على أن يلزم الإنسان نفسه بفعل محدد، والقدرة على أن يفي بعد ذلك بالتزامه بجهوده الخاصة. ومن أمثلتها المسئولية الأخلاقية Moral Responsibility والمسئولية القانونية Legal Liability (وفي المحاسبة كلمتا أصول Assets  وخصوم Liabilities).

المحاسبة Accountability:

أما المحاسبة أو العرضة للمسائلة فتعني المحاسبة أمام الرؤساء وأمام أصحاب العمل والزملاء، الخ أي أنها تعني إمكانية المساءلة.

من المسئول عن الفعل؟

قد تتعلق المسئوليات بالأشخاص وقد تتعلق بالمؤسسات:

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

مشكلة تعدد الأيدي:

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

وللتقليل من الأخطاء وحرصاً على السلامة يراعى الآتي:

  1. إجراء تحليل علمي Formal لوحدات النظام كل على حدة ثم للنظام مكتملاً.
  2. ضبط الجودة والتدقيق والمراجعة من جهة محايدة.
  3. بناء احتياطي وزيادات داخل النظام Build-in Redundancy.
  4. التأكد من أن فترة الاختبار أخذت مداها الكامل وأن الاختبار تم بطريقة مهنية.

وكما هو معلوم فإن الجهة المصنعة هي التي تقع عليها المسئولية القانونية وهي التي تدفع التعويضات للمتضررين. وبما أنه يصعب ضمان البرمجيات فإن شركات البرمجيات تتحلل من المسئولية القانونية فتضع ضمن العقد – أو في أي جهة أخرى – عبارات تخرجها من المسئولية Disclaimer وأحياناً تضع عبارة “The Software Sold as is” أي أنه يباع بحالته الراهنة (دون أي ضمان).

البرمجيات المؤثرة على السلامة:

هنالك أمثلة كثيرة لبرمجيات تتطلب درجة عالية من التأمين والسلامة ومن أمثلتها:

  1. برمجيات الطيران، وتنظيم حركة الطيران.
  2. برمجيات المجالات الطبية كالأشعة والمعدات الطبية.
  3. ثم بدرجة أقل البرمجيات المستخدمة في تصميم المنشآت والمباني.

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

تقدير المخاطر في عملية تطوير البرمجيات:

لا بد من النظر في المخاطر المحتملة في كل جزئية من النظم البرمجية. وليت دورة حياة النظام تشمل (بالإضافة إلى التحليل والتصميم والاختبار، الخ) تقدير المخاطر. فيتم النظر في المخاطر المحتملة من وحدات البرمجيات ومن النظم المكتملة. ولا تقتصر المخاطر على السلامة فقط. وإنما يجب النظر في  المخاطر الأخرى كالأخلاقية والسياسية والاجتماعية إن وُجدت.