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




