طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 301 · من الفكرة إلى المنتج (١): تطبيق ويب متكامل
الدرس 1 · الوحدة 1: الفكرة والتخطيط والتصميم

المحطّة ١: من الفكرة إلى المتطلّبات وقصص المستخدم

لا تفتح المحرّر بعد؛ حوّل الفكرة إلى متطلّباتٍ وقصص مستخدمٍ أوّلًا. ⏱ نحو 20 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تحوّل فكرةً غامضةً إلى متطلّباتٍ واضحةٍ قابلةٍ للقياس.
  • تكتب قصص المستخدم بصيغتها الصحيحة.
  • تفرّق بين المتطلّبات الوظيفيّة وغير الوظيفيّة.
  • تحدّد نطاقًا أدنى صالحًا وتحمي مشروعك من زحف النطاق.

١الفكرة قبل الكود

كل منتجٍ ناجحٍ بدأ فكرةً، لكنه لم ينجح إلّا حين تحوّلت الفكرة إلى متطلّباتٍ واضحة. الخطأ الشائع عند المبتدئ أن يفتح المحرّر ويكتب الكود مباشرةً — فيتوه، ويعيد، ويبني أشياءً لا يحتاجها أحد.

مشروعنا: «مفكّرة مهامّي» — تطبيق ويب يسجّل فيه المستخدم دخوله، فيضيف مهامّه، ويطوي ما أنجزه، ويحذف ما انتهى. بسيطٌ في ظاهره، لكنه يلمس كل طبقةٍ تعلّمتها: قاعدة بيانات، خلفية PHP، واجهة، جلسات، وتأمين.

المتطلّبات هي «عقدٌ» بينك وبين نفسك (وبين المطوّر وعميله في الواقع): تحدّد بدقّةٍ ما الذي سيُبنى قبل أن تكتب سطرًا — فتقيس عليها تقدّمك وتعرف متى «انتهى» المشروع.

٢قصّة المستخدم: صيغةٌ تُجبرك على التفكير بالمستخدم

تعلّمت في مقرّر 241 قصّة المستخدم (User Story). نكتب كل ميزةٍ بصيغةٍ واحدة تركّز على مَن يريدها وماذا يريد ولماذا:

قصص مشروعنا الأساسيّة (نطاق أدنى صالح — MVP):

  1. بصفتي زائرًا، أريد إنشاء حساب باسم مستخدمٍ وكلمة مرور، حتى أحفظ مهامّي الخاصّة.
  2. بصفتي مستخدمًا، أريد تسجيل الدخول والخروج، حتى لا يصل أحدٌ غيري إلى مهامّي.
  3. بصفتي مستخدمًا، أريد إضافة مهمّة بعنوان، حتى أتذكّرها.
  4. بصفتي مستخدمًا، أريد رؤية قائمة مهامّي أنا فقط، حتى أتابع ما عليّ.
  5. بصفتي مستخدمًا، أريد تعليم مهمّة كمنجَزة أو حذفها، حتى تبقى القائمة نظيفة.

٣متطلّبات وظيفيّة وغير وظيفيّة

نفرّق — كما في 241 — بين نوعين من المتطلّبات:

النوعيجيب عنأمثلة من مشروعنا
وظيفيّة (Functional)ماذا يفعل النظام؟تسجيل الدخول، إضافة مهمّة، عرض مهامّ المستخدم فقط، الحذف.
غير وظيفيّة (Non-functional)ما جودة أدائه؟كلمات المرور مُعمّاة، الصفحات تفتح بسرعة، الواجهة تعمل على الجوّال، لا ثغرات حقنٍ شائعة.

٤مخرَج هذه المحطّة: وثيقة متطلّبات صغيرة

ناتجك من هذه المحطّة ورقةٌ واحدةٌ (أو ملفّ) تحوي:

هذه الوثيقة ستقود كل المحطّات التالية: كل جدولٍ في القاعدة، وكل مسارٍ في الخلفية، وكل زرٍّ في الواجهة سيعود إلى قصّةٍ هنا.

توقّع وتحقّق

أيّ هذه قصّة مستخدمٍ صحيحة الصياغة؟

القصّة: دورٌ + فعلٌ + فائدة.

«كلمات المرور يجب أن تُحفظ مُعمّاة» هو متطلّب:

لا يصف فعلًا للمستخدم، بل جودةً للنظام.

ما أفضل علاجٍ لـ «زحف النطاق»؟

متى نعدّ المشروع «منتهيًا»؟

الخلاصة

تحدٍّ تصميمي: وثيقة متطلّبات «مفكّرة مهامّي»

تصميمي

اكتب وثيقة متطلّباتٍ من صفحةٍ واحدةٍ لمشروعك. اجعلها أساسًا تعود إليه في كل محطّةٍ لاحقة. يمكنك كتابتها في مستندٍ أو على ورقة.

المطلوب:
  • جملة المنتج وهدفه.
  • قصص المستخدم للنطاق الأدنى بصيغتها الصحيحة.
  • جدول المتطلّبات الوظيفيّة وغير الوظيفيّة.
  • قائمة «خارج النطاق — لاحقًا».
☑ راجع عملك قبل التسليم:
💡 تلميح 1
ابدأ من قصص المستخدم الخمس في الدرس وأعد صياغتها بأسلوبك.
💡 تلميح 2
لكل قصّةٍ وظيفيّة اسأل: ما الجودة التي يجب أن تتحقّق معها؟ تلك متطلّباتك غير الوظيفيّة.

🐞 لاحظت خطأً في هذا الدرس؟ أبلغني بالبريد

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس