استنباط المتطلبات في تطوير البرمجيات Requirement Elicitation

اقرأ في هذا المقال


مناقشة المتطلبات هي واحدة من أهم مراحل تطوير البرمجيات، تعتمد الميزانية والوقت التقديري للمشروع بشكل كامل على مدى اكتمال ووضوح المتطلبات، يسرد تقرير “CHAOS” المتطلبات غير المكتملة باعتبارها أحد الأسباب الأكثر شيوعًا لفشل مشروع تكنولوجيا المعلومات. لذا في هذه المقالة، سنناقش متطلبات المشروع وأسباب استنباط المتطلبات والفوائد من ذلك.

ما هي متطلبات المشروع البرمجي؟

في تطوير البرمجيات، تصف المتطلبات الحل المطلوب تطويره بما في ذلك وظائفه وواجهاته وتصميمه وتجربة المستخدم، عادة ما يتم صياغتها من قبل العميل أو أصحاب المصلحة، وهم الأشخاص الذين يشاركون في المشروع أو يتأثرون به وبالتالي يهتمون بنجاحه. وهناك أربعة أنواع من المتطلبات:

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

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

لماذا يجب استنباط المتطلبات؟

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

استنباط المتطلبات هو عملية معقدة تتكون من جمع، البحث، تحديد، هيكلة، وتوضيح متطلبات المنتج. نتيجة للاستنباط، يُنشئ محلل الأعمال مجموعة من أهداف للمشروع، ويجب أن تكون هذه الأهداف مفهومة لكل عضو في الفريق وتمثل جميع مطالب واحتياجات العميل.

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

الفوائد الرئيسية من استنباط المتطلبات:

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

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

المصدر: https://www.apriorit.com/dev-blog/699-requirement-elicitationSoftware Engineering | Requirements ElicitationRequirements elicitation


شارك المقالة: