جمع وتحليل المتطلبات
جمع وتحليل المتطلبات، في صناعة البرمجيات، نجاح المشروع يعتمد بشكل كبير على مرحلة جمع وتحليل المتطلبات
والتي يتجاهلها البعض، وتعتبر هذه المرحلة هي حجر الأساس لجميع مراحل تطوير البرمجيات مرورا بالتصميم وحتى
تسليم المنتج للعملاء، كما تحدد مسار المنتج المراد تطويره سواء بالنجاح أو الفشل، لذا دعونا نستكشف الكثير عن
هذه المرحلة المهمة في تطوير البرمجيات.
عمليات جمع وتحليل المتطلبات Requirements Gathering and Analysis Processes
عملية جمع وتحليل المتطلبات حاسمة في كثير من الأحيان عند بناء البرامج، وتتمحور هذه العملية حول جمع متطلبات العملاء والتي تصف المميزات والوظائف الأساسية للبرنامج أو النظام، وتوثيق هذه المتطلبات بشكل يمكن الرجوع إليه،
ويعتمد نجاح المشروع على دقة المعلومات التي تم جمعها، كما توجد بعض العمليات الداخلية لهذه المرحلة ومنها:
تحديد أصحاب المصلحة Stakeholder Identification
- الهدف: تحديد جميع أصحاب المصلحة في المشروع، وصاحب المصلحة هو كل شخص ساهم في نجاح
المشروع بأي شكل من الأشكال سواء بشكل مباشر أو غير مباشر، مثل: المطورين والمستثمرين.
- العملية: لتحديد أصحاب المصلحة الرئيسيين لابد من إجراء مقابلات العمل، والإستبيانات، وإقامة ورش عمل
لتحديد الأفراد المعنية في هذا المشروع.
تحليل أصحاب المصلحة Stakeholder Analysis
- الهدف: الهدف من عملية التحليل هذه هو فهم احتياجات ومطالب أصحاب المصلحة في المشروع، ومعرفة مستوى توقعاتهم عن المشروع، ومدى تأثيرهم.
- العملية: تحليل أولويات أصحاب المصلحة وترتيبها وتحليلها بناء على عوامل معينة، وهذا يساعد في ترتيب أولوية متطلبات المشروع.
تحديد المشكلة Problem Definition
- الهدف: تحديد المشكلة الأساسية لجمع وتحليل المتطلبات، والهدف من النظام المراد بنائه، وطريقة علاج المشكلة.
- العملية: إشراك أصحاب المصلحة في مناقشات العمل المفتوحة لوضع النقاط على الأحرف وتوضيح المشكلة والفرص.
استخراج المتطلبات Requirements Extraction
- الهدف: جمع وتحليل المتطلبات عن طريق التعامل مع أصحاب المصلحة الرئيسيون في المشروع.
- العملية: توظيف تقنيات جمع المتطلبات، مثل: المقابلات، والإستبيانات، والمحادثات المفتوحة، وجلسات
العصف الذهني لاستخراج المعلومات والمتطلبات للمشروع.
توثيق المتطلبات Requirements Documentation
- الهدف: توثيق وكتابة جميع المتطلبات التي تم جمعها بشكل منظم يمكن الرجوع إليه.
- العملية: إنشاء وثائق للمتطلبات، وأيضا إنشاء بعض البيانات المهمة كحالات الاستخدام، وقصص المستخدم، والنماذج الأولية، فهذا يساعد بشكل مباشر في مشاركة المتطلبات مع مختلف الفرق في المشروع.
التحقق والتأكيد Validation and Verification
- الهدف: التأكد أن المتطلبات التي تم جمعها دقيقة جدا، وكاملة، ومتناسقة.
- العملية: جمع التعليقات والإقتراحات، ومراجعة الإرشادات التفصيلية.
تقنيات جمع وتحليل المتطلبات Requirements Gathering and Analysis Techniques
جمع وتحليل المتطلبات بكفاءة ليس خيارا في تطوير البرمجيات، بل هو أساسي لنجاح المشروع، ويوجد العديد من التقنيات المستخدمة والتي تختلف من شركة لأخرى، ومن أهم هذه التقنيات:
المقابلات Interviews
إجراء مقابلات واحد إلى واحد أو مقابلات مع عدة أشخاص من أصحاب المصلحة، ومنهم: المستخدم النهائي للمنتج، والعملاء، وخبراء المجال (مجال المنتج المطلوب وليس مجال البرمجيات)، وتسمح هذه المقابلات بتعامل مباشر مع
هؤلاء الأشخاص لجمع معلومات تفصيلية حول احتياجاتهم، وتوقعاتهم حول المنتج، ومخاوفهم المستقبلية.
إستطلاعات الرأي Surveys
توزيع إستطلاعات الرأي على جمهور كبير لجمع المعلومات على نطاق أوسع من أصحاب المصلحة فقط، وهذا
الأسلوب من أهم أساليب جمع وتحليل المتطلبات، حيث يفيد في جمع التعليقات والإقتراحات من مجموعة أكبر من الناس، وتكون فعالة بشكل أكبر في المشاريع الكبيرة.
ورش العمل Workshops
تنظيم جلسات جماعية أو ورش عمل حيث يمكن لأصحاب المصلحة الإجتماع، ومناقشة المتطلبات التي تم جمعها وإعادة تعريف هذه المتطلبات وتحليلها بشكل دقيق، كما تشجع ورش العمل على التعاون بين الأفراد، وتوليد الأفكار الجديدة، وحل الخلافات في وجهات النظر المختلفة في بيئة عمل منظمة وصحية.
المراقبة Observation
مراقبة المستخدم النهائي أثناء عمله تعد من أهم التقنيات والأساليب المستخدمة، حيث تمكنك من فهم طريقة سريان العمل عند كل شخص منهم، وتحديد نقاط الضعف، والتفضيلات الشخصية، كما يساعد هذا الأسلوب في الكشف عن المتطلبات الضمنية، والتي قد لا يذكرها المستخدمون بشكل صريح.
النماذج الأولية Prototyping
من المفيد لأصحاب المصلحة إنشاء نماذج أولية ونماذج تجريبية للمنتج أو النظام قبل الدخول في عملية التصميم والتطوير، حيث يعد هذا النموذج بمثابة مثال واقعي عن المطلوب، كما تسمح هذه الطريقة بتخيل المنتج مبكرا، وتقديم الملاحظات التي تساعد في تحسين المتطلبات وإعادة توثيقها مما يتناسب مع ردود أفعال أصحاب المصلحة.
حالات الاستخدام Use Cases
تطوير الحالات المختلفة لاستخدام النظام أو المنتج من أفضل تنقيات جمع وتحليل المتطلبات، حيث يصف طريقة عمل
النظام في عدة حالات، كما يساعد في فهم آلية التفاعل بين النظام والمستخدم، مما يسهل كتابة وتوثيق المتطلبات الوظيفية.
تحليل التوثيقات Documentations Analysis
مراجعة وتحليل التوثيقات الحالية، مثل أدلة العمليات التجارية والتقارير والنماذج، لاستخراج المعلومات ذات الصلة بالمنتج المطلوب بناءه في الوقت الحالي، ويوفر هذا الأسلوب معلومات مهمة حول العمليات الحالية، وتساعد في تحديد أوجه التحسين المختلفة.
أدوات جمع وتحليل المتطلبات Requirements Gathering and Analysis Tools
تلعب هذه الأدوات دورا هاما في تسهيل عملية جمع وتحليل المتطلبات، وتوثيقها، وإدارة متطلبات المشروع، وتم تصميم
هذه الادوات لتحسين تجربة المستخدم عن طريقة التعاون، والتواصل الجيد بين الفرق المختلفة، وتنظيم المعلومات المعقدة.
أدوات التعاون Collaboration Tools
مثل أدوات إدارة المشاريع (Jira, Trello, Asana)، والتي تيسر العمل الجماعي والتواصل بين أصحاب المصلحة الرئيسيون
في المشروع، كما توفر هذه المنصات مميزات عديدة، مثل: التكليف بالمهام المطلوبة، ومتابعة التقدم، ومجتمعات النقاش المفتوحة، ويمكن للفرق المشاركة في المشروع جمع ومناقشة المتطلبات في الوقت نفسه.
أدوات إدارة الوثائق Document Management Tools
مثل (Confluence, SharePoint)، والتي تساعد في تخزين وثائق المشروع كلها في مكان واحد وإدارة التوثيق والمعايير بشكل منظم، كما توفر هذه الأدوات مكان واحد لتخزين المتطلبات، وسهولة الوصول، والتحكم في الإصدار، والتعاون الجيد، وتعتبر هذه الأدوات ذات قيمة لأنها تحافظ على سجل منظم لمتطلبات المشروع.
أدوات النماذج الأولية Prototyping Tools
مثل (Figma, Sketch, Balsamiq)، وتساعد هذه الأدوات في إنشاء نموذج مرئي تفاعلي، وتعد هذه الأدوات ذات قيمة
في عملية تحليل وجمع المتطلبات، حيث تساعد في ترجمة المتطلبات إلى شئ واقعي يمكن فهمه، وليس مجرد
نصوص مكتوبة فقط، وهذا يساعد أصحاب المصلحة في فهم المتطلبات الوظيفية بكل جيد.
أدوات الخرائط الذهنية Mind Mapping Tools
مثل (MindMeister, XMind)، وتساعد أدوات الخرائط الذهنية في عرض وتنظيم الأفكار المعقدة والعلاقات بين هذه
الأفكار، وأثناء عملية جمع المتطلبات يمكن لهذه الأدوات إنشاء رسومات مرئية للمتطلبات المترابطة والمتعلقة ببعضها، لمساعدة أصحاب المصلحة وفرق المشروع في فهم العلاقات بين المتطلبات الوظيفية والغير وظيفية.
أنظمة التحكم في الإصدار Version Control Systems
مثل (Git, SVN)، وتعتبر هذه الأنظمة أساسية في إدارة التغييرات والتعديلات في مشاريع البرمجيات، حيث تساعد
في مراجعة التغييرات وطريقة قبول التغييرات، كما يمكن التراجع عن بعض التغييرات مثل العودة إلى إصدارات قديمة، أو
دمج التغييرات الجديدة بكل سهولة، لذا هي مهمة جدا في المشاريع المتغيرة باستمرار بسبب تغيير المتطلبات بشكل متكرر، كما أن عملية جمع وتحليل المتطلبات من العمليات المرهقة في تطوير البرمجيات، ولكن مع تنفيذ هذه المرحلة بشكل صحيح، سوف يسهل عليك تنفيذ باقي المراحل لأنها هي أساس كل ما هو آت.