0555333017

اهلا بكم فى الموقع الرسمى للمهندس خالد ابو ابراهيم

 المدير التنفيذي للمضيف الاول للاتصالات وتقنية المعلومات (ون هوست) والخبير في مواقع التواصل الاجتماعي 

أجايل (Agile)

 

: كلمة أجايل (Agile) تعود لغوياً الى مفهوم الرشاقة والخفة في الحركة (Agility) وهي على العكس من حالة الخمول أو الكمون في الحركة العامة للأجسام أو الأنظمة.

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

“Agile” هي واحدة من أحدث وأفضل الطرق الناجعة لتطوير البرمجيات وإدارتها خلافا للطرق التقليدية والكلاسيكية في إدارة المشاريع أو ما يعرف بـ waterfall.

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

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

مثال عملي :

قد يصدف ان تفكر في تنظيم أعمال شؤون الموظفين لديك وتعلن عن حاجتك إلى نظام صغير يقوم بحساب الإجازات للموظفين, قمت بالإجتماع مع زملائك ومديرك في العمل لطرح هذه الفكرة الجميلة , ولكن مع تزايد التفكير والعصف الذهني في هذا البرنامج قد تتوسع الفكرة إلى ان تصل إلى حقيقة أنكم تحتاجون إلى برنامج شؤون موظفين متكامل.

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

إلى هنا والأمور قد تبدوا جميلة … إلا أنه ومع طول الإنتظار لإنتهاء عمليات التحليل والبرمجة والتنفيذ والتركيب ستفاجأ بأن المنتج النهائي لم يرضي طموحك ولم يصل إلى مستوى مصروفاتك الحقيقية على المشروع …… لماذا ؟

هنا يلزم التحقق من عدة أمور أهمها مايلي :

هل تم الاتفاق على الشكل النهائي للمشروع منذ البداية؟
هل تمت مشاركة فريق التطوير أثناء العمل الفعلي؟
كيف كان التواصل والتعاون أثناء العمل ؟
 إلخ من أسئلة واستفسارات
الأهم في هذه المشكلة أن فريق التطوير عمل بالمنهجية التقليدية Waterfall  وهي جيده جدا في أنواع محددة من المشاريع إلا أنها تعتبر فاشلة في أنواع أخرى , وخاصة الأنواع المتعلقة برضى المستخدم النهائي.

ماذا لوعدنا إلى نقطة الصفر ؟ ماذا كنا سنعمل ؟

بالتأكيد كان من الأفضل العمل بمنهجية الأجايل لكي يحدث السيناريو المتوقع التالي :

الإجتماعات الدورية بين كافة المشروع منذ البداية إلى النهاية — كافة الاطراف الإدارية والفنية
تجزئة المشروع الى مشاريع صغيرة مترابط ومرئية (Sprints & Releases) .
مشاركة المستخدم النهائي على تحديد التصميم الأفضل للواجهات وكذلك التفاعل مع معطيات الواجهات عبر تقنيات (UX user experience tools).
تسليم وتشغيل الأجزاء المنتهية منذ أول شهر , واستمرار التسليم حتى نهاية المشروع.
وفي نهاية المشروع سيكون الجميع على يقين بأن المشروع تم تسليمه برؤية العميل وليس برؤية الشركة المنفذه.
: سكرم (SCRUM)

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

سكرم ماستر Scrum Master
 وهو المسئول عن تذليل العقبات للفريق وتسهيل اللقاءات الحاسمة ، وتشمل مسئولياته التالي :
إزالة الحواجز بين فريق التطوير ومالك المنتج ، بحيث يستطيع الأخير متابعة عملية التطوير مباشرة . 
تعليم مالك المنتج كيفية زيادة عائد الاستثمار .  Return on Investment - ROI
تسهيل عملية الابداع ، وتمكين فريق التطوير من الحصول على الوسائل اللازمة . 
تحسين إنتاجية فريق التطوير في أي وسيلة ممكنة . 
متابعة آخر ما توصل اليه فريق التطوير ,جعل النتائج ظاهرة لجميع الأطراف . 
من  الناحية العملية السكرم ماستر يجتاج لفهم سكرم جيداً بما فيه الكفاية لتدريب  وارشاد الأدوار الاخرى ، وتثقيف ومساعدة اصحاب المصلحة الأخرين الذين يشاركون في هذه العملية ،يجب عليه الحفاظ على الوعي المستمر لحالة المشروع (درجة التقدم في المشروع) نسبة التقدم المتوقع والتحقيق فيها وتسهيل حل أي مشكلة تعوق التقدم . 
يجب عليه حماية اعضاء الفريق من اي اضطراب او مقاطعة ، وايضا لا يقوم السكرم ماستر بتكليف الفريق بمهامهم ، حيث تكون هذه مهمة اعضاء الفريق انفسهم . 
النهج العام له هو تشجيع وتسهيل قدرات صنع القرار وحل مشكلتهم ، بحيث يعمل على زيادة الكفاءة وتقليل الحاجة الى الاشراف ويصبح الفريق له القدرة على اتخاذ القرارات الهامة وبشكل روتيني . 
مالك المنتج  Product Owner
مالك المنتج هو مصدر متطلبات النظام ، بحيث يوفر مصدر واحد للفريق بشأن المتطلبات وترتيبها و أولويتها بحيث يكون الواجهة بين اعضاء الفريق والزبائن ويعد نقطة اتصال واحدة لجميع الاسئلة حول المنتج . 
يقوم مالك المنتج ايضا بتحديد الجدول الزمني لتسليم المنتج وايضا يحمل الكلمة النهائية حول كفاءة المنتج إذا تم مطابقته مع المعايير المتفق عليها مع الزبائن ام لا . 
فريق التطوير (Development Team)
فريق التطوير هو مجموعة من الأشخاص متعددي الوظائف الذين يقومون بتطوير المنتج واختباره ، وبما أن الفريق يقوم بإنتاج المنتج فانه لديه السلطة لاتخاذ القرارات حول كيفية اداء العمل . 
يقوم فريق التطوير بتفصيل العمل الى مهمات وتخصيص كل مهمة لعضو من اعضاء الفريق ، ويفضل أن يكون عدد أعضاء الفريق من 5-9 . 
حيث وجود اكثر من 9 سيؤدي الى صعوبة في التواصل ، واقل من 5 سيؤدي الى انخفاض في الانتاجية .
: سبرنت Sprintالسبرنت وهي تعني فترة زمنية شهرية وهي الوحدة الاساسية للتطوير في السكرم والافضل ان تكون مدة السبرنت هي اسبوعين . يتم تحديد اهداف كل سبرنت في اجتماع التخطيط . "تم انجازه" : يعني ان النظام متكامل ، تم اختباره بشكل كامل وتوثيقه للمستخدم النهائي وقابل للشحن والتسليم .
: الفرق بين Agile و Waterfall
الحديث حول فلسفة الأجايل قد يطول من حيث الفوائد المتوقعة أو حتى العقبات الممكن مواجهتها في رحلة التحول الكبيرة , ولكن قرار التحول للأجايل يعود بنا إلى عدد من المقارنات بين الوضع الحالي (النهج الشلالي التقليدي Waterfall Approach)  والوضع الجديد (منهج الأجايل Agile Approach) .

المنهج الشلالي يعتبر من الحلول الأكثر تنظيماً في بناء المشاريع التقنية حيث أنه نجح في كثير من المشاريع التقنية , وأيضا فشل في البعض , حيث يعتمد هذا النموذج على الفصل الكلي بين مراحل المشروع على اعتبار أن المرحلة الواحدة يتم العمل فيها مرة واحدة ومن ثم ننتقل للمرحلة التالية (Sequence).

ويتكون المنهج الشلالي من ست مراحل متتالية هلي كالتالي :

تحليل المتطلبات Requirement Analysis.
تصميم النظام System Design .
البرمجة والتنفيذ Implementation  .
التحقق والاختبار Testing .
التركيب والتسليم Deployment and Delivery .
الصيانة والمتابعة Maintenance.

إلا أنه ظهرت الكثير من الانتقادات على هذه المنهجية من حيث مرونتها وتقبلها للمشاكل الغير متوقعه, على سبيل المثال :

عندما يعمل الفريق على جمع المتطلبات وتحليلها , ثم ينتقل الى مرحلة تصميم النظام , هل يعني ذلك ان فريق المتطلبات يذهب إلى المنزل ليستريح اذا لم يكن هناك مشروع آخر ؟

وماذا سيحدث عندما يكون هناك متطلبات إضافية ظهرت مؤخراً؟ أو استذكر المستخدم النهائي أن هناك جزئية مهمة في إجراءات العمل لم يتم ادارجها (User Story )  أو كما تسمى بعد الترجمة اللفظية بـقصة المستخدم.

هل سنعيد التصميم مرة اخرى عند إضافة (قصة مستخدم User Story) جديدة .

الحقيقة المرّة أنهم يجب ان يتوقفوا للعودة وبالتالي يحدث انكماش في الخطة الزمنية (Schedule Shrinking) للمراحل التالية … فستجد المبرمجين يعملون تحت ضغط التأخر في تسليم المشروع بالرغم من أن التأخر حدث في مرحلة سابقة.

بينما في الاجايل Agile  هذا النوع من المشكلات تم احتوائه عن طريق التغيير الجذري لفلسفة العمل والتنظيم الداخلي لفريق العمل , حيث أصبح الجميع يعمل بنفس الوتيرة منذ بداية المشروع حتى نهايته عن طريق تقسيم المشروع إلى دورات تكرارية (iterations)  في كل دورة يوجد كافة المراحل الخاصة بمنهجية Waterfall  , وبذلك لا نفقد تنظيم العمل وايضا نسعى لإنجاح المشروع بشكل اكبر … حيث انه من المتوقع عند انتهاء آخر دورة تكرارية (iteration)  سيكون لدينا منتج ناضج .. مع ملاحظة ان المدة الزمنية لكل دورة يجب ان لا تتجاوز الشهر.
: التحول إلى أجايل Agile Transformation
يبقى الحديث عن الخطوات العملية للتحول الكبير الى النهج الجديد في التفكير والعمل في بيئة هندسة النظم (الأجيليتي Agility) .
التحول إلى منهجية أجايل لن يكون في مقالة صغيرة كهذه , ولكنه قد يمتد إلى حلقات طويله من النقاشات والتحديات على مستوى العمل الفعلي .

يذهب الكثير من الممارسين والمنفذين لسياسة التحول الحقيقي إلى منهجية الأجايل إلى أنه يوجد 6 مناطق معرفية يجب تغطيتها والعمل عليها قبل اعتماد أي إطار عمل فعلي لإحتواء الأجايل , هذه المناطق هي :

الرؤية : حيث لا بد أن يعي القائمين على المنظمة ضرورة التحول إلى أجايل وإلى أي مدى قد يلحق بالشركة الضرر عند استمرارهم على النهج التقليدي , وهل هم بحاجة إلى الإقتراب أكثر من العميل ؟ وهل تسليم المنتج النهائي متعلق بمستوى التوقعات للمستخدم النهائي….. إذاً لا بد من التحول قبل أن تخسر الشركة …. قد لا تكون الأجايل هي الحل السحري ولكنها أحد الحلول الجديدة التي يجب ان تدرس بعناية واهتمام.
هيكلة المنظمة : حيث لا بد من إجراء تغيير في الهيكل التنظيمي الداخلي للشركة يتيح لفريق العمل الإقتراب من بعض بشكل أكبر ويسمح بعبور الأعمال المتعلقة بالمشاريع بشكل أكثر سلاسة ومرونة سواء داخل الفريق أو عبر الأقسام الأخرى ( خارج إدارة تقنية المعلومات)  … إحدى المنظمات الحكومية التقليدية , وحتى تصل ملاحظات المستخدم النهائي على إحدى الشاشات , يستغرق العمل رحلة قرابة الأسبوعين من الإحالات والتواقيع والمعاملات وذلك كنتيجة طبيعة للهيكلة المعقدة في إدارة الأعمال داخل المنظمةالواحدة. كما أن التغيير قد يطال أيضا طريقة التمويل الخاصة بإدارة تقنية المعلومات حيث لا بد من إيجاد إجراءات جديدة تكفل السرعة والرشاقة التي تتطلبها منهجية الاجايل.
تطبيق مباديء أجايل : حيث ان تطبيق هذه المباديء يضمن ان أن تكون ضمن نطاق الأجايل عملياً كما تمت الإشارة إليها في موضوع مباديء الأجايل
الممارسة والتطبيق الفعلي : وهنا يلزم استخدام إحداى الأدوات والمنهجيات المشهورة في تطبيق الاجايل مثل
: SCRUM  – XP – Lean/Kanban
الإستثمار في التقنية لخدمة التقنية : وقت المبرمجين والمطورين في منهجية الاجايل يعتبر مهم للغاية , فمن غير الممكن ان يقضي الفريق جزء كبير من الوقت في بعض الأعمال التي يمكن التخلص منها عن طريق برمجيات جاهزة , مثلا :
برامج الإختبار الآلي للتطبيقات  Automated testing
برامج التنصيب الآلي Deployment automation
برامج التوافق والتكامل مع المبرمجين الآخرين في الفريق Continues Integration Software CI
الخ من البرمجيات الجاهزة والتي تحفظ وقت المطورين.
قيادة إدارية واعية : وهي الاساس في تطبيق كافة النقاط الخمس السابقة حيث أصبح من المهم البعد عن السلوك القيادي التقليدي والتي تقوم على إعطاء الاوامر
(command and control leadership) وانتهاج سلوك القيادة التفاعلية الوعية بأهمية المرحلة التحولية وتسعى لتطبيقها.
: لكم كل الود والاحترام واتمنى ان اكون استطعت ايصال المعلومه بشكل واضح