دورة حياة تطوير النظم والمنهجيات

التطوير التكراري والتزايدي

18 دقيقة الدرس 3 من 10

التطوير التكراري والتزايدي

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

يهمّ المحلل أن يفهم الفرق بين المصطلحَين:

  • التكراري (Iterative) — تبني نسخة، تحصل على ملاحظات، ثم تراجعها وتحسّنها. تتحسن الميزة ذاتها من دورة إلى أخرى.
  • التزايدي (Incremental) — تُضيف ميزات جديدة في كل دورة؛ والميزات السابقة تُترك في الغالب دون تغيير. يكبر المنتج بالإضافة.

في الممارسة العملية، تجمع معظم المنهجيات الحديثة بين الاثنين: كل دورة (تكرار) تضيف قدرة جديدة (زيادة) وتُحسّن أيضاً ما بُني من قبل.

دورة حياة التطوير التكراري في الواقع

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

تقسّم خطة التطوير التكراري هذا العمل إلى دورات زمنية محدودة، كل منها أسبوعان إلى أربعة أسابيع:

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

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

Iterative development cycle: Plan, Analyse, Design, Build, Test, Review — repeating Each Iteration 1. Plan Scope this cycle 2. Analyse Refine requirements 3. Design Solution for cycle 4. Build Implement increment 5. Test Verify & validate 6. Review Stakeholder feedback
دورة التطوير التكراري بمراحلها الست: كل جولة تُسلّم زيادة قابلة للاستخدام وتُعيد ملاحظات أصحاب المصلحة إلى الخطة التالية.

بناء النماذج الأولية للأجزاء الأكثر خطورة أولاً

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

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

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

بناء النماذج الأولية بمنطق الخطر أولاً: في دورتك الأولى، اسأل: "ما الشيء الوحيد الذي يمكنه إفشال هذا المشروع؟" — ابنِ نموذجاً أولياً رفيعاً لذلك الشيء تحديداً. كل شيء آخر يمكن إضافته بأمان بعد تجاوز الخطر.

النماذج الأولية: المؤقتة مقابل التطورية

يواجه المحللون نوعَين من النماذج الأولية في العمل التكراري:

  • النموذج الأولي المؤقت (Throwaway) — يُبنى بسرعة للإجابة على سؤال أو إظهار مفهوم لأصحاب المصلحة. يُتخلص منه بعد أن يؤدي غرضه. الجودة لا تهم؛ السرعة والوضوح هما الأهم. نموذج ورقي لشاشة ما هو نموذج أولي مؤقت صالح تماماً.
  • النموذج الأولي التطوري (Evolutionary) — يصبح أول نسخة عاملة من النظام الحقيقي. كل دورة تُنقّحه وتوسّعه. هذا هو النموذج المستخدم في معظم فرق Agile اليوم.
نصيحة للمحلل: حين يجد أصحاب المصلحة صعوبة في التعبير عن متطلباتهم ("سأعرفه حين أراه")، نموذج أولي للواجهة يُعرض في نهاية الدورة الأولى يولّد ملاحظات أكثر قابلية للتنفيذ في ساعة واحدة مما تولّده أسابيع من ورش متطلبات.

كيف يؤثر حجم الزيادة على المحلل

على المحلل التفاوض على نطاق كل زيادة. زيادة كبيرة جداً تعود بالعمل إلى نموذج شلال مصغّر. وزيادة صغيرة جداً لا تُسلّم شيئاً مرئياً وتُحبط أصحاب المصلحة.

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

Incremental growth: each iteration adds a usable slice of the final system System Capability Iteration 1 Iteration 2 Iteration 3 Iteration 4+ Core Booking Core Booking Self-Registration + Email Core Booking Self-Registration + Email SMS + Referral + Reports Billing + Analytics
كل دورة تُضيف طبقة قدرة جديدة قابلة للاستخدام؛ وتُنقّح الطبقات السابقة أيضاً بناءً على ملاحظات المستخدمين الحقيقيين.

دور المحلل عبر الدورات

في مشروع يعمل بنموذج الشلال، ينتهي دور المحلل إلى حد بعيد بمجرد توقيع الموافقة على المواصفة. في التطوير التكراري، يظل المحلل نشطاً طوال المشروع:

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

المقايضات الرئيسية

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

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

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

ملخص

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