دليلك الشامل لتطوير البرمجيات الرشيقة
نشرت: 2022-09-29منهجية تطوير البرمجيات الرشيقة هي نهج مرن لعملية تطوير البرمجيات. تستخدم شركات تطوير البرمجيات الرشيقة طرقًا تفاعلية لتقديم منتجات البرامج على شكل أجزاء (إصدارات MVP المستمرة) ، بما في ذلك تعليقات أصحاب المصلحة.
إنها منهجية مرنة تساعد الفرق التقنية على تقديم خدمات تطوير برامج عالية الجودة بشكل أسرع وبأقل قدر من التعقيدات.
كانت فلسفة تطوير البرمجيات الرشيقة الأولى شائعة بين الفرق الصغيرة وذاتية التحكم. في نهاية المطاف ، استحوذت شركة Agile لتطوير البرمجيات على صناعة تطوير البرمجيات نظرًا لسهولتها وإنتاجيتها وفعاليتها.
في Agile ، يسلم فريق تطوير البرمجيات المشروع من خلال التكرارات. على عكس منهجية Waterfall ، التي تتبع مسارًا محددًا وهناك حد أدنى من الانحرافات عنها ، تتميز Agile بسرعتها وقدرتها على التكيف. أعضاء الفريق وأصحاب المصلحة أحرار في إجراء التغييرات أثناء التكرارات.
في اقتصاد اليوم سريع النمو والتنافس ، تعد التكرارات المرنة والقابلة للتعديل مثالية.
هذه المقالة هي نسخة مضغوطة من دليل CodeRiders لتطوير البرامج الرشيقة. في CodeRiders ، قمنا بإنشاء دليل عملي كامل لتطوير البرمجيات Agile. في النهاية ، ستجد أيضًا أفضل 6 أسئلة تعرضًا لطرحها على شركات تطوير البرمجيات Agile. ستحدد الإجابات ما إذا كان بائع البرامج المستقبلي مناسبًا لمشروعك. بمجرد توفر الدليل ، سنقوم بإدخال الرابط القابل للتنزيل أدناه.
استمر في قراءة هذه المقالة إذا كنت بحاجة إلى مقدمة سريعة.
مبادئ تطوير البرمجيات الرشيقة وأنماطها وممارساتها
4 قيم رشيقة
في عام 2001 ، اجتمعت مجموعة من مديري البرامج وأصحاب المصلحة للتفكير في طرق لتحسين SDLC. في هذا التجمع ، أنتجوا 4 قيم و 12 مبدأ من Agile.
فيما يلي قيم 4 Agile الشهيرة على الإطلاق:
1. الأفراد والتفاعلات على العمليات والأدوات:
تسلط هذه القيمة الضوء على العلاقة بين أعضاء الفريق على العمليات أو الأدوات التي يستخدمها بائع البرنامج وأصحاب المصلحة. على سبيل المثال ، لدينا مطورو برمجيات في الفريق ، ويحتاجون إلى التفاعل أو مشاركة المعلومات لإكمال وتقديم حل برمجي معين. في Agile ، لا نهتم بالتقنيات أو الأدوات أو الأساليب التي يستخدمها مطورو البرامج من أجل تفاعل ناجح. ما يهمنا هو الطريقة البسيطة لتوصيل المعلومات من أحد أعضاء الفريق إلى الآخر.
كما لاحظت بالفعل ، تفضل قيم Agile ميزة واحدة على أخرى. قد تذكرنا هذه في بعض الأحيان بمقارنة Agile مقابل Waterfall.
2. برمجيات العمل على التوثيق الشامل:
في دورات حياة التعهيد المتسلسل للبرامج مثل Waterfall ، نمر بالكثير من الوثائق قبل بدء شراكة الاستعانة بمصادر خارجية للبرنامج. تتضمن بعض هذه المستندات SRS أو مستند متطلبات المستخدم ، ومخططات التسلسل ، ومخططات UML ، وما إلى ذلك. في Agile ، أهم شيء هو برنامج العمل بدلاً من التوثيق الشامل.
على سبيل المثال ، في Agile ، لا تحتاج إلى توثيق جميع متطلبات وظائف تسجيل الدخول قبل بدء عملية التطوير الفعلية. ستركز شركات تطوير البرمجيات الرشيقة على وجود وظيفة تسجيل دخول عاملة وخالية من الأخطاء داخل البرامج المخصصة. بالطبع ، هذا لا يعني أنه لن يكون لدينا أي نوع من الوثائق. فكرة هذا النهج هي إعطاء الأولوية للوظيفة الفعلية بدلاً من التوثيق.
لمساعدة عملائنا على مراجعة مثال لوثيقة SOW ، في CodeRiders ، قمنا بإعداد دليل بسيط لكتابة مستند SOW صريح مع عينة حقيقية. يمكنك تنزيل دليلك لكتابة مستند SOW بعينة حقيقية الآن.
3. تعاون العملاء بشأن التفاوض على العقد:
في نموذج المشاركة في تطوير البرمجيات بسعر ثابت (عمليات تطوير البرامج المتسلسلة) ، يوقع الطرفان عقدًا مع وثائق تقنية واضحة قبل بدء شراكة الاستعانة بمصادر خارجية للبرنامج. هذا يعني أنه إذا لم يتمكن صاحب المصلحة من إجراء تغييرات بعد بدء عملية الاستعانة بمصادر خارجية للبرامج. في Agile ، يمكن للعميل الاقتراب من منتصف المشروع وطلب بعض التعديلات. ستقبل شركة تطوير البرمجيات Agile الطلب وتؤسس نوعًا من التعاون مع أصحاب المصلحة. هذا لا يعني أن فريق تطوير البرمجيات سيبني كل شيء مرة أخرى من الصفر ، لكنهم سيتعاونون مع أصحاب المصلحة لبناء منتج بأعلى جودة ممكنة تتوافق مع متطلبات العملاء.
4. الاستجابة للتغيير باتباع الخطة:
في أي مشروع تعهيد برمجيات ، لدينا خطة ، وهو أمر مهم لأنه حجر الزاوية في المشروع. في نماذج تطوير البرامج المتسلسلة ، مثل Waterfall ، يتم توجيه مطوري البرامج وأعضاء فريق التكنولوجيا الآخرين من قبل فريق الإدارة "للالتزام بالخطة" ولكن في Agile ، يكون العكس. تعد الخطة حاسمة لتكوين رؤية للبرنامج المخصص في المستقبل. ومع ذلك ، إذا تغيرت الظروف أثناء SDLC وكان تغيير الخطة أكثر فائدة ، فإن فرق Agile تستجيب للتغيير.
على سبيل المثال ، يختار فريق الإدارة إحدى الأدوات الشائعة المستخدمة في تطوير البرمجيات Agile ، على سبيل المثال. Jira و Trello و Asana ، لكن بعد فترة ، أدركوا أن الأداة ليست فعالة كما اعتقدوا. نظرًا لأن منهجية تطوير البرامج الرشيقة تقدر SDLC الشفاف وجودة البرامج والتواصل المرن ، فلن يتردد الفريق في تغيير الأداة غير الفعالة.
باختصار ، يجادل بيان Agile أنه إذا كان هناك تناقض بين الخطة والتغيير ، فإن فرق Agile تستجيب للتغيير.
الفرق الرئيسي بين Agile و Waterfall أو أي نماذج تطوير متسلسلة
دورة حياة تطوير البرمجيات: Waterfall vs Agile
في مشاريع الشلال لدينا:
- المتطلبات الثابتة
- وثائق فنية واضحة المعالم
- الوقت والموارد المقدر
في مشاريع Agile ، نقلب القيم.
ليس لدينا متطلبات ثابتة ، بدلاً من ذلك ، لدينا موارد ثابتة ووقت.
تخطيط المشاريع في شركات تطوير البرمجيات Agile
- رؤية المنتج: يحدد الفريق بوضوح هدف برامجهم المخصصة. ما المشكلة التي يحلها هذا البرنامج؟ كيف تختلف عن الحلول البرمجية الأخرى المماثلة؟ يتم إنشاء رؤية المنتج من قبل مالك المنتج ويجب مراجعتها مرة واحدة على الأقل في السنة إذا تحدثنا عن المؤسسات الكبيرة والمستقرة.
- خارطة طريق المنتج: تعد خارطة طريق المنتج ، مثل رؤية المنتج ، نوعًا من التخطيط عالي المستوى. إنها مراجعة عالية المستوى لمتطلبات المنتج التي تخلق رؤية المنتج. يجب تحديث خارطة طريق المنتج ومراجعتها مرتين في السنة على الأقل.
- تخطيط الإصدار: يتم تضمين تخطيط الإصدار أيضًا في تخطيط المنتج عالي المستوى ولكنه أكثر تحديدًا من رؤية المنتج وخريطة طريق المنتج. يقوم مالك المنتج بتخطيط الإصدار من خلال ذكر تسلسل الإصدار ونوع زيادات المنتج (الإصدارات) التي يجب طرحها في السوق. يجب أن يتم التخطيط للإصدار كل ثلاثة أشهر على الأقل.
- تخطيط Sprint: في Scrum ، يعد تخطيط Sprint نشاطًا تعاونيًا بين أعضاء فريق Scrum ، بما في ذلك مالك المنتج. يقوم فريق Scrum بإنشاء أهداف التكرار ، والمهام ، والمخرجات ويكرر العملية كل 1 إلى 4 أسابيع.
- Daily Scrum: في فرق Agile ، يعقد أعضاء الفريق اجتماعات الوقوف اليومية لمناقشة المهام الحالية التي ستساعد في الوصول إلى هدف التكرار.
في نهاية كل تكرار أو سباق ، يكون لمشاريع Agile شكلين من التخطيط:
- مراجعة Sprint: تتضمن مراجعة Sprint عرضًا توضيحيًا للمنتج الذي تم إنشاؤه ويتم إجراؤه بواسطة مالك المنتج وفريق تطوير البرامج في نهاية كل سباق.
- Sprint بأثر رجعي: يتم تنظيم اجتماع Sprint بأثر رجعي لقياس تقدم الفريق. خلال استعادات العدو ، يناقش أعضاء فريق Agile العمليات والبيئات ويضعون خططًا لتحسين العملية في السباق التالي.
ملاحظة: لا تقوم جميع فرق Agile بتنفيذ جميع خطوات تخطيط المشروع هذه لأنها تعتمد بشكل كبير على السمات المميزة لمشروع تطوير برمجيات معين. تشمل التخطيطات الأكثر شيوعًا تخطيط العدو ، والاستعراضات السابقة ، ومراجعة العدو ، و Scrum اليومي. لا تمتلك الشركات الناشئة أو الفرق الصغيرة أيضًا رؤية للمنتج أو خارطة طريق ، ومع ذلك ، يُنصح بالحصول عليها مسبقًا.
كيف يتم إعداد وثائق المتطلبات الفنية في منهجية تطوير البرمجيات الرشيقة؟
تتم كتابة متطلبات المستخدم في Agile في شكل يسمى "قصة المستخدم".
تتم كتابة قصص المستخدم لالتقاط المتطلبات من وجهة نظر مطوري البرامج والمختبرين (متخصصي ضمان الجودة) وممثلي الأعمال. يجب أن تتناول قصص المستخدم الخصائص الوظيفية وغير الوظيفية.
منهجيات رشيقة
هناك 3 منهجيات تطوير برمجيات Agile الأكثر استخدامًا وشعبية. هؤلاء هم:
سكرم
ما هي منهجية Agile Scrum؟ النجاح في تطوير برمجيات Agile باستخدام Scrum.
Scrum هو إطار عمل رشيق لإدارة المشاريع يساعد الفرق على العمل معًا بشكل منتج. يصف Scrum مجموعة من الاجتماعات والأدوات والأدوار التي تعمل معًا لمساعدة الفرق على هيكلة وإدارة عملهم. في منهجية Scrum Agile ، الأداة الأكثر استخدامًا هي JIRA Atlassian.
ما هي أداة Jira Scrum؟ جيرا لشركات تطوير البرمجيات الرشيقة.
برنامج Jira هو جزء من عائلة من المنتجات التي صممتها شركة Atlassian لمساعدة الفرق من مختلف الأحجام والأنواع لإدارة وتنظيم عملهم. تم إنشاء Jira كأداة لتتبع الأخطاء ولكن تم توسيعها في النهاية لتصبح أداة قوية لإدارة العمل لأغراض مختلفة في SDLC ، من المتطلبات وإدارة حالة الاختبار إلى تطوير البرمجيات الرشيقة.
كانبان
ما هي منهجية أجايل كانبان؟ النجاح في تطوير برمجيات Agile باستخدام Kanban.
كانبان هو منهج إداري يُستخدم أحيانًا في مشاريع Agile. الهدف العام من Kanban هو تصور وتحسين سير العمل ضمن سلسلة القيمة المضافة.
كانبان ليس نهجًا رشيقًا تقليديًا مثل Scrum. بدلاً من ذلك ، يتم استخدامه في إدارة العمل والمهام بشكل عام. في منهجية كانبان ، الأداة الأكثر شيوعًا هي Trello.
ما هي أداة Trello Kanban؟ Trello لشركات تطوير البرمجيات Agile
Trello هو منتج من Atlassian مثل Jira. وبالتالي ، إذا قمت بالتسجيل بالفعل في Jira ، فيمكنك استخدام نفس بيانات الاعتماد للتسجيل في Trello. على عكس Jira ، الذي يعتمد على Scrum ، يعتمد Trello على Kanban. يمكن اعتباره لوحة كانبان. يتكون Trello من لوحات منفصلة. يوفر Trello قوالب لإدارة المشاريع Agile وإدارة المنتجات وإدارة الفريق. تستخدم فرق تطوير البرمجيات الرشيقة أي قالب Agile متاح للعمل مع مبادئ Agile وإدارة مشاريع تطوير البرمجيات عن طريق التكرارات / السباقات السريعة.
البرمجة المتطرفة (XP)
XP هي منهجية Agile التي كانت شائعة بين فرق تطوير البرمجيات منذ التسعينيات. يركز XP ليس فقط على إدارة المشروع (مثل Scrum) ولكن أيضًا على بناء الكود. إذا كان Scrum يركز على إدارة العمل ، ويحدد أدوارًا معينة في المشروع ، ويقسم المشروع إلى تكرارات ، يركز XP على تطوير البرمجيات واختبارها أيضًا (وليس إدارة الاستعانة بمصادر خارجية لتطوير البرمجيات).
فيما يلي أهم التعريفات في XP:
الدورة الفصلية: مرة كل ثلاثة أشهر ، ينظم فريق XP اجتماعات للقيام بالتخطيط والتفكير.
الدورة الأسبوعية: ممارسة الدورة الأسبوعية هي تكرار لمدة أسبوع واحد يختار فيه الفريق القصص ويبني برنامج عمل يتم "إنجازه" في نهاية الأسبوع.
نادرًا ما يتم استخدام الدورات الفصلية والأسبوعية في مشاريع Agile الآن. تتبع معظم فرق Agile الآن Scrum لإدارة المشروع: الإصدار - تراكم المنتج - التخطيط السريع - تراكم السباق.
سلاك: في أي وقت ينشئ فيه الفريق خطة ، يضيف الفريق فترة سماح من خلال تضمين عدد صغير من العناصر الاختيارية أو الثانوية.
وخلاصة القول ، فإن Agile Manifesto هو نموذج المشاركة في تطوير البرمجيات واسع الانتشار في الوقت الحاضر. يتم استخدامه أثناء عمليات الاستعانة بمصادر خارجية لتطوير البرامج وكذلك أثناء عمليات تطوير البرامج الداخلية. يعتبر Agile Manifesto مثاليًا لدورة حياة تطوير برامج مرنة حيث يُفضل التغيير على خطة ثابتة ، ويكون الأفراد والتفاعلات أكثر أهمية من العمليات والأدوات ، والعمل البرنامج المخصص هو الهدف بدلاً من توثيق تطوير البرامج الشامل.