المنهجية الرشيقة Agile و السكرام Scrum في بناء البرمجيات وإدارة المشاريع
يتجه الكثيرين عند تعلم لغة برمجة ما إما من خلال الدراسة الذاتية أو من خلال الكلية في جامعة إلى تعلم تقنيات كتابة الأكواد البرمجية وتحسينها, أي “كيف تقوم بكتابة كود برمجي” , فيما يتم اهمال الجانب الأهم في صناعة البرمجيات وهو “كيف تقوم ببناء نظام برمجي متكامل” و كيف أقوم ب “إدارة فريق برمجي”.
في هذه المقالة سنقوم بإلقاء الضوء على أسلوب حديث وفعّال يتم اتباعه في بناء وإدارة المشاريع البرمجية والمعروف اليوم ب Scrum ولكن قبل الحديث عن ال Scrum لابدّ من التعريف بالمنهجية الرشيقة المشهورة Agile.
المنهجية الرشيقة Agile
المنهجية الرشيقة Agile هي أسلوب تكراري في إدارة المشاريع يقوم فريق من خلاله بتنفيذ مشروع ما من خلال تجزئة المشروع إلى عدة مراحل تدعى Sprints, تساعد هذه الطريقة بتقديم حلول للعملاء بشكل أسرع, بعبارة ابسط، بدلا من التخطيط لإطلاق نسخة كاملة شاملة تعمل بشكل مثالي وتشمل جميل المزايا التي طلبها العميل, يتم إطلاق الخدمة على دفعات، يتم في كل نسخة Release إضافة مزايا إلى الخدمة يحتاجها العميل بدءأ من الأكثر أهمية.
تساعد هذه المنهجية على منح العميل الوقت لتقديم ملاحظات وتغذية راجعة على كل نسخة لكي يستطيع الفريق العمل على هذه الملاحظات وضمان انه تم إرضاء العميل قبل المضي قدماً بإضافة مزايا أخرى.
Scrum سكرام
سكرام Scrum هي منصة عمل، وتعتبر واحدة من أشهر منصات العمل ضمن مبدأ المنهجيات الرشيقة التي تتبعها كبرى شركات صناعة البرمجيات في الآونة الأخيرة.
يتميز Scrum بثلاث ميزات تعتبر هوية له:
١- خفيف وبسيط وغير معقد
٢- من السهل فهمه
٣- من الصعب تطبيقه
كيف أستطيع تطبيق Scrum Agile في الشركة؟
تطبيق منهجية Scum يعني بناء فريق فعال وتزويده بعقلية تطوير معينة, يقسم الفريق في منهجية Scrum Agile
إلى ثلاثة أدوار أساسية:
- سكرام ماستر Scrum Master ومسؤوليته ضمان تطبيق منهجية scrum في المشروع والحفاظ على مبادئها ضمن الفريق. أهم مسؤوليات صاحب هذا المنصب هي
- إزالة العواقب من أمام الفريق
- تحقيق وضمان بيئة فعالة لعمل الفريق
- ضمان علاقة مرنة وفعالة بين مالك المنتج وبين الفريق من جهة, وبين الفريق ككل وجميع المعنين خارج الفريق.
- الحفاظ على الفريق من التشتت والمقاطعات التي قد تسببها ظروف العمل في الشركة.
- مالك المنتج Product Owner أفضل تشبيه لمالك المنتج بأنه “صوت الزبون”, لديه الصلاحية في أخذ قرارات نهائية حول التطبيق, يقوم بالتواصل مع الفريق ونقل الرؤيا التي رسمتها الشركة حول المنتج البرمجي الذي يتم تطويره، كما يقوم بتحديد أولويات المهام او المزايا التي يتم إضافتها إلى التطبيق، أهم المسؤوليات على تقع على عاتق مالك المنتج ان يتواصل مع فريق التطوير بشكل يومي, ليجب عن أسئلة الفريق ويزوده بخطة تطوير المنتج.
- الفريق Team عدد أفراد الفريق يختلف حسب الشركة والمنتج, ولكن يُنصح لتقديم أداء فعال أن يحوي الفريق الواحد من خمس إلى سبعة أشخاص, يعتقد البعض ان فريق يحوي اقل من ٥ أشخاص هو صغير جدا، فريق يحوي أكثر من ١٠ أشخاص هو كبير جدا, بين يعتبر الفريق الذي يحوي ٦-٧ أشخاص فريق مثالي للعمل ضمن البيئة الرشيقة.
يعمل الفريق بشكل يومي على المهام الموكلة إليه، ويقوم بتقديم تقارير يومية عن سير العمل, لا يحوي في المنهجية الرشيقة مدير فريق Team Leader, جميع أعضاء الفريق يقع على عاتقهم مسؤولية حل المشكلة أو تطوير الميزة التي يعملون عليها, من هنا تأتي اهمية المنهج الرشيق حيث يتم السماح لكل فريق بالمشروع بالعمل على ميزات جديدة دون أن ينتظر الفريق ان يقوم فريق آخر بأنها ميزة معينة يحتاجها بعمله. بالتالي هي استثمار أمثل للفريق.
دورة التطوير Sprint في المنهجيات الرشيقة
في المنهجية الرشيقة سكرام، دورة التطوير يطلق عليها سباق السرعة Sprints, ربما من الاسم نستطيع أن نفهم كيف يجب على دورة التطبيق ان تكون.
يتألف سباق السرعة Sprints الواحد من المراحل الثلاثة التالية:
- التخطيط Planning يتم من خلاله تحديد مايمكن أنجازه في ال Sprint التالية وكيف سيتم العمل لإنجازها, تشمل مرحلة التخطيط كامل الفريق. يجب على مرحلة التخطيط أن تجيب عن ثلاثة أسئلة:
- ماذا What : يقوم من خلالها مدير المشروع بالتعريف بالأهداف الرئيسية من ال Sprint التالية, وماذا يتوقع إنجازه عند إنتهائها وماذا سيعملون أثناء ال Sprint لضمان إنجازها.
- كيف How: أي كيف سيتم تنفيذ ال Sprint ويقوم بهذه المهمة فرق التطوير حيث يقدّم خطة لذلك.
- من Who: لا يمكن إكمال ال Sprint بدون مدير المنتج او فريق التطوير, حيث يقوم مدير المنتج بتعريف الهدف والقيمة المضافة المرادة في ال Sprint ويقوم الفريق بفهم كيف سيقومون بتنفيذها وهل يمكن او لايمكن القيام بذلك، غياب أحدهما يجعل تخطيط الsprint شبه مستحيل.
- المدخلات Inputs: تحديد قائمة بالعنصر المطلوب لانجاز ال Sprint قد تكون هذه العناصر بشرية او برمجية او بيانات Data وقد تكون احد هذه العناصر هي عمل منجز من Sprint سابقة.
- المخرجات Output: وهو أهم مخرجات ال Sprint Planning, حيث يستطيع الفريق بنهاية اللقاء ان يحدد ماهو الهدف وكيف سيبدأون بالعمل للوصول إليه.
سنقوم في مقال أخر بالحديث عن نقاط عملية اكثر حول تطبيق منهجية السكرام في الشركة مثل المراجعة Retrospective وال Standup وعرض كيف يمكن استخدام بعض البرمجيات الخاصة بإدارة المشاريع البرمجية لتوثيق Sprints الخاصة بالمشروع.
كلمة أخيرة حول Scrum Agile
كما لاحظنا فنستطيع القول أن منهجية السكرام الرشيقة هي عقلية عمل ومنهج تطويري ضمن الشركة، وليس كما يعتقد البعض عبارة عن برنامج تقوم بتثبيته على أجهزة الموظفين لنقول أن الشركة بدأت منذ الآن باتباع هذا المنهج. أيضاً يحتاج الانتقال إلى هذه المنهجية إلى صبر وإعطاء الوقت لأعضاء الفريق حتى يتأقلموا مع المنهجية الجديدة.