حل المشكلة الأزلية: كيف يمكن للمبرمج كسب رضا العميل عن نتيجة المشروع النهائية؟

أنظمة Agile و Waterfall في إدارة المشاريع البرمجية
3

مساهمة من قِبَل: رباب الفراصي – اليمن

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

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

المرحلة الأولى

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

المراحل التالية

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

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

السيناريو المحتمل بعد لقاء الزبون

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

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

اتبع منهجية Agile

بسبب كل تلك المشاكل التي تسببها عملية تطوير البرمجيات بالأسلوب التقليدي Waterfall ظهر نموذج Agile يشمل مجموعة من المبادئ والأساليب لتطوير البرمجيات

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

كيف سيتم العمل وفقًا لأجايل

ضع قائمة مهام

بعد الجلوس مع العملاء (وجهًا لوجه) وفهم المتطلبات بشكل كامل ستقوم بإعداد قائمة من الميزات المطلوب تطبيقها على البرمجية، وهذا ما يسمى في Agile بـ User Stories، وستعتبر كقوائم to-do list للمشروع.

إدارة المشاريع البرمجية وفقًا لنظام أجايل

تقدير الفترة الزمنية

باستخدام تقنيات Agile ستقدر الفترة الزمنية اللازمة للانتهاء من كل User story، والتي قمت بتحديدها سابقًا.

تحديد الجدول الزمني في إدارة المشاريع البرمجية

حدد الأولويات

ولأنّ المهام في أكثر الأوقات يستغرق تنفيذها وقتًا أكبر مما حددته مسبقًا، فسيكون من الجيد أن تتيح للعميل اختيار ما يحب أن تنجزه أولًا من مهام وتأجيل الأقل أهمية للأخير.

تحديد الأولويات في إدارة المشاريع البرمجية

ابدأ التنفيذ

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

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

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

3

شاركنا رأيك حول "حل المشكلة الأزلية: كيف يمكن للمبرمج كسب رضا العميل عن نتيجة المشروع النهائية؟"

أضف تعليقًا