الفصل السادس

التصميم لتلبية احتياجات الإنسان

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

فريدريك بروكس (١٩٨٦)

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

كريستوفر ألكسندر (١٩٦٤)
كان جورج فورسايث من أوائل روَّاد الحوسبة الذين رأوا أن الحوسبة تتعامل بشكلٍ أساسي مع القضايا المتعلِّقة بالتصميم: تصميم أجهزة الكمبيوتر والنُّظم، وتصميم اللغات للمعالِجات والخوارزميات، وتصميم أساليب تمثيل المعلومات ومعالجتها.1 وكان مهندسو البرمجيات من أوائل مَن تعاملوا صراحةً مع التصميم كجزءٍ أساسي من ممارسة الحوسبة. وبالنسبة إلى مهندسي البرمجيات، فإن التصميم يعني تخطيط وإنشاء مُنتجات ونظم برمجية تُحقق المواصفات المُحدَّدة وتكون آمنة وموثوقًا بها. كذلك يعني التصميم إنشاءَ أدواتٍ لدعم إنشاء البرمجيات، بما في ذلك اللغات ذات الصِّلة وأدوات التحرير والأوامر الصوتية والواجهات الرسومية وممارسات إدارة المشاريع ونظم التحكُّم في الإصدارات وبيئات التطوير.2 وقد أدى الانتشار الأخير للتطبيقات المُفيدة من خلال «متاجر التطبيقات» التجارية إلى دخول الكثير من الأشخاص الذين لم يتلقَّوا تدريبًا رسميًّا في هندسة البرمجيات إلى مجال تصميم البرمجيات.
لا يقتصر التصميم فقط على إنشاء النظم. فهو مفهوم مألوف في العديد من المجالات، بما في ذلك الموضة والمنتجات والعمارة. إنه عملية إنشاء وتشكيل أدوات تُلبي احتياجات الإنسان. وفي مجال البرمجيات، على سبيل المِثال، يعني التصميم إنشاء برامج تقوم بالوظائف التي يريد المُستخدِمون القيام بها. ولا يكتفي مصممو البرمجيات بإنشاء البرمجيات التي تُلبي المواصفات الوظيفية. بل يدعمون عمدًا ممارسات مُستخدِمي البرامج وعوالمهم وسياقاتهم وهوياتهم. لا يُعزى النجاح الباهر لهاتف «الآي فون» إلى إمكانيات هذا الهاتف التقنية الكبيرة فحسب، ولكن أيضًا إلى أنه يساعد مُستخدِميه في تحديد هوياتهم وإظهار أنفسهم بالصورة الأنيقة المطلوبة. وهناك أيضًا إخفاقات مدوية تُعزَى إلى سوء التصميم الذي يُعزز الاستخدام غير الآمن للنُّظم، مثل شاشات لوحات الطائرات التي لم تَعرِض المعلومات الأكثر إلحاحًا في حالات الطوارئ.3

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

على الرغم من نجاحات هندسة البرمجيات، فإن إخفاقات مشاريع البرمجيات والحوادث الناجمة عنها في ازدياد. ويواصِل الأكاديميون نضالهم من أجل إيجاد مناهج دراسية لهندسة البرمجيات يُمكنها أن تُخرِّج مطوِّري برامج مُحترفين قادرين على قيادة المشاريع حتى اكتمالها دون فشل. يرى ديفيد بارناس، رائد البرمجيات الشهير، أن هذا السعي الأكاديمي محكوم عليه بالفشل في العديد من الأقسام؛ لأن معظم محاولات وضع المناهج الدراسية قامت بوضع «دليل معرفي لهندسة البرمجيات» وتدريسه بدلًا من قدرات مُصمِّمي البرامج المُحترِفين الأكْفاء.4 يتعلم طلاب الحوسبة قواعد هيكلية للبرمجيات ولكن ليس مهارات التصميم المطلوبة لتحقيق برامج جيدة. ويلخِّص جدول ٦-١ القدرات التي يعتقد بارناس أنها الأهم. كل هذه القدرات موجهة نحو مجتمعات المُستخدِمين ولا تقتصِر على الجوانب الشكلية لعملية تطوير البرمجيات. يُرشدنا التفكير الحوسبي للتصميم إلى طرقٍ لإنشاء نظم حوسبة تكون سلوكاتها مفيدة ونافعة في مجتمعات مُستخدِميها.

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

جدول ٦-١: قدرات مطوري البرمجيات
• تصميم واجهات تفاعُلية سهلة الاستخدام للمُستخدِمين.
• تصميم وصيانة برمجيات مُتعددة الإصدارات وقابلة لإعادة الاستخدام.
• ضمان استيفاء منتجات البرمجيات لمعايير الجودة والأمان.
• إنشاء النماذج واستخدامها في تطوير النظام.
• قياس أداء البرمجيات والتنبُّؤ به وتحليله وتقييمه.
• جدولة عمليات التطوير والصيانة.
• استخدام المقاييس في تطوير النظام.
• إدارة المشاريع المعقدة.

(١) ما المقصود بالتصميم؟

تحول العديد من مطوري البرامج إلى التصميم من أجل تفكيرٍ جديد يُساعدهم في مواجهة تحديات مجال البرمجيات. وقد ترك تاريخ التصميم الطويل في الحوسبة العديد من الأسئلة مفتوحةً أمام المُصمِّمين: ما الفرق بين هندسة البرمجيات والتصميم؟ لماذا استغرق الأمر ٥٠ عامًا حتى تُصبح التصريحات المُبكرة حول التصميم بهذه الأهمية؟ ما مدى أهمية التصميم بالنسبة إلى التفكير الحوسبي؟

تتَّخذ هندسة البرمجيات نهجًا نحو التصميم هو نهج شِبه شكلي لإنشاء مجموعةٍ من الوحدات النمطية والواجهات لتحقيق غرَض وظيفي مُعين. ويتحدَّد هذا الغرض في مجموعةٍ من المُتطلبات، كلٌّ منها عبارة عن جُملة برمجية مُحددة قابلة للاختبار. وتتبع عملية الهندسة التقليدية مسارًا خطيًّا يبدأ من تحديد المُتطلَّبات وصولًا إلى إنشاء نظامٍ عامل يُسلَّم إلى المستخدم:

  • المتطلبات

  • المواصفات الشكلية

  • إنشاء النظام

  • اختبار القبول

  • التسليم إلى العميل

يُمكن لمهندسي البرمجيات تنفيذ هذه العملية بمنأًى عن الأنظار، مُتجنِّبين أي تفاعُلٍ مع المستخدِمين بين مرحلتَي تحديد المُتطلَّبات والتسليم. تتوافَق العملية مع المفاهيم المُبكرة في الحوسبة التي تُفيد بأن البرامج هي عبارة عن تعليماتٍ برمجية قابلة للتنفيذ على الآلة للخوارزميات التي تُلبي مواصفات وظيفية مُعينة، وأن المُبرمِجين يحتاجون إلى وقتٍ هادئ لإنجاز الأمور على النحو الأمثل.

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

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

استجاب المهندسون إلى هذه المشكلات عن طريق محاولة تحسين عملية الإنشاء. فوضعوا أساليب مُتطورة للمقابلات الشخصية لاستخراج المُتطلبات من العملاء، ومِن ثَم تقليل خطر إهمال أحد المُتطلبات المُهمة. وشفَّروا «أنماط التصميم» التي اتبعها المُصمِّمون الناجحون، حتى يتمكَّن المُصمِّمون الأقل خبرةً من تجنُّب الأخطاء. وقدموا «أساليب مرنة» لإدارة المشاريع يشارك فيها العملاء بشكلٍ صريح في جميع مراحل المشروع الهندسي. غالبًا ما تتميز الإدارة المرنة بالعديد من النماذج المُتكرِّرة بسرعةٍ تحت مراجعة مُستمرة من قِبَل الفِرَق التي تضمُّ مُمثلي العملاء.

لم تُوقِف هذه التحسينات التي أُدخِلت في عملية الإنشاء موجةَ فشلِ النظم، بل أبطأتها. ومن ثَمَّ دعا بعض المُصمِّمين إلى إجراء تحوُّل جذري في التفكير. وقد وصف تيري وينوجراد، أحد روَّاد الذكاء الاصطناعي والتصميم، هذا التحوُّل على النحو التالي:5

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

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

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

تُعَد الألعاب عبر الإنترنت أمثلةً على العوالم الافتراضية. وفيها يهزم اللاعبون الوحوش، ويبحثون عن الكنوز، ويحصلون على مكافآت عند تحقيق المهام، ويتقدمون في المستوى والخبرة. ويقول العديد من اللاعبين إن عالم اللُّعبة يكون حقيقيًّا بقدْر العالم اليومي عندما يكونون داخله. تنشئ هذه الألعاب عالمًا من خلال وجود هدف محدد، وساحة لَعِب ومعَدَّات، وقواعد وقيم، وقواعد للسلوك المسموح به وغير المسموح به، واستراتيجيات للفوز أو التقدُّم في اللعبة. لكن فكرة إنشاء عالَمٍ افتراضي لا تقتصِر على ألعاب الترفيه. فشبكات التواصل الاجتماعي الحالية والخدمات مثل: «أوبر» و«إير بي إن بي» و«إيباي»، كلها تبدو وكأنها ألعاب مُتعددة اللاعبين، حيث تتطوَّر الاحتمالات المتاحة لك باعتبارك لاعبًا وتتحول وَفقًا لاختيارات الآخرين وأفعالهم. حتى برامج المُستخدِم الفردي مثل: جداول البيانات ومعالِجات النصوص وبرامج الرسم، كلها تنشئ عوالم خاصة بها حيث توجد ساحة لَعِب محددة بدقة ومجموعة من القواعد والاستراتيجيات الأساسية التي يتعين على الجميع اتباعها.

منذ عام ٢٠٠٥، عندما قدمت شركة «أَبِل» متجر التطبيقات الخاص بها وجعلت أجهزة «الآي فون» قابلةً للتخصيص إلى ما لا نهاية، حيث يمكن للمُستخدِمين تنزيل التطبيقات التي تُناسبهم، ازدهر تطوير برامج التطبيقات. تُقدم متاجر تطبيقات «أبل» و«أندرويد» عبر الإنترنت أكثر من ستة ملايين تطبيق. وأصبحت البرامج سلعًا تجارية تباع في السوق. والنجاح في هذه السوق يكون من نصيب التطبيقات التي يُقيِّمها العديد من العملاء بأنها تطبيقات «عالية الجودة».

(٢) جودة البرامج ورضا المُستخدِم

في السبعينيات من القرن العشرين، سعى مهندسو البرمجيات إلى جعل جودة البرامج قابلةً للقياس، بناءً على الفرضية القديمة المُتمثلة في أن القياس يساعدنا على تحقيق المزيد. وابتكروا نماذج لقياس جودة البرامج. وأصبحت نماذجهم في النهاية معيارًا لمنظمة المعايير الدولية (الأيزو)، ووحدة أساسية من وحدات التفكير الحوسبي في هندسة البرمجيات. وتُدرِج معايير الأيزو عشرين عاملًا قابلًا للقياس لتقييم الجودة العامة لأي نظامٍ برمجي:

  • الصحة

  • الموثوقية

  • الاكتمال

  • سهولة الاستخدام

  • الكفاءة

  • قابلية الصيانة

  • قابلية الاختبار

  • التوافقية

  • المرونة

  • قابلية إعادة الاستخدام

  • قابلية النقل

  • الوضوح

  • قابلية التعديل

  • التوثيق

  • التحايل على الأعطال

  • قابلية الفهم

  • الصلاحية

  • الفاعلية الوظيفية

  • الشمولية

  • التوفير والاقتصاد

كان المفترض أن تكون جميع هذه المقاييس خصائص للبرنامج قابلة للقياس بموضوعية. ومن الصعب جدًّا تصميم نظام برمجي يُحقق درجات عالية في جميع العوامل العشرين. يُلاحَظ أن اثنين من الأهداف الخمسة التقليدية — الأمن والسلامة — غير مُدرجَين في هذه القائمة؛ لأنه لم يعرف أحدٌ كيفية قياس البرامج من هذين الجانبَين. لم يقُل أحد إن الجودة بسيطة ومباشرة.

تُلقِي سوق التطبيقات الجديدة والمزدهرة الضوءَ على الجودة بوصفها تقييمًا للمُستخدِمين وليس بوصفها إحدى خصائص البرامج. فلا يُوجَد معيار ثابت للجودة؛ إذ إن ما يراه أحد المُستخدِمين ذا جودة عالية قد يراه الآخر غير ذلك. ويُولَى اهتمام أكبر للتصميم بالمعنى الذي حدَّده وينوجراد. فكيف يُقيِّم المُستخدِمون الجودة، ومن ثَمَّ التصميم الجيد؟ يقدم جدول ٦-٢ ستة مستويات مميزة للرضا في تجرِبة المستخدم.6

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

المستوى -١: برامج غير موثوق بها

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

جدول ٦-٢: مستويات جودة البرامج وتقييم رضا العملاء
مستوى الجودة مستوى مهارة التفكير الحوسبي
٤ برامج مُثيرة للإعجاب تصميم برامج تتوقَّع تطوُّر ممارسات العملاء ومخاوفهم بعد استخدام البرامج
٣ برامج لا تنجم عنها عواقب سلبية تصميم برامج تتجنَّب الأعطال المُحتمَلة لدى العملاء
٢ برامج تتلاءم مع بيئة العميل تصميم برامج تتوافَق مع ممارسات العملاء والمعايير الاجتماعية
١ برامج تفي بكلِّ الوعود الأساسية تصميم برامج لتلبية مُتطلَّبات جميع العملاء من خلال الاستخدام المنظَّم للتفكير الحوسبي في مجالَي البرمجة وهندسة البرمجيات
٠ برامج موثوق بها نسبيًّا، يتردَّد العملاء في استخدامها ويُبدون رضًا متحفِّظًا نحوَها تصميم برامج لا تهتمُّ بالعملاء، مع استخدام مهارات التفكير الحوسبي الأساسية فقط.
برامج غير موثوق بها تصميم برامج تستغلُّ العملاء، مع استخدامٍ محدود لمهارات التفكير الحوسبي

المستوى صفر: الرضا المُتحفِّظ

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

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

المستوى ١: برامج تفي بكل الوعود الأساسية

يقيِّم العميلُ المنتِجَ بأنه قد قدَّم بالضبط ما وعد به واتفق عليه. يعتمِد هذا المستوى من الاكتمال المبدئي على التفكير الحوسبي الأكثر تقدمًا. وتُلبي معايير الأيزو هذا المستوى جيدًا. وغالبًا ما يكون مُطوِّرو البرمجيات في هذا المستوى مُوجَّهين نحو المعايير وتهدف ممارساتهم إلى إنتاج منتجاتٍ مناسبة وموثوق بها.

المستوى ٢: برامج تتلاءم مع بيئة العميل

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

المستوى ٣: برامج لا تنجم عنها عواقب سلبية

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

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

المستوى ٤: برامج مُثيرة للإعجاب

يقدم البرنامج أعلى مستوًى من الجودة، ويتجاوز مجرد تلبية احتياجات العميل ويُحسِّن بشكلٍ كبير حياة المُستخدِم. ويعبر المُستخدِم عن إعجابه الشديد بالمنتَج وغالبًا ما يوصي به للآخرين. يُقدِّر العملاء أن المنتِج يفهم عالَم العملاء ويساهم في توفير الراحة والرفاهية لهم. ولا يمكن للتفكير الحوسبي في مجالَي البرمجة وهندسة البرمجيات الاقتراب من هذا؛ لأن إثارة إعجاب العميل لا يمكن أن تُعَد من الشروط المطلوبة لنجاح البرامج.

قليل جدًّا من النظم البرمجية قد أثارت إعجاب العملاء بحق. وتشمل بعض الأمثلة المُبكرة نظام التشغيل «يونكس»، الذي كان منظَّمًا وأتاح عمليات قوية باستخدام أوامر بسيطة؛ ونظام التشغيل «ماكنتوش» الذي أنشأته شركة «أبل»، الذي أتاح سطح مكتبٍ مُختلفًا تمامًا وسَهْل الاستخدام وذا عرض نقطي؛ ونظام التشغيل «في إيه إكس في إم إس» الذي أنشأته شركة «ديجيتال إكويبمنت كوربوريشن»، وكان مستقرًّا بشكلٍ مُذهل واحتفظ بالإصدارات السابقة من الملفات للتعافي السريع؛ وبرنامج «فيزيكالك»، الذي كان أول برنامج جداول إلكترونية يُتيح سهولة الإجراءات المُحاسبية ويجعلها متاحة للجميع؛ وبرنامج «لوتس ١-٢-٣»، الذي خَلَفَ «فيزيكالك»، وسمح بصِيَغ عشوائية في الخلايا وفتح نموذجًا برمجيًّا جديدًا؛ وبرنامج «وورد» الذي أنشأته شركة مايكروسوفت، والذي جعل التنسيق الاحترافي للمُستندات سهلًا، وحلَّ محل معظم مُعالِجات النصوص الأخرى التي كانت موجودةً في السوق؛ وبعض الهواتف الذكية، التي تُوفر بيئةً آمنة إلى حدٍّ ما لتحميل التطبيقات التي تخصُّ الجهاز حسب ذوق المستخدِم وهويته.

أثارت بعض تطبيقات الهواتف الذكية إعجابَ مُستخدميها وأسعدتهم أيما سعادة، على سبيل المثال: تُقدم العديد من شركات الطيران ودور النشر والمَجلات تطبيقات تُتيح إمكانية الوصول المباشر إلى محتواها عبر الهاتف المحمول. وتُتيح بعض التطبيقات للمُستخدِمين إمكانية الوصول إلى الشبكات حيث تُجمَع البيانات من جهاتٍ أخرى كثيرة لتمنح المُستخدِم شيئًا يوفِّر الكثير من الوقت والجهد. على سبيل المثال: أنشأت شركة أمازون خدمة قارئ «كيندل» التي تُمكِّن المُستخدِمين من شراء الكتب الإلكترونية من متجر أمازون والبدء في قراءتها على الفور من أي جهازٍ يحتوي على تطبيق «كيندل». وتستخدم خرائط جوجل و«أبل» معلومات الموقع من الهواتف الذكية للكشف عن الزحام المروري، وتدمجه في خرائط الشوارع، وتقترح طُرقًا بديلةً لتجنُّب المناطق المزدحمة. جمعت «بليزارد إنترتينمنت» ما يصل إلى ١٠ ملايين مشترك في لعبة «وورلد أُف ووركرافت» عبر الإنترنت بسبب ثرائها، وسهولة الدخول فيها، ورسوماتها التفصيلية. كذلك يسمح تطبيق «أوبر» للمُستخدِمين باستدعاء الرِّحلات التي يأتي سائقوها إلى موقعهم بالضبط في غضون دقائق. في كل حالةٍ من هذه الحالات، وجد العملاء أن بإمكانهم استخدامَ التطبيق في القيام بأشياء كانت مُستحيلة سابقًا، بما يتجاوز توقعاتهم.

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

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

لكن إعجاب العملاء لن يدوم إذا كان مَبنيًّا على البرنامج فحسب. فبعدَ التعوُّد على البيئة الجديدة، ستتسع آفاق العملاء ويطمحون إلى المزيد. ولذا، نجد أن نظم «يونكس» و«ماكنتوش» و«في إم إس» و«فيزيكالك» و«وورد» لم تعُد مُرضيةً للكثيرين اليوم. ويستثمر مُنتجو البرامج الآن جهدًا كبيرًا في معرفة عملائهم وتوقُّع ما سيجلب لهم السعادة ويُثير إعجابهم بعد ذلك.

(٣) التفكير الحوسبي الموجَّه نحو التصميم

يُركز التفكير الحوسبي المُوجَّه نحو هندسة البرمجيات على التنفيذ الصحيح للمُتطلبات الوظيفية المذكورة بوضوح في البرنامج. وتكون مقاييس نجاحِه خصائص يُمكن ملاحظتها في البرنامج أو في بيانات استخدامه.

أما التفكير الحوسبي المُوجَّه نحو التصميم، فهو يُركز أيضًا على إنشاء عوالم افتراضية يستطيع المُستخدِمون البقاء فيها وتحقيق هدفٍ مُعين مُهمٍّ لهم. وتكون مقاييس نجاحه هي تقييمات مستوى الرضا والجودة من قِبل المُستخدِمين.

يُعتبر التفكير الحوسبي الموجَّه نحو هندسة البرمجيات مفيدًا بشكل خاص للنظم الكبيرة التي يجب أن تعمل على نحوٍ موثوق به في البيئات التي تقتضي الحرص على السلامة. فمن الأهمية بمكانٍ أن تكون نظم مُراقبة الحركة الجوية ونظم التحكُّم في محطات الطاقة النووية وفي العربات الجوَّالة على سطح المريخ قد رُوعِيَت فيها الهندسة البرمجية السليمة. أما التفكير الحوسبي المُوجَّه نحو التصميم، فهو مُفيد للغاية في البرامج التي يجب أن تتلاءم مع مجتمعات العملاء، وتُسهِّل استخدامها، وتقدم قيمةً عظيمة. والتفكير الحوسبي المُوجَّه نحو التصميم لا يستغني عن التفكير الحوسبي الموجَّه نحو هندسة البرمجيات؛ فهو يستغلُّ أي فرصة لتضمين وظائف رائعة لم يطلُبها العملاء بعد.

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

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٥