لماذا يجب أن تكون صيانة تطبيقات الويب أكثر من شيء

نشرت: 2022-03-10
ملخص سريع ↬ تتطلب تطبيقات الويب الصيانة تمامًا مثل أي نوع آخر من البرامج ، ولكن كصناعة ، فهي ليست شيئًا نبرزه بشكل كافٍ. نتيجة لذلك ، فإننا نعرض عملائنا لمخاطر ملموسة بالإضافة إلى ترك الأموال على الطاولة.

مطورو البرمجيات التقليديون يخفون سرًا منا على مرأى من الجميع. إنها ليست حقيقة متنازع عليها. إنه جزء من نموذج أعمالهم.

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

إذن ما هو هذا السر؟

حسنًا ، يكسب الكثير من بائعي البرامج التقليديين أموالًا من صيانة البرنامج الذي يكتبونه أكثر مما يفعلونه في البيع الأولي.

غير مقتنع؟

سيوفر لك البحث السريع عن مصطلح "التكلفة الإجمالية للملكية" الكثير من التعريفات المماثلة مثل هذا من Gartner (التركيز الخاص بي):

[التكلفة الإجمالية للملكية] هي تكلفة تنفيذ وتشغيل ودعم وصيانة أو تمديد ، وإيقاف تشغيل أحد التطبيقات.

علاوة على ذلك ، تؤكد هذه الورقة التي أعدتها جامعة ستانفورد أن الصيانة تصل عادةً إلى 60٪ إلى 90٪ من التكلفة الإجمالية للملكية لمنتج برمجي.

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

المزيد بعد القفز! أكمل القراءة أدناه ↓

نحن لا ندفع الصيانة

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

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

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

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

ما هي الصيانة؟

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

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

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

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

وفيما يلي بعض الأمثلة على ذلك:

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

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

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

صعب البيع؟

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

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

تتمثل إحدى الطرق الفعالة للغاية في تقديم وكيل يتضمن الصيانة في جوهرها ولكنه يحتوي أيضًا على الكثير من القيمة الإضافية للعميل ، مثل:

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

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

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

مهمة تافهة لك أو لفريقك ؛ الكثير من القيمة لعميلك.

مثال عملي

سيكون لديك بالطبع طريقتك الخاصة في كتابة المقترحات ولكن إليك بضع مقتطفات من مثال الملعب.

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

أنت تتطلع إلى تقليل المخاطر طويلة المدى.

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

أنت تدرك أيضًا مدى أهمية الصيانة لأي أصل تجاري.

في وقت لاحق ، في قسم التسليمات ، يمكنك إضافة جزء عن الصيانة إما كخيار مستقل أو مجمعة مع التجنيب المستمر.

في المثال التالي ، نبقيها بسيطة ونجمعها مع حافظة التطوير المدفوعة مسبقًا:

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

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

لقد نشرنا الأشياء بحيث يعمل المطور على نظامك على الأقل [فترة ما في الأسبوع / الشهر] مما يمنحك ميزة مميزة تتمثل في وجود مطور قادر على التبديل إلى شيء أكثر أهمية في حالة ظهور مشكلات خلال [نفس الفترة] . بناءً على أولوياتك ، يمكن قضاء الوقت جميعًا في عمل ميزة جديدة أو تقسيمه مع الصيانة ، إنها مكالمتك. نقترح عادةً تقسيم 75٪ / 25٪ بين الميزات الجديدة والصيانة المهمة.

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

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

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

هل يمكن أن تكون الصيانة مزعجة؟

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

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

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

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

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

كيف نجعل الصيانة أسهل؟

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

دعم طويل الأمد (LTS)

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

مشروع النظافة الجيدة

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

يجب أن يكون التطبيق محمولاً

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

الصيانة هي ربح حقيقي للجانبين

الصيانة هي العمل الذي نحتاج إلى القيام به في تطبيق ما حتى يظل ثابتًا بأمان. إنها تكلفة عمل قياسية. في المتوسط ​​75٪ من التكلفة الإجمالية للملكية على مدى عمر تطبيق البرنامج.

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

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

افعل لنفسك ولعميلك ولصناعتنا بالكامل خدمة: ساعد في جعل صيانة تطبيقات الويب أكثر أهمية.