أوّل خللٍ يصل إلى كبار عملائك لن تلتقطه أداة؛ سيتسلّل لأنّ أحداً لم يأخذ على عاتقه السؤال: «كيف نتأكّد أنّ هذا يعمل قبل أن نطلقه؟». في الشركات الناشئة يظلّ هذا السؤال معلّقاً بلا جواب مدةً أطول مما تظنّ — إلى أن يأتي اليوم الذي يكلّفك فيه تجديدَ عقدِ أحد العملاء.
يلجأ المؤسسون إلى ضمان الجودة كما يلجؤون إلى طفّاية الحريق: بعد أن يتصاعد الدخان. استُدعيتُ إلى عشرات المهام كان الطلب فيها «وظِّف لنا بعض المختبِرين»، ونادراً ما كانت تلك هي الخطوة الأولى الصحيحة.
ابدأ من المخاطر، لا من عدد الموظفين
قبل أن تكتب حالة اختبار واحدة أو تنشر إعلان توظيف، حدّد بدقة ما الذي يؤلم فعلاً إذا تعطّل. فشلُ مسار المدفوعات عالَمٌ مختلف تماماً عن ظهور تلميح (tooltip) منزاح ببكسلين. قسّم منتجك إلى ثلاث سلال:
- مسارات المال والثقة — الدفع، والمصادقة (auth)، وسلامة البيانات، وكلّ ما تمسّه جهة تنظيمية أو عملية استرداد أموال.
- سير العمل اليومي الأساسي — المهامّ الثلاث أو الأربع التي يؤدّيها كل مستخدم نشط في كل جلسة.
- ما تبقّى — الذيل الطويل الذي يمكنك إصلاحه لاحقاً حين تقع المشكلة.
تسعون بالمئة من جهدك المبكّر في ضمان الجودة يتوجّه إلى السلّتين الأوليين. وإن تخطّيت هذه الخطوة، فستبني منظومة اختبارٍ أنيقة تحرس ما لا يهمّ، وتظلّ تسمح بمرور الأعطال المكلفة.
أول تعيين هو عقلية، لا مسمّى وظيفي
تدفعك غريزتك إلى توظيف مختبِر يدوي ينقر عبر التطبيق قبل كل إصدار؛ وهذا يشتري لك أسبوعاً من الطمأنينة وعنقَ زجاجةٍ يلازمك مدى الحياة. لكنّ ما تحتاجه فعلاً في البداية شخصٌ — غالباً مهندس يستمتع بكسر الأشياء — قادرٌ على غرس العادات في طريقة عمل الفريق.
الجودة ليست مرحلة في نهاية خط الإنتاج، بل صفةٌ متأصّلة في طريقة كتابة الفريق للكود. إمّا أن تصمّمها منذ البداية، وإمّا أن تظلّ تفتّش عنها إلى الأبد.
في تجاربي الاستشارية، يقضي أنفعُ أفراد ضمان الجودة في المراحل المبكرة نحو ثلث وقته في الاختبار، وثلثيه في بناء البنية الأساسية: تعريف مشترك لمعنى «مُنجَز»، وإيقاع منتظم لفرز الأخطاء، وقائمة فحص سريعة (smoke test)، والشريحة الأولى من الأتمتة. وظِّف على هذا الأساس، تَنْمُ الوظيفة مع المنتج لا ضدّه.
أتمِت الـ20% المملّة أولاً
لست بحاجة إلى تغطية بنسبة 80% في الشهر الأول، بل إلى الحفنة القليلة من الاختبارات التي كانت كفيلةً بالتقاط الأعطال التي أخافتك فعلاً. ابدأ حيث يكون الألم أعلى صوتاً والمسار أكثر استقراراً:
- طبقة رفيعة من اختبارات الطرف إلى الطرف (end-to-end) — من خمسة إلى عشرة مسارات تغطّي مسارات المال والثقة، وتُشغَّل مع كل عملية نشر.
- اختبارات وحدة (unit tests) للمنطق المعقّد فعلاً — التسعير، والصلاحيات، وحسابات التواريخ، وكل ما ينطوي على حالات حدّية يختلف الناس حولها.
- بوابة في التكامل المستمر (CI) — لا شيء يُدمَج في الفرع الرئيسي ما دامت اختبارات الدخان حمراء. هذا البند الواحد من السياسة يغيّر الثقافة أكثر من أي أداة.
قاوِم إغراء مطاردة رقم التغطية. أُفضّل 40 اختباراً متيناً لا يتذبذب على 400 اختبار يتعلّم الجميع تجاهلها. والمنظومة المتذبذبة أسوأ من غيابها، لأنها تدرّب فريقك على الضغط على «إعادة التشغيل» حتى عند الأعطال الحقيقية.
اجعل الإبلاغ عن الأخطاء رخيصاً ومستحيل الضياع
تحيا وظيفة الجودة بحلقة تغذيتها الراجعة أو تموت بها. امنح الأخطاء بيتاً واحداً — لوحةً واحدة، وقالباً واضحاً (الخطوات، والنتيجة المتوقَّعة، والنتيجة الفعلية، والخطورة)، واتفاقاً ثابتاً على ما تعنيه كل درجة خطورة بالنسبة للإصدار. فحين يكون الإبلاغ عن الخطأ بلا احتكاك ورخيصاً، يبلّغ الناس مبكراً؛ وحين يكون مرهقاً، يصمتون حتى يتحوّل الخطأ إلى تصعيدٍ من عميل.
قِس ما يغيّر السلوك
تجاوز مقاييس الغرور؛ فعدد الاختبارات ونسبة التغطية الخام لا يكادان يخبرانك شيئاً عن الجودة. تتبّع الأرقام القليلة التي تكشف ما إذا كانت المنظومة تتعافى فعلاً:
- العيوب المتسرّبة (escaped defects) — الأخطاء المكتشَفة في الإنتاج مقابل تلك الملتقَطة قبل الإصدار. هذه هي لوحة النتائج الصادقة.
- زمن الاكتشاف وزمن الإصلاح — كم تسرع في ملاحظة العطل، وكم تسرع في التعافي منه.
- معدّل فشل التغيير (change failure rate) — ما نسبة عمليات النشر التي تسبّب حادثة.
راقب هذه المؤشرات على مدى ربع سنة، وستروي لك قصةً متّسقة. فإن كانت العيوب المتسرّبة تتناقص بينما تشحن أسرع، فإن وظيفة الجودة لديك تعمل — بصرف النظر عن عدد حالات الاختبار القابعة في جدول بيانات.
من أين تبدأ يوم الاثنين
اختر أهمّ ثلاثة مسارات للمال والثقة، واكتب لها تحديداً اختبارات طرف إلى طرف، واربطها بالتكامل المستمر كبوابة دمج، وأقِم لوحة أخطاء واحدة بتعريفٍ حقيقي للخطورة. هذا عملُ أسبوع، وسيلتقط من الأمور المهمة أكثر مما يلتقطه ربع سنة من النقر العشوائي.
ابنِ الجودة عادةً والفريق لا يزال صغيراً، تتراكم لصالحك؛ ورَكِّبها لاحقاً، تقضِ سنوات تسدّد فائدة الطريق المختصر. فأيّ مساراتك سيؤلمك أكثر لو تعطّل غداً — ومتى آخر مرة اختبره فيها أحدٌ عن قصد؟