ماذا تفعل حين يتعطّل تطبيقك المبنيّ بالذكاء الاصطناعي في الثانية صباحاً (وأنت لست مطوّراً)
كان تطبيقك يعمل بالأمس. والآن منتصف الليل وثمّة خطب ما. إليك دليلاً هادئاً وغير تقنيّ لما تفعله فعلاً — دون أن تكون قادراً على قراءة الشيفرة.
بنيت تطبيقاً دون كتابة أي شيفرة. وعمل طوال الأسبوع. ثم يراسلك مستخدم في الساعة 1:47 صباحاً قائلاً إن زر التسجيل لا يفعل شيئاً، فتستيقظ على هاتفك يتوهّج على الطاولة المجاورة.
إن لم يسبق لك أن اضطررت إلى إصلاح تطبيق حيّ من قبل، فقد تبدو هذه اللحظة مروّعة. أنت لا تقرأ الشيفرة. لا تعرف ما تعنيه “قاعدة البيانات” حقاً. لست متأكّداً إن كان معطّلاً-معطّلاً أم مجرّد غريب، والأشخاص الذين كانوا سيساعدونك عادةً نائمون.
إليك دليلاً هادئاً ومرتّباً لما تفعله حين يتعطّل تطبيق مبنيّ بالذكاء الاصطناعي ولا تستطيع كتابة الشيفرة. معظمه يدور حول عدم جعل الأمور أسوأ، وهو الجزء الذي لا يحذّرك منه أحد.
أولاً: لا تُعِد النشر
هناك زر في مكان ما في أداة بناء التطبيقات بالذكاء الاصطناعي يقول شيئاً مثل “أعِد النشر”، أو “republish”، أو “ship”. أنت على وشك أن تريد ضغطه. لا تفعل، بعد.
ضغط إعادة النشر على تطبيق نصف معطّل يمكن أن يثبّت الحالة المعطّلة، ويمحو أي معلومات تصحيح بيانات كانت متاحة، ويصعّب على أي أحد — بما في ذلك أداة الذكاء الاصطناعي نفسها — اكتشاف ما الذي حدث.
الحركة الأولى هي دائماً أن تنظر، لا أن تتصرّف. أنت لم تؤكّد بعد حتى ما الذي تعطّل.
الخطوة 1 — أعِد إنتاج المشكلة بنفسك
افتح التطبيق في نافذة متصفّح جديدة — وضع التصفّح المتخفّي أو الخاصّ هو الأفضل، لأنه يزيل أي تسجيل دخول قديم أو ذاكرة مؤقّتة قد تجعل الأمور تتصرّف معك بشكل مختلف عمّا تتصرّف به مع مستخدمك.
حاوِل أن تفعل الشيء نفسه بالضبط الذي أبلغ عنه المستخدم. إن قال إن زر التسجيل لا يعمل، فحاوِل التسجيل. وإن قال إن لوحة التحكّم فارغة، فحاوِل تسجيل الدخول وعرض لوحة التحكّم.
أنت تبحث عن واحد من ثلاثة أشياء:
- إنه معطّل للجميع. اصطدمت بالمشكلة نفسها. وهذا في الواقع أسهل نوع للإصلاح لأنه متّسق.
- إنه يعمل معك. وهذا أصعب سيناريو، لأن شيئاً ما في موقف المستخدم المحدّد (متصفّحه، أو حسابه، أو بياناته) هو المشكلة.
- إنه متقطّع. يعمل مرّة ويتعطّل في المرّة التالية. وهذا الأكثر إرهاقاً لكنه أيضاً الأكثر إفادةً — فهو يعني عادةً أن شيئاً ما تنتهي مهلته أو ينفد منه مورد.
اكتب أيّاً من الثلاثة رأيت. ستحتاج إليه حين تطلب المساعدة.
الخطوة 2 — تحقّق من الأشياء الخارجية البديهية قبل أن تلوم تطبيقك
عدد مفاجئ من لحظات “تطبيقي معطّل” ليس تطبيقك. قبل أن تتعمّق في أداة الذكاء الاصطناعي، تحقّق:
- هل الإنترنت نفسه على ما يرام؟ افتح موقعين آخرين. إن كان الواي فاي لديك متقطّعاً، فقد يكون تطبيقك على ما يرام وقد تكون أنت المعطّل.
- هل تعرّضت أداة الذكاء الاصطناعي نفسها لانقطاع؟ معظم أدوات بناء التطبيقات بالذكاء الاصطناعي لها صفحة حالة (ابحث عن اسم المنتج زائد “status”). إن كانت تمرّ بليلة سيّئة، فلا داعي لأن تكتشف أي شيء آخر.
- هل تعطّلت إحدى أدواتك المتّصلة؟ إن كان تطبيقك يستخدم Stripe للمدفوعات، أو خدمة بريد للإشعارات، أو خدمة قاعدة بيانات لتخزين البيانات، فأيٌّ منها يمكن أن يتعرّض لانقطاع. ولكلٍّ صفحة حالة خاصّة به. تحقّق من تلك التي يعتمد عليها تطبيقك.
في نحو واحدة من كل خمس مرّات، تكون الإجابة “ليس تطبيقي في الواقع”، فتستطيع العودة إلى النوم.
الخطوة 3 — انظر إلى رسالة الخطأ، حتى لو أخافتك
إن أظهر تطبيقك شاشة عليها نصّ — حتى نصّ يبدو كالطلاسم — فاقرأه. التقط لقطة شاشة. خاصّةً إن كانت هناك سلسلة طويلة من الحروف والأرقام (يسمّيها الناس “stack trace”؛ تبدو كحساء حروف لكنها أنفع شيء يمكنك أن تملكه حين تطلب المساعدة).
معظم أدوات بناء التطبيقات بالذكاء الاصطناعي لها أيضاً مكان لرؤية الأخطاء التي حدثت مؤخّراً. قد يُسمَّى Logs، أو Activity، أو Errors، أو Console. افتحه. لست بحاجة إلى فهم معظم ما تراه — أنت تبحث عن أحدث نصّ أحمر أو أحدث خطأ، والوقت الذي حدث فيه. الوقت يهمّ: خطأ من صباح أمس على الأرجح ليس سبب عدم قدرة مستخدمك على التسجيل قبل قليل.
انسخ ذلك الخطأ. ستلصقه في مكان مفيد بعد قليل.
الخطوة 4 — اسأل أداة الذكاء الاصطناعي ما الذي تغيّر
هذه هي الحركة التي يقصّر معظم الصُنّاع غير التقنيين في استخدامها. افتح الدردشة مع أداة الذكاء الاصطناعي وقُل، بلغة بسيطة:
“تطبيقي معطّل. المستخدمون لا يستطيعون التسجيل — الزر لا يفعل شيئاً. إليك الخطأ من السجلّات: [الصقه]. ما الذي تغيّر في آخر 24 ساعة، وما الذي قد يسبّب هذا؟”
أداة الذكاء الاصطناعي الجيّدة ستخبرك أي تغيير حديث هو الأرجح مسؤولية. أحياناً ستتعرّف عليه فوراً (“أوه، طلبت منها أمس أن تجعل النموذج أجمل وذلك على الأرجح كسر منطق الإرسال”). وأحياناً ستشير إلى شيء لا تذكر أنك لمسته، وهذا مفيد أيضاً — فهو يعني أن شيئاً تلقائياً تغيّر، مثل تحديث أداة متّصلة.
لا تدع أداة الذكاء الاصطناعي تبدأ بإجراء الإصلاحات بعد. أنت ما زلت في وضع التشخيص. أكثر طريقة رأيت الناس يجعلون بها مشكلة صغيرة أسوأ هي بترك ذكاء اصطناعي يبدأ “إصلاح” الأشياء قبل أن يفهم أحد ما الذي تعطّل.
الخطوة 5 — قرّر هل تتراجع إلى نسخة سابقة
كل أداة بناء تطبيقات بالذكاء الاصطناعي تقريباً تتيح لك العودة إلى نسخة سابقة من تطبيقك. أحياناً تُسمَّى “history”، أو “versions”، أو “checkpoints”، أو “rollback”.
إن كنت تستطيع أن تتذكّر بوضوح ساعةً أو يوماً عمل فيه التطبيق، فالعودة إلى تلك النسخة هي الحركة الأكثر موثوقية على الإطلاق. تكلّفك أي تغييرات أجريتها بينهما (والتي قد لا تريدها بعد الآن)، وتمنحك تطبيقاً يعمل لتستيقظ عليه.
قاعدة جيّدة: إن كان الشيء المعطّل شيئاً يفعله المستخدمون يومياً (التسجيل، تسجيل الدخول، الدفع)، فتراجَع أولاً وأصلِح لاحقاً. يعمل-لكن-قديم يتفوّق على معطّل-لكن-محدَّث في كل مرّة.
أما إن كان الشيء المعطّل ميزة أضفتها اليوم ولا يعتمد عليها أحد بعد، فيمكنك تركها معطّلة حتى الصباح وإصلاحها بذهن صافٍ.
الخطوة 6 — إن كان لا بدّ أن تدع أداة الذكاء الاصطناعي تصلحه
إن كان التراجع غير ممكن، أو قرّرت ألّا تفعل، فدع أداة الذكاء الاصطناعي تقترح إصلاحاً. أمران تبقيهما في ذهنك بينما تفعل:
اقرأ ما تنوي تغييره قبل الموافقة. لن تفهمه كله، لكن يمكنك أن تلاحظ هل تحرّر شيئاً واحداً مركّزاً أم تعيد كتابة نصف التطبيق. التغييرات الصغيرة المركّزة أكثر أماناً بكثير من التغييرات الكاسحة في الثانية صباحاً.
اختبر الإصلاح بأكثر الطرق مللاً. لا تسأل فقط “هل تمّ إصلاحه؟” وتثق بالإجابة. اذهب فعلاً إلى التطبيق بنفسك في نافذة متخفّية وافعل الشيء الذي كان معطّلاً. إن نجح الإصلاح، فالشيء المعطّل يعمل الآن. وإن لم يعمل، فلا تقبل التغيير لمجرّد أن أداة الذكاء الاصطناعي قالت إنه نجح.
الخطوة 7 — اكتب للمستخدم رداً، حتى لو لم تُصلِح الأمر
المستخدم الذي راسلك في الساعة 1:47 صباحاً لا يتوقّع أن تكون متّصلاً. لكن إن كنت كذلك، فردٌّ قصير يهمّ أكثر ممّا قد يهمّ إصلاح:
“شكراً لإخباري — أنظر في الأمر الآن. سأرسل لك ملاحظة حالما يعود إلى العمل.”
إن كان مستخدماً يدفع، فتلك الرسالة الواحدة هي الفرق بين أن يخبر الناس أنك تستجيب بسرعة وأن يخبرهم أنك تجاهلته. الإصلاح يمكن أن ينتظر حتى الصباح. أما الردّ فلا.
الدرس الأكبر: ابنِ تطبيقك وكأنه قد يتعطّل
إن وجدت هذا مرهقاً، فالجانب المضيء هو أن التجربة ستعيد تشكيل طريقة بنائك. بعد أول حادثة لك في الثانية صباحاً، ستبدأ بفعل الأشياء بشكل مختلف:
- ستضيف فحص حالة. صفحة بسيطة تخبرك هل تعمل الأجزاء المهمّة من تطبيقك، فلا تضطرّ إلى تسجيل الدخول لتعرف.
- ستحتفظ بنسخة احتياطية من بيانات المستخدمين. معظم أدوات الذكاء الاصطناعي ستصدّر بياناتك عند الطلب. فعل هذا مرّة في الأسبوع يستغرق 30 ثانية وينقذك في أسوأ الحالات.
- ستكتب ما الذي يعتمد عليه تطبيقك. قائمة قصيرة بكل أداة متّصلة (المدفوعات، البريد، قاعدة البيانات، التخزين)، حتى إذا تعطّل شيء في الثانية صباحاً، يكون لديك قائمة فحص بدلاً من تخمينات.
- ستغيّر شيئاً واحداً في كل مرّة. حين تجري 10 تغييرات دفعةً واحدة ويتعطّل التطبيق، لا تملك أي فكرة أي تغيير كسره. أما حين تجري تغييراً واحداً في كل مرّة، فتعرف.
تستطيع بناء تطبيق دون برمجة. وتستطيع أيضاً الإبقاء على واحد يعمل دون أن تكون مطوّراً — لكن المهارات المطلوبة مختلفة عن مهارات البناء. تتعلّمها غالباً بالطريقة الصعبة، وعادةً في ساعة غير مناسبة.
الخبر السار: في كل مرّة يحدث فيها، يصبح أقلّ إخافةً. وبحلول المرّة الثالثة، يصبح مزعجاً بدلاً من مخيف. وبحلول العاشرة، يصبح مجرّد يوم ثلاثاء عادي.