طريقة تطوير البرامج باستخدام البرمجة الرشيقة: الـ 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. التصميم: وهو وضع هيكل للبرامج وقواعد البيانات وكافة الإجراءات

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

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

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

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

    >العقبات تظهر مبكراً
    صحيح تماما و اهم ميزة لها
    >إمكانية إنتاج برامج بصورة سريعة
    هنا لا اتفق، لانه يجب بناء البرنامج بطريقة دينامكية، أو يجب استخدام برامج Wizards جاهزة لعمل ذلك.

    من مساؤها هي يجب اقناع الزبون الحالم بالكم القليل المنتج في البداية، فهو يريده دفعة واحدة بكامل المزايا الخلابة.

  2. >إمكانية إنتاج برامج بصورة سريعة
    المقصود بالسرعة، مقارنةً مع الطريقة العادية Water fall، حيث يمكن إنتاج النسخة اﻷولى من البرنامج بأدنى ميزات في فترة وجيزة، وإرجاء اﻷشياء التي تأخذ وقت لمرحلة أُخرى

  3. بعض الإنتقادات موجودة في هذا الرابط:
    http://en.wikipedia.org/wiki/Extreme_programming#Criticism
    ومنها :
    – أن هذه الطريقة ربما تؤدي إلى إستمرارية التطور في مجال المشروع إذا كان المشروع غير محدد الأهداف من البداية
    – نقصان التوثيق وهيكل المشروع
    – تصلح فقط مع المطورين ذوو الخبرة
    – تحتاج لإجتماعات كثيرة
    – صعوبة تقدير تكلفة المشروع، لأنه في البداية لا يُعرف المجال الكامل للمشروع

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s