ما هي Agile؟

مكتمل

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

شعرت مارا بأنها اتخذت بضع خطوات صغيرة نحو إثارة اهتمام الفريق في DevOps، ولكن التقدم توقف. كان الفريق مشغولا جدا بإصلاح الأخطاء في الإصدار الأخير للتفكير في أي شيء آخر.

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

بعد أن قاموا بشحن الإصدار، جلست مارا وأندي لتناول القهوة. كلاهما كان متعبا. مارا كانت محبطة، لكن أندي كان لديه موقف مختلف.

أندي: لا أعرف لماذا تتفاجأ. إن إخراج البرامج من الباب أمر صعب. إنه دائما سجل. هل سبق لك أن فعلت ذلك بشكل مختلف؟

مارا: نعم، وأعتقد أنه يمكننا تسهيل الأمور هنا أيضًا. أعتقد حقا أن DevOps يمكنه مساعدتنا.

أندي: أتذكر أننا قمنا بتمرين تعيين تدفق القيمة، ولكن الآن ماذا؟ يجب أن نبدأ في الإصدار الجديد. ظننت أننا انتهينا من DevOps.

مارا: هناك الكثير الذي يمكننا القيام به. أعتقد أننا يجب أن نتخذ الخطوة الأولى ونقوم ببعض التخطيط السريع. يمكننا استخدام Azure Boards لمساعدتنا.

أندي: ماذا تقصد ب Agile؟

مارا: Agile هو نهج لتطوير البرمجيات. وقد صيغ مصطلح "Agile" في عام 2001 في Agile Manifesto. وضع البيان بعض المبادئ التوجيهية لنهج أفضل لتطوير البرمجيات. يقول البيان:

نحن نقدر ما يلي:

  • الأفراد والتفاعلات على مستوى العمليات والأدوات.
  • تعمل البرامج على وثائق شاملة.
  • تعاون العملاء على التفاوض على العقود.
  • الاستجابة للتغيير من خلال اتباع خطة.

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

مارا: إنه ليس سحرا، ولكن يمكننا القيام بذلك قليلا، ويعطينا Azure DevOps الأدوات التي نحتاجها لتنفيذ ممارسات Agile. في الوقت الحالي، عندما نريد التخطيط، يمكننا استخدام لوحات Azure. أولا، هل يمكنك شرح عملية البناء لي ومساعدتي في تحديد المشاكل الكبيرة؟

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

خطوتها التالية هي إظهار اللوحة للفريق ومشاركتها.

التوصيات لاعتماد Agile

يستعد الفريق لاتخاذ خطواته الأولى نحو اعتماد Agile. فيما يلي بعض التوصيات العامة التي يمكن لأي فريق استخدامها لدمج Agile في مؤسستهم.

إنشاء بنية تنظيمية تدعم ممارسات Agile

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

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

إرشادات أعضاء الفريق حول تقنيات Agile وممارساتها

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

تمكين التعاون داخل الفريق والفريق

إذا كان التعاون هو مفتاح النجاح في Agile، فما هي بعض الطرق التي يمكنك من خلالها تشجيعه؟ فيما يلي بعض الأفكار.

التغيير الثقافي

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

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

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

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

لا يمكننا المبالغة في التأكيد على أهمية التواصل الجيد، حتى عندما تكون هناك خلافات. حل الصراع هو مهارة جيدة لأي فريق Agile.

فرق متعددة الوظائف

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

أدوات للتعاون

يمكن أن تساعد الأدوات الجيدة أعضاء فريق Agile على التعاون بشكل أكثر فعالية، سواء داخل الفريق أو مع الفرق الأخرى. فيما يلي بعض الاقتراحات لمساعدتك في البدء:

  • Microsoft Teams: Teams هو تطبيق يوفر مكان عمل للدردشة والاجتماعات والملاحظات وتخزين الملفات.
  • Skype: يعد Skype سهل الاستخدام وأداة جيدة للأغراض العامة. قام العديد من الأشخاص بتثبيته بالفعل.
  • Slack: يوفر Slack العديد من قنوات الاتصال المنفصلة، كل ذلك من واجهة واحدة. يمكنك تنظيم هذه القنوات بطرق عديدة، مثل المشروع أو الفريق أو الموضوع. يتم الاحتفاظ بالمحادثات ويمكن البحث فيها. من السهل إضافة أعضاء الفريق الداخليين والخارجيين. يتكامل Slack مباشرة مع العديد من أدوات الجهات الخارجية، مثل GitHub للتعليمات البرمجية المصدر.

وتشمل الأدوات الشائعة الأخرى Google Hangouts وAsana وTrello وGoToMeeting monday.com. حاول التعرف على الخيارات لمعرفة أي منها يناسب احتياجات فريقك وشركتك.