إدارة التغيير
إدارة التغيير في تطوير البرمجيات هي عملية تغير الحالة الحالية للبرنامج أو النظام إلى حالة أفضل، وتوفر هذه العملية
التحكم في المنتج، والتغيير فيه بعدة طرق، ودعم المشاكل والأخطاء التي تظهر بشكل متكرر، ومن أمثلة هذه التغييرات: التغيير في الكود (Code Changes)، والتغييرات العملية (Process Changes)، والتغييرات على مستوى التوثيق (Documentation Changes).
إدارة التغيير Change Management
جميع عمليات تطوير البرمجيات تتبع مراحل دورة حياة تطوير البرمجيات (Software Development Lifecycle)، حيث تتبع
كل مرحلة الأخرى إلى أن تصل إلى مرحلة تسليم المنتج النهائي، وعلى الرغم أن إدارة التغيير لها أهمية كبيرة في
عملية تطوير البرمجيات، إلا إنها ليست من ضمن تلك المراحل، كذلك يوجد عدة أدوات تستخدم في إدارة التغيير، والتي تستخدم في أغراض مختلفة، مثل: إقرار التغييرات، والتحكم بها، وعرضها بشكل مناسب، ودراسة تأثير التغيير، ومن
أمثلة هذه الأدوات: أدوات مخططات التدفق، وأدوات تخطيط المشاريع، وأدوات جمع البيانات، والعديد من الأدوات الأخرى
التي يمكن استخدامها.
عملية إدارة التغيير Change Management Process
إنشاء طلب للتغيير
نقطة الإنطلاق في إدارة التغيير، حيث يمكن تعريف وتحديد التغيير اللازم إجراءه في المنتج أو النظام، ومن أمثلة طلبات التغيير:
طلب ميزة جديدة (New Feature)، أو إصلاح خلل (Bug Fix)، أو أي تعديل آخر، يقوم الشخص بملئ نموذج يحتوي على جميع المعلومات والتفاصيل الخاصة بهذا التغيير وإرسالة إلى إدارة المراجعة في الشركة أو المتخصصين.
مراجعة وتقييم طلب التغيير
بمجرد تقديم الطلب إلى المتخصصين يدخل في عملية مراجعة كاملة، وتتضمن مرحلة المراجعة تقييم تأثير وفائدة
التغيير المطلوب، وعمل دراسة جدوى كاملة للطلب، ويقوم أصحاب المصلحة المعنيون بتحليل عوامل مهمة، مثل: التكلفة، والوقت، والموارد المطلوبة، والمخاطر المحتملة حال تنفيذ هذا التغيير.
التخطيط للتغيير
إذا وصلت إلى هذه المرحلة فلابد أنه تم قبول طلبك، في هذه المرحلة يتم وضع خطة لتنفيذ التغييرات المطلوبة، وتوضح
هذه الخطة كلام من: الخطوات، والموارد، والجدول الزمني اللازم للتنفيذ، كما تتضمن بعض المهام الأخرى، مثل: توزيع المهام، جدولة أوقات التوقف عن العمل، والتنسيق مع الفرق المختلفة.
اختبار التغييرات
قبل تنفيذ التغييرات المطلوبة في بيئة الإنتاج (Production Environment)، لابد من اختبارها بشكل دقيق للتأكد أن
التغييرات لا تسبب أي مشاكل للبرنامج، وتتضمن هذه المرحلة العديد من أنواع اختبارات البرمجيات مثل:
- اختبار الوحدات (Unit Testing)
- اختبار التكاملية (Integration Testing)،
- اختيار قبول المستخدم (User Acceptance Testing).
إنشاء إقتراح التغيير
عملية من عمليات إدارة التغيير ويتم تنفيذها بناء على نتائج الاختبار والتعديلات النهائية، حيث يتم إنشاء إقتراح رسمي يتضمن تفاصيل التغييرات المطلوبة، مثل: الغرض من التغيير، ونطاق التغيير، والمخاطر، والنتائج المتوقعة، ويستخدم هذا الملف كمرجع لأصحاب المصلحة المعنيين.
تنفيذ التغيير
في حالة الموافقة على إقتراح التغيير من قبل إدارة التغيير، يمكن تنفيذ التغيير بشكل فعلي، ويتضمن التنفيذ تغييرات
على مستوى البرنامج والنظام، وتختلف التعديلات من تغيير لآخر، ومن المهم في هذه المرحلة إتباع الخطة المحددة
مسبقا لتقليل المشاكل.
مراجعة أداء التغيير
بعد تنفيذ التغيير بشكل صحيح عند الدمج مع التطوير البرمجي، من المهم مراقبة أداء التغيير على البرنامج، للتأكد من
تحقيق الهدف المرجو منه، ولا يسبب أي مشاكل، وتتمحور هذه المرحلة حول جمع تعليقات المستخدمين حول التغيير، وتحليل مقاييس النظام، ومعالجة المشاكل التي تظهر بعد إضافة التغييرات الجديدة.
إغلاق العملية
بعد تنفيذ ومراجعة التغيير بنجاح، يمكن إغلاق عملية التغيير بشكل رسمي، عن طريق توثيق هذه العملية بشكل كامل، مثل: الدروس المستفادة، وتحديث توثيق البرنامج بالتغييرات الجديدة، وفرصة للإحتفال بهذا النجاح والاعتراف بجهود جميع المشاركين في هذا التغيير.
أهمية إدارة التغيير Importance of Change Management
- تحسين الأداء: إدارة التغيير تتأكد أن البرامج يتم تنفيذها بشكل صحيح، من خلال التخطيط الجيد، وتنفيذ
التغييرات بعد المراجعة، وهذا يسمح للشركات تقليل المشاكل والحفاظ على مستوى الأداء وتحسينه.
- زيادة الإرتباط والمشاركة: إشراك أصحاب المصلحة في إدارة التغيير يعز من الإحساس بالمشاركة، حيث يتم إشراك الموظفين في التغييرات وسماع آرائهم، وهذا يشعرهم بالتقدير الكافي وزيادة العمل والمساهمة في التغييرات القادمة.
- تحسين الإبداع: وجود إطار منظم لتنفيذ الأفكار والتغييرات الجديدة يعزز الإبداع لدى الموظف، من خلال التقييم المنهجي للتغيرات، والتكيف مع توجهات السوق والتقنيات الحديثة.
- استخدام التنقيات الحديثة: سرعة تغير التقنيات في العصر الحديث يساهم في إسراع الشركات نحو استخدام هذه التقنيات وإضافتها في منتجاتهم للمنافسة على البقاء في القمة، وتساهم إدارة التغيير في إضافة التقنيات بشكل صحيح، ومخطط له، والتنفيذ بدون مشاكل، وإدارة عملية الإنتقال بشكل سهل.
- تنفيذ المتطلبات الجديدة: مع تطور متطلبات العمل، لابد من تحديث البرامج لتلبية الاحتياجات، فتوفر هذه
العملية نهج منظم لتحديد المتطلبات الجديدة، وترتيب أولويتها، وتنفيذها.
- تقليل التكلفة: من أهم العمليات التي تساهم في تقليل التكاليف داخل صناعة البرمجيات، وتنفيذها بشكل صحيح يقلل التكاليف بشكل كبير.
مصدر التغيير Source of Change
توجد عدة أسباب للتغيير أثناء عملية التطوير ومن أهم هذه الأسباب:
إعادة تظيم العمل
في حالة حدوث تغييرات داخلية للشركة سواء كان في هيكل الشركة، أو الإدارة، أو الإتجاهات، فيتطلب ذلك تغييرات
في المنتجات والخدمات التي تقدمها، مثال: إذا تم دمج بعض الأقسام، فلابد من تغيير البرامج التي تنظم تلك الأقسام، وهذا قد يتطلب تغييرات جذرية مثل التغييرات على مستوى قاعدة البيانات، للتوافق مع التنظيم الجديد.
ظروف السوق الجديدة
يمكن لتوجهات السوق الجديدة أن كون سبب في دخول عملية إدارة التغيير، مثل: الإتجاهات الناشئة (Emerging Trends)، أو ضغط المنافس، أو تغييرات في تفضيلات العملاء، فتتطلب هذه المشاكل تغيير في المنتجات والخدمات، مثال: في حالة دخول منافس جديد يجذب العملاء إليه، لابد من التحسين في المنتج الحالي لكي يظل قادرا على المنافسة.
معدات جديدة
ظهور تقنيات وأجهزة وبنية تحتية حديثة في العالم قد يؤثر على الشركات، حيث تحتاج الشركة إلى تغيير في الأنظمة
الخاصة بها للتوافق والأداء بشكل جيد، مثال: إذا قمات الشركة بترقية الخوادم الخاصة بها، فلابد أن تستوعب المنتجات
هذا التغيير للاستفادة الكاملة من هذه اخلوادم وعدم إهدار الموارد في سبيل لا شئ، والتعديل بناء على متطلبات الخادم.
إصلاح الأخطاء
تؤثر الأخطاء على المنتجات في بعض الحالات، وقد يؤثر ذلك على وظائف المنتدج، أو الأداء، أو سهولة وتجربة المستخدم، لذا المعالجة الفورية للمشكلة وتنفيذ عملية إدارة التغيير يحافظ على جودة المنتج ورضا العملاء.
احتياجات المستخدم الجديدة
تتغير تفضيلات المستخدم بشكل مستمر، فلابد من تغيير المنتج بناء على هذه التفضيلات، لتلبية احتياجات المستخدم النهائي.
قيود الميزانية
قد تؤثر الميزانية القليلة على تحديد الأولويات ونطاق التغيير أثناء تطوير البرمجيات، فعلى سبيل المثال: في حال تأخر المشروع عن الجدول الزمني المحدد أو تجاوز الميزانية المحددة بأي شكل، فلابد من التغيير في عملية التطوير، مثل
إعادة ترتيب أولويات المهام، لمواكبة الجدول الزمني والتسليم في الوقت المحدد، فإدارة التغيير من أهم العمليات في دورة حياة تطوير البرمجيات، ولابد من تنفيذها بشكل متكرر أثناء التطوير وبعد الإنتاج والتسليم، ولابد من إشراك كل المعنيين بالأمر في هذه العملية لضمان أفضل أداء للبرنامج وتنفيذ التغييرات بدون أخطاء.