يعد قطاع تطوير البرمجيات اليوم من أكثر القطاعات تطورا وتعقيدا نظرا للعدد الكبير من المتغيرات التي تحيط بعملية التطوير، لذلك يسعى مهندسو البرمجيات بشكل مستمر إلى استحداث طرق وتقنيات تنظم وتسهل وتسرع هذه العملية، ولعل من أكثر الطرق الحديثة شهرة في تطوير البرمجيات وإدارة المشاريع البرمجية هي منهجية أجايل (Agile)التي تزودنا بمجموعة من القيم والمبادئ العامة لتطوير البرمجيات، والتي بُني على أساسها كثير من أطر العمل (Frameworks) في هذا المجال، أشهرها هو إطار عمل سكرم (Scrum).

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

أساسيات أجايل:

تتجه العديد من شركات البرمجيات الآن إلى بناء تطبيقاتها وفق منهجية آجايل (Agile)، لما تمتاز به هذه المنهجية من تكرارية ومرونة في تسليم المنتجات:

التكرارية: تعني أن العمل سيتم في دورات، ويتم تسليم نسخة جديدة من المنتج في نهاية كل دورة، وهكذا يتم بناء وتسليم المنتج بشكل تراكمي بدلاً من تسليم كل شيء مرة واحدة.

المرونة: تعني أن عملية التطوير تستطيع الاستجابة لتغير المتطلبات حتى في مراحل متقدمة من عملية التطوير، بدلا مما كان شائعا في المنهجيات القديمة (منهجية الشلال مثلا) التي تفترض الاتفاق على المتطلبات في مرحلة التصميم وعدم السماح بتغييرها في المراحل اللاحقة.

القيم الأساسية لمنهجية الأجايل:

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

المبادئ الاثنا عشر لمنهجية الأجايل:

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

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

ما هو سكرم؟

سكرم (Scrum) هو أشهر أطر العمل التي بنيت وفق قيم ومبادئ منهجية آجايل، والذي يلعب اليوم دورًا كبيرًا في تطوير البرمجيات بنجاح، وتعتمده كثير من شركات تطوير البرمجيات الرائدة في إدارة مشاريعها وبناء تطبيقاتها، لتقديم منتجات مبتكرة وذات قيمة عالية.

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

يمكننا أن نستنتج بسهولة أنه لا يمكن تطبيق سكرم بدون فريق عمل منظم ومتفاهم، فبدون فريق عمل جيد لا وجود لسكرم.

لمعرفة أهم خصائص سكرم، يمكننا النظر إلى هذه المقارنة البسيط بينه وبين الطريقة التقليدية لتطوير البرمجيات، وهي ما تعرف بطريقة الشلال (Waterfall Method).

 

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

 

في سكرم، تسمى الدورة المذكورة أعلاه (Sprint)، والتي قد تستغرق من 1 إلى 4 أسابيع، وذلك يعتمد على عدد أعضاء الفريق وطبيعة الأعمال التي سيتم إنجازها في الدورة الواحدة.

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

إن الركائز الصلبة التي يعتمد عليها سكرم في تطوير البرمجيات هي الشفافية والفحص والتكيف، وهذه العناصر مرتبطة لتعمل مع بعضها البعض بشكل متكامل.

  • الشفافية (Transparency): كل شيء في عملية تطوير المنتج يجب أن يكون واضحًا لكل أعضاء الفريق، وبمجرد حدوث أي مستجدات أو نقاشات بخصوص سير العمل يجب أن يتأكد مدير الفريق من أن جميع أعضاء الفريق يفهمونها بنفس الطريقة.
  • الفحص (Inspection): الفحص هو آلية التحقق من عدم وجود أي إهدار للوقت أو الموارد أثناء سير العمل، هذا الفحص يجب أن يتم بصورة دورية ودقيقة، وأن ترفع التقارير بشكل سريع عند ملاحظة أن مشاكل أو انحرافات.
  • التكيف (Adaptation): التكيف هو القدرة على الاستجابة للتغيرات في الوقت المناسب، سواء كانت هذه التغيرات في المتطلبات أو نتيجة تصحيح أي أخطاء أو هدر مكتشف، وذلك يتطلب مرونة وتفاهم بين أعضاء الفريق لضمان تحقيق التكيف بدون حدوث اضطرابات في سير العمل.

فريق سكرم (Scrum Team):

كما ذكرنا سابقًا، فإن الفريق المتعاون والتنظيم الجيد هو أساس تطبيق سكرم كإطار عمل لإنجاز الأعمال، وهو بطبيعته متعدد الوظائف، ويتكون من مجموعة من الأشخاص الذين يمتلكون جميع المهارات اللازمة لتنفيذ المشروع، وذلك يستلزم اشتراك ثلاث أنواع من الأشخاص في الفريق، هم:

  • مالك المنتج. (Product Owner).
  • المطورون. (Developers).
  • مشرف سكرم. (Scrum Master).

كل نوع من هؤلاء له دور خاص ومسؤوليات محددة في دورة حياة المنتج.

مالك المنتج (Product Owner):

مالك المنتج هو ذلك الشخص أو الجهة التي ستمتلك المنتج بعد إكمال عملية التطوير، ويكون دوره داخل الفريق هو تحديد ماهية (ما هو) المنتج بالتعاون مع باقي أعضاء الفريق، باستخدام الخطوات التالية:

  • تحديد هدف ومواصفات المنتج الذي سيخطط فريق العمل على إنجازه أثناء عملية التطوير.
  • تحديد الأولويات أثناء العمل وتخطيط المطلوب للدورة التالية مع الفريق.
  • تحديد جميع العناصر والمهام اللازمة التي يتطلبها المنتج (Product Backlog).
المطورون. (Developers):

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

  • إنشاء خطة لاختيار وتنفيذ المهام اللازمة لدورة التطوير (Sprint Backlog).
  • تكييف خطة عملهم اليومية لتتطابق مع هدف دورة التطوير الحالية.
  • امتلاك المعرفة والمهارات اللازمة لإنجاز العمل.
مشرف سكرم (Scrum Master):

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

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

دورة سكرم (Scrum Sprint Workflow):

في كل دورة من دورات تطوير المنتج، توجد خمسة أحداث مهمة، هي:

1. دورة التطوير (Sprint):

تعتبر دورات التطوير (Sprints) هي القلب النابض لإطار العمل سكرم، حيث تتحول عبرها الأفكار إلى قيمة ملموسة، وبها يتم انتاج المنتج بأهدافه المخطط لها من البداية، ويتم الاتفاق على طول كل دورة بين أعضاء الفريق، ولكنها عادة ما تستغرق من 1 إلى 4 أسابيع، في هذه الفترة تعقد اجتماعات يومية لأعضاء الفريق، وهذا هو الحدث الثاني في سكرم.

2. الاجتماع اليومي (The Daily Scrum):

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

3. التخطيط للدورة القادمة (Sprint Planning):

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

4. مراجعة الدورة المنتهية (Sprint Review):

بمجرد انتهاء دورة التطوير يجب مراجعة هذه الدورة، حيث يعقد اجتماع بين المطورين ومالك المنتج (PO) ليستمعوا إلى ملاحظاته بشأن ما تم إنجازه، هذا الاجتماع مكون من جزأين، العرض والمراجعة:

أثناء جلسة العرض (Demo Session)، يقوم المطورون بعرض الجزء المنجز من التطبيق.

أثناء جلسة المراجعة (Review Session)، يقوم مالك المنتج بالتحقق من المهام التي تم إنجازها، وتلك التي لم تنجز وسبب عدم الانجاز.

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

5. تحسين الدورات القادمة (Sprint Retrospective):

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

يوفر استخدام إطار عمل سكرم العديد من المزايا لمشاريع تطوير البرمجيات، منها:

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

سلبيات سكرم (Scrum Cons):

ككل شيء قد يشوب استخدامنا لسكرم عدد من السلبيات، منها:

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

متى يكون سكرم خيارًا جيدًا؟

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

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

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

 

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *