في علم هندسة الحاسب Software Engineering توجد مجموعة من المصطلحات تمثل معايير عامة لقياس جودة ونجاح البرنامج، وعلى كل مبرمج أخذ هذه المعايير بشكل جدي قدر المستطاع حتى لا تخفق مشاريعه مستقبلا. ابرز هذه المعايير: القوة/الشدة Robustness: وهي تمثل نجاح عمل البرنامج أطول فترة ممكنة دون حدوث انهيارات Fatal Errors تسبب في إيقاف مفاجئ للبرنامج. أحد أبرز الأسباب التي تسبب الأخطاء هي لحظة الحصول على مدخلات من المستخدمين User Inputs، فعشرات البرامج ظهرت انهياراتها بسبب خطأ في عملية الإدخال. كما ان توقع تغيير في ظروف بيئة عمل البرنامج (كعدم التحقق من اسماء الملفات، عدم وجود مكونات Components معينة، ...) أمر ضروري لقوة برنامجك. الأمان Security: من أهم المعايير وهو يمثل قدرة البرنامج على حماية بياناته ومدى قدرته على الحفاظ عليها من أيدي العابثين. تطبيق عمليات التشفير Encryption والتصديق Authentication (باستخدام اسم مستخدم وكلمة مرور) وتوزيع الصلاحيات Authorizations أصبحت ابرز مطالب المستخدمين اليوم. الكفاءة Performance: مقياس لكفاءة التنفيذ يعتبر ابرز مقياس يؤدي إلى تغيير في مسالة اختيار القرار واعتماد برنامج معين، سرعة الانجاز تمثل الوحدة الرئيسية لقياس كفاءة البرنامج. قابلية التغطية والاحتواء Scalability: مقياس مهم يتجاهله الكثير من المبرمجين، حيث يمثل قدرة البرنامج على العمل عندما تكثر حجم البيانات والمستخدمين التي يتعامل معها البرنامج مع مرور الوقت. فعند تجربة البرنامج لحظة التطوير Development، يعتمد المبرمجون على بيانات صغيرة الحجم قد تغرر بهم بأن برامجهم ناجحة، وبعد اعتمادها في مرحلة الإنتاج Production وتكثر البيانات، يبدأ عجز البرنامج يشيخ شيئا فشيئا وتبدأ المشاكل بالظهور. قابلية الامتداد Extensibility: مقياس يمثل قدرة البرنامج على تطويره وتركيب إضافات عليه دون الحاجة إلى ترقيته إلى إصدارات جديدة، فمثلا تشتهر برامج Microsoft Office بأنها ذات نهاية مفتوحة ويمكن لأي شخص من تطوير تلك التطبيقات بإضافة برامج من نوع Add-Ins أو تطوير إمكانيات البرنامج بكتابة شيفرات Macros. لا تقتصر قابلية الامتداد على المستخدمين بل حتى على المبرمجين أنفسهم، فقد تبين قابلية الامتداد مدى قدرة شيفراتك المصدرية على تطويرها وإضافة أجزاء إضافية بها دون التأثير على الشيفرات الأساسية. الدقة Accuracy: لا شك ان أحد ابرز الأسباب التي حدت بالمستخدم الاعتماد على برامجك هو البحث عن الدقة، وحصول خطأ -ولو بنسبة قليلة- في أحد معادلات أو مقارنات أو بيانات برنامجك، ستفقد المصداقية والوثوق به. الصيانة Maintainability: معيار يمثل قدرة البرنامج على صيانة نفسه وتصحيح مشاكله دون الحاجة إلى اللجوء إلى الدعم من المنتج. استهلاك الموارد Resource Consumption: هنا مقياس لمدى حاجة البرنامج في استهلاك مصادر النظام (كالذاكرة، ومساحة على القرص، نوع المعالج، ... الخ) فبرنامج يتطلب مواصفات بسيطة للجهاز أفضل من برنامج جشع يحتاج إلى مواصفات عالية. المبرمج الناجح يضع أسوأ المواصفات دائما. سهولة الاستخدام Usability: المستخدمين ليسوا مثلك (مبرمجين) وخبرتهم في التعامل مع البرامج بسيطة جدا، ولا تتوقع ان يعتمد المستخدمون على الوثائق Documentations لتعلم برامجك، فليس لديهم الوقت لذلك. تحقيق سهولة الاستخدام يعتمد بالدرجة الأولى والأخيرة على واجهة الاستخدام User Interface، والواجهة الناجحة هي التي تمكن المستخدم التقليدي من فهم برنامجك دون الحاجة إلى تعليم. -- تركي