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