JavaRush /مدونة جافا /Random-AR /منهجيات تطوير البرمجيات
Миха Писаренко
مستوى
Киев

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

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

شلال

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

سكروم

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

كانبان

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

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

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