أجايل في جميع مناهجها، شجّعت على التطوير البرمجي المستدام، مع الحفاظ على وتيرة ثابتة على الدوام.
وجعلت مسؤوليّة المحافظة عليها تقع على كاهل كلٍ من المطورين، والمهنيين، والرعاة على حدٍ سواء.
وقد وضّحت ذلك في المبدأ الثامن الذي جاء في نصّه:
“مناهج الأجايل تشجع التطوير البرمجي المستدام، وينبغي على الرعاة والمطورين والمستخدمين أن يكونوا قادرين على الحفاظ على وتيرة ثابتة على الدوام”.
“Agile processes promote sustainable development, The sponsors, developers, and users should be able to maintain a constant pace indefinitely”
في هذه السطور ستتعرف أكثر على ثامن مبدأ من مبادئ أجايل الاثني عشر، ضمن سلسلة مقالات دليل أجايل في المنتجات الرقمية.
أسس المبدأ الثامن | التطوير البرمجي المستدام
بالإضافة لمفهومه الرئيس المتضمن ضرورة أن يلتزم التطوير البرمجي المستدام، بالحفاظ على وتيرة ثابتة، يعتمد المبدأ الثامن من مبادئ أجايل، على أساسين يوضحان مفهومه هما:
1- التطوير المستدام
هو ترجمة مقاربة للمعنى العام لـمصطلح (sustainable development)، إذ لو تمعنا في مدلول المصطلح الدقيق لوجدناه يعني التطوير البرمجي المستقر.
2- تضامن جميع أفراد الفريق في الحفاظ على وتيرة ثابتة
وضعت أجايل مسؤوليّة الحفاظ على وتيرة ثابتة، لتحقيق التطوير البرمجي المستدام – على عاتق كل فرد من أفراد الفريق، لتفادي حدوث أية مفاجآت قد تواجههم أثناء تطوير المشروع.
والسبب في ذلك عدم ثبات المتطلبات، وتقلّبها باستمرار.
وتعدّ من أكثر التحدّيات التي قد تواجه فريق التطوير، وتعيّق تطوير المشروع. وهذا ما ذكرناه بشكل مفصل في مقالة المبدأ الثاني من أجايل المتعلق بتقبل التغيير في المتطلبات.
كيفية تحقيق المبدأ الثامن عمليّاً
تعترض عملية تطوير البرمجيات تحدّيات عدة تعرقل من إتمام المشروع بالشكل الصحيح.
فكيف يمكن الحفاظ على التطوير البرمجي المستدام بوتيرة ثابتة؟
ولماذا عهدت أجايل المسؤوليّة في هذا الأمر إلى كل من الرعاة والمطورين والمستخدمين معاً؟
وهذا يعني أنّ الإسقاطات العمليّة لتنفيذ هذا المبدأ موجودة على جميع المستويات، والتي هي:
1- تشكيل فريق Dedicated مخصّص للمشروع
يجري تشكيل فريق متفرغ Dedicated من قبل الإدارة.
حتّى لا يُلزَم الفريق الواحد بالعمل في أكثر من مشروع، فالعمل في مشروعين في الوقت نفسه، يقلل من وقت عمل أفراد الفريق في كلٍ من المشروعين.
فبدلاً من أن الفرد خصّصَ له 50% من وقته لكل مشروع، أصبح عمله الفعلي 40% أو أٌقلّ من ذلك.
والسبب الرئيس في ذلك هو وجود زمن مهدر أثناء التنقّل بين المشروعين (cost of switching)، ويعود ذلك إلى:
- تشتت الموظّف، يؤدي إلى نسيانه سياق المشروع، وبالتالي يحتاج إلى بذل جهد مضاعف للدخول في صلب موضوعه وارتباطه به مجدداً.
- تزايد الأخطاء المرتكبة بسبب التنقّل المستمر.
- حيرة الموظّف حول أيٍ من المهمات لها الأولوية.
كيف يتم تفادي مشكلة إدارة ضغط العمل في فريقين مختلفين؟
تُعَدّ هذه من إحدى المواضيع المعقّدة!
فعلى سبيل المثال، في حال حدوث ضغط في عدّة مشاريع قد يجبر المدير على الاستمرار بهذا العمل، رغم إدراكه لخطأ فعله.
ولا يمكن الهرب من حدوث هذه المشكلة إلا إذا تم اتباع ما يلي:
- تحاشي الوقوع في مشكلة ضغط العمل قدر الإمكان، فالوقاية خير من العلاج.
- ترتيب الأولويّات؛ فالتركيز على مشروع واحد مربح وناجح، أفضل من المغامرة في عشرة مشاريع متعثّرة.
- الحفاظ على وتيرة ثابتة من الإنتاج تتناسب مع قدرات الفريق؛ ستخلق نوعاً من الاستقرار والجودة.
2- الاستثمار بالـ TDD
إعطاء الأهميّة لكتابة المطوّر للكود الخاص بالاختبار للكود الفعلي الذي يجب تنفيذه.
وإذا ما استثمرنا أساليب الاختبار السليمة منذ البداية:
- سيكون بإمكان فريق التطوير تجنّب تعقيدات الكود التقنيّة
- صعوبة تعديله عندما يتم يتم تعديل المتطلبات
- تحقيق المحافظة على وتيرة أكثر ثباتاً
3- الاستثمار بأتمتة الاختبارات ((unit tests
حيث يجري تنفيذه بالشكل الأوتوماتيكي، كخطوة من خطوات البناء، أو الإرسال إلى السيرفر عن طريق DevOps ، وإحدى خطواته تستدعي الاختبارات المؤتمتة.
لتنفيذه على الكود الذي كُتب من قبل المطور وبالتالي نضمن سلامة وصحة الكود قبل إعتماده.
4- استخدام تقدير زمني رشيق
وهي من المهمات التي يعنى بها كل من الرعاة والمطورين، كأن يكون لديهم (investment) أو سكرم ماستر أو agile coach)) يُدرب الفريق على التقدير الرشيق؛ ليزيد من دقة تقديرهم الزمني، وبالتالي حدوث وتيرة عمل ثابتة.
4- مالك المنتج
يتعيّن عليه تحضير المتطلّبات بشكلٍ مسبق، قبل بدء دورة العمل، عن طريق القيام بجلسات تُناقش المتطلّبات بشكل دوري، بشرط أن تكون مجهزة قبل بدئها، كما في سكرم التي تبدأ باجتماع تخطيط، يتم من خلاله تحديد ما ينبغي إنجازه من المهمات وما هو هدف دورة العمل sprint goal.
كما ينبغي أن يجهزها لدورتين أو ثلاث دورات، فبالرغم من تغيّرها بشكل مستمّر إلا أنّه من الأفضل أن يتوفّر مخزون من المتطلّبات الجاهزة، ففي حال تغيير أو إلغاء أحد المتطلبات الجاري العمل عليها، يتم أخذ متطلبة غيرها فوراً من المتطلبات الجاهزة، وإضافتها إلى قائمة مهمات الفريق للعمل عليها.
في السطور السابقة تحدّثنا عن التطوير البرمجي المستدام استناداً إلى الحفاظ على وتيرة عمل ثابتة، وعن كيفيّة تحقيقه عمليّاً، وذلك هو مضمون المبدأ الثامن من مبادئ أجايل؛ نسعد كثيراً عندما تخبرنا عن رأيك في خانة التعليقات، أو مراسلتنا عن طريق البريد الإلكتروني، كي تطرح جميع استفساراتك عن هذا المبدأ أو أيّ من المبادئ الأخرى وموضوعات الإدارة الرشيقة عامة.