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

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