المرونة في إدارة المشاريع البرمجية Agile Developement

agile2

المرونة Agile هي مفهوم حديث في إدارة المشاريع التقنية، تعتمد على مجموعة من القيم والمبادئ التي يؤمن بها الفريق التقني ويقوم على أساسها باتخاذ القرارات عن كيفية إنجاز المهام البرمجية.

المرونة Agile لاتقوم باتخاذ القرارات عنك بل تعطيك الأساس الذي يستطيع الفريق استخدامه لاتخاذ القرارات.

القيم التي يستند إليها مفهوم المرونة Agile:

صدر عام 2001 بيان لـ 17 تقني مستقل مخضرم أجمعو فيه على أربعة قيم أساسية لمفهوم المرونة Agile:

الأفراد وتعاملهم فيما بينهم أكثر قيمة من عمليات التنفيذ والأدوات.
البرمجيات الصالحة للاستعمال أكثر قيمة من التوثيق الشامل.

التعاون ومشاركة العميل أكثر قيمة من التفاوض حول العقد.

الاستجابة للتغييرات
 أكثر قيمة من الالتزام بمخطط عمل محدد.

ويعني ذلك أنه على الرغم من كون العناصر على الجانب الأيسر ذات قيمة، فإننا نعطي قيمة أكبر للعناصر على الجانب الأيمن.

 مبادئ المرونة Agile:

انطلاقاً من القيم الأربعة السابقة، تم وضع 12 مبدأ أساسي وهي مبادئ عامة لاتقول لك ماذا يجب أن تفعل بل تعطيك الإمكانية لاتخاذ قرار جيد:

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

وكما استعرضنا إلى الآن فإن مفهوم الرشاقة يعتمد على مجموعة من القيم والمبادئ التي تعطي فريق العمل قاعدة مشتركة لصناعة قرارات عن أفضل طريقة لتنفيذ العمل البرمجي.

مثال عن تطبيق مفهوم المرونة Agile:

مطور طلب منه تنفيذ ميزة جديدة لمشروع تقني ما، بعد البدء بالتنفيذ وجد المطور أنه لتنفيذ هذه الميزة لابد من إنشاء قاعدة بيانات جديدة:

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

رأيي الشخصي:

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

خطوتك التالية لتطبيق مفهوم المرونة Agile في عملك البرمجي:

الخطوة الأولى بعد فهم المبادئ والقيم، واتخاذ القرار باتباعها هي البدء في تعلم منهجية إدارة تعتمد على مفهوم المرونة ، وهنالك العديد منها في الواقع، ولكل منهجية مجموعة من الأدوات المساعدة، أحد أشهر المنهجيات وأكثرها استخداماً بين العاملين في المجال التقني: Scrum Framework 

Scrum Board
Scrum Board

المصادر:

  1. www.agilealliance.org
  2. www.agilemanifesto.org
  3. en.wikipedia.org

مدير تقني وشريك مؤسس لـ فسيلة تِك، مبرمج متعدد المهارات، مهتم في إنجاز أمور استثنائية في مجال التكنولوجيا وأعمل جاهداً لترك أثر إيجابي في الحياة