CodeGym /مدونة جافا /Random-AR /منهجيات تطوير البرمجيات
John Squirrels
مستوى
San Francisco

منهجيات تطوير البرمجيات

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

شلال

تعد منهجية الشلال واحدة من أقدم الأساليب وتتضمن تنفيذًا تسلسليًا صارمًا: يجب إكمال كل مرحلة قبل أن تبدأ المرحلة التالية. بمعنى آخر، الانتقال إلى المرحلة التالية يعني أن عمل المرحلة السابقة قد اكتمل بنسبة 100%. توضح الصورة كيفية عمله: أولاً، نقوم بتحليل المشكلة (توثيق المهام، ومناقشة التحديات)، ثم نقوم بالتصميم (تتشكل بنية المشروع في هذه المرحلة)، ثم نقوم بالبرمجة والاختبار. العودة إلى المراحل السابقة غير مسموح بها. يوصى بهذا النهج للمشاريع الصغيرة حيث تكون المتطلبات معروفة مسبقًا ومن غير المرجح أن تتغير. منهجيات تطوير البرمجيات - 2مزايا:
  • توثيق كامل ومتسق في كل مرحلة
  • سهولة الاستعمال
  • متطلبات مستقرة
  • يتم تحديد الميزانيات والمواعيد النهائية مسبقًا
سلبيات:
  • كمية كبيرة من الوثائق
  • ليست مرنة للغاية
  • لا يمكن للعميل رؤية الإصدار التجريبي من المنتج
  • لا يوجد خيار للتحرك إلى الوراء

سكروم

Scrum هي منهجية تطوير برمجيات تقسم العملية برمتها إلى تكرارات. وفي نهاية كل تفاعل، يكون الفريق جاهزًا لتقديم نسخة تجريبية من المنتج. توضح الصورة أن الفريق يمر بجميع مراحل التطوير بالتوازي، مما يجعل من الممكن الحصول على جزء نهائي من المشروع في نهاية كل تكرار. منهجيات تطوير البرمجيات - 3سأحاول أن أشرح بإيجاز جوهر المنهجية باستخدام كلمات بسيطة، ولكن هناك الكثير من المصطلحات. أعتقد أن أهم شيء هو فهم الجوهر. سوف تتذكر المصطلحات مع الخبرة. يتم تقسيم كل التطوير إلى سباقات السرعة (غالبًا 2-3 أسابيع). هناك تراكم (قائمة المهام) لفترة التطوير بأكملها ولكل سباق منفصل. كل مهمة لها نقطة قصتها الخاصة (تصنيف الصعوبة). لكل مشارك في العملية دور:
  • يتكون فريق سكروم من المحترفين (المطورين، المختبرين، المصممين) الذين يعملون في المشروع.
  • سيد سكروم هو الشخص الذي يتأكد من احترام مبادئ سكروم.
  • مالك المنتج هو العميل.
تعتمد هذه المنهجية على التواصل، لذلك هناك عدد كبير من اللقاءات:
  • الوقوف – هذا اجتماع قصير، يُعقد يوميًا، ويشارك فيه جميع أعضاء الفريق. يجيب كل مشارك على 3 أسئلة: ماذا فعلت؟ ماذا سأفعل؟ وما هي مشكلات الحظر الموجودة؟
  • اجتماع التخطيط – يعقد هذا الاجتماع في بداية السباق. يتم تحديد المهام التي يجب تنفيذها في السباق التالي في هذا الاجتماع.
  • بأثر رجعي - يعقد هذا الاجتماع في نهاية السباق والغرض منه هو تحديد ما تم إنجازه بشكل جيد وما يمكن تحسينه.
مزايا:
  • يمكن للعميل رؤية النتائج أثناء عملية التطوير
  • المراقبة اليومية لعملية التطوير
  • القدرة على إجراء التعديلات أثناء التطوير
  • تم إنشاء اتصالات مع جميع أعضاء الفريق
  • كمية صغيرة من الوثائق
سلبيات:
  • من الصعب تقييم العمالة والتكاليف الأخرى اللازمة للتنمية
  • من الصعب تحديد الاختناقات قبل بدء التطوير
  • ضرورة إشراك الجميع في عمل أعضاء الفريق الآخرين.

كانبان

كانبان هي طريقة تعتمد على تصور التقدم المحرز في استكمال مهام الفريق. الفكرة الرئيسية هي تقليل عدد المهام التي يتم تنفيذها حاليًا (في عمود "قيد التقدم"). في سكروم، يركز الفريق على إكمال سباقات السرعة بنجاح. في كانبان، المهمة تحتل مكانة بارزة. يعد هذا أمرًا جيدًا للمشاريع في مرحلة الصيانة، حيث تم بالفعل تنفيذ الوظيفة الأساسية، ولا يزال هناك الحد الأدنى من التحسينات وإصلاح الأخطاء. في كانبان، يتم تعيين المهام بشكل فردي. تمر المهمة بجميع المراحل على اللوحة، بشكل مستقل عن المهام الأخرى، وبمجرد اكتمالها يمكن عرضها للعميل. تتكون لوحة كانبان من أعمدة، يمثل كل منها عملية تطوير منفصلة. تحدد بعض الأعمدة (على سبيل المثال، "قيد التقدم") عدد المهام التي يمكنها الاحتفاظ بها. يساعد هذا في العثور بسرعة وسهولة على مجالات المشكلات في توزيع المهام. تظهر الصورة مثالا على مثل هذه اللوحة. يمكن أن يختلف عدد الأعمدة وأسمائها. سأقدم الأكثر شيوعا: منهجيات تطوير البرمجيات - 4
  • To Do - قائمة المهام التي يجب القيام بها
  • قيد التقدم - المهام التي يتم العمل عليها حاليًا
  • مراجعة الكود – المهام التي تم تنفيذها وتم إرسالها للمراجعة
  • في الاختبار - المهام جاهزة للاختبار
  • تم - الانتهاء من المهام
مزايا:
  • سهولة الاستعمال
  • الرؤية (يساعد في تحديد الاختناقات، ويبسط الفهم)
  • مشاركة عالية للفريق في العملية نفسها
  • تطوير مرن للغاية
سلبيات:
  • قائمة مهام غير مستقرة
  • من الصعب تطبيقه على المشاريع طويلة المدى
  • عدم وجود مواعيد نهائية صعبة

كلمة أخيرة حول منهجيات تطوير البرمجيات

يجب على الأشخاص الذين يشغلون مناصب إدارية أو يطمحون إلى شغلها أن يفهموا منهجيات تطوير البرمجيات بشكل كامل، ولكن يحتاج الجميع إلى فهم الأساسيات على الأقل. تعد المنهجيات جزءًا لا يتجزأ من عملية التطوير ولا تُستخدم فقط في مجال تكنولوجيا المعلومات. شكرا لأخذ الوقت الكافي لقراءة مقالتي. آمل أن يكون مفيدا لك. حاولت أن أصف النقاط الرئيسية فقط بشكل يسهل الوصول إليه وإيجازه قدر الإمكان. ونتيجة لذلك، هذه المقالة ليست شاملة. ويسعدني سماع رأيك حول هذا الموضوع والإجابة على أسئلتك. أتمنى لك كل خير!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION