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