طريقة تطوير البرامج باستخدام البرمجة الرشيقة: الـ Agile, Extreme Programming

منذ بدايتي مع البرمجة انتهجت اسلوب الـ Extreme programming والمصنف ضمن طريقة البرمجة الرشيقة Agile Software Development، لكن لم أعرف هذا المُسمى إلا مؤخراً.

وهي طريقة سريعة لتطوير البرامج، وليست كطريقة الـ Water fall التقليدية والمرتكزة على التحليل الكامل للنظام قبل بداية تطويره. أما طريقة الـ Extreme Programming فتكون بداية مرحلة الكود مبكرة جداً، حيث يتم تقسيم تطوير النظام إلى عدة مراحل، وتكون المرحلة الأولى بسيطة وفيها الأشياء الأساسية، وتكون هذه المرحلة متضمنة الميزات الأساسية، وأي ميزة إضافية تتم إضافتها لاحقاً عند الطلب.

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

يتم تقسيم النشاطات في طريقة الـ Extreme programming إلى أربع نشاطات وهي:

  1. كتابة الكود: حيث أن هذه المدرسة تعتِبر أن أهم ناتج في عملية تطوير البرامج هو الكود
  2. الاختبار: وهو اختبار الوحدات Unit testing، وإختبار القبول Acceptance test
  3. الاستماع: يجب على المبرمجين الاستماع إلى الزبون لفهم متطلبات النظام وفهم ما يُعرف بالـ Business logic
  4. التصميم: وهو وضع هيكل للبرامج وقواعد البيانات وكافة الإجراءات

ميزات هذه المدرسة لتطوير البرامج هي:

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