الويب والبرمجيات
تطوير البرمجيات: دفتر الشروط الذي تكتبه ليس الذي تحتاجه
لا أحد يعرف ما يريد قبل أن يستعمله. ودفتر شروط كامل يُكتَب قبلًا رهانٌ محرَّر بصيغة الحاضر.
مشروع التطوير على المقاس نادرًا ما يفشل على الشفرة. بل يفشل على الفارق بين ما طُلِب وما كان لازمًا فعلًا، وهذا الفارق لا يظهر إلا بعد أن يستعمل أحدهم شيئًا.
وهي خاصّية مزعجة في المهنة، ويقضي الطرفان وقتهما في التظاهر بأنها غير موجودة. فالزبون يكتب دفتر شروط كاملًا لأنه تعلّم أن ذلك جدّية؛ والمزوّد يسعّره جزافًا لأن ذلك مطمئن.
ثم تصل النسخة الأولى، وتستعملها الفرق، فيكتشف الجميع معًا ثلاثة أشياء لم يكن يمكن تخمينها. وفي تلك اللحظة يضع العقدُ الذي كان يجب أن يحمي الطرفين أحدهما في مواجهة الآخر.
ولا يقترح هذا المقال إلغاء دفتر الشروط. بل كتابة شيء آخر فيه، وتسعيره بطريقة أخرى، والاعتراف سلفًا بما لا يستطيع أحد معرفته — وهي الطريقة الوحيدة لعدم تبادل اللوم عليه لاحقًا.
لا أحد يعرف ما يريد قبل أن يستعمله
اطلب من أحدهم وصف الأداة التي يحتاجها فسيصف ما يفعله اليوم، بصورة أحسن. وهو جواب نزيه وناقص بنيويًّا: إذ لا يستطيع أن يتضمّن ما ستتيحه الأداة وليس موجودًا بعد في عمله.
والظاهرة أوضح ما تكون في الحالات الخاصة. فمن يعالج ملفًّا منذ ثماني سنوات استوعب ثلاثين استثناءً يطبّقها دون تفكير، ولن يذكرها لأنها لا تبدو له قواعد.
وتخرج هذه الاستثناءات كلّها في اللحظة نفسها: الأسبوع الأول من الاستعمال الحقيقي. ولهذا تُنتج النسخة الأولى من برنامج المهنة قائمة طلبات دائمًا، ولهذا تكون هذه القائمة علامة جيّدة لا سيّئة.
ولذلك نتيجة تعاقدية فورية. فإن عومِلت الطلبات الواردة بعد أول استعمال معاملة تغيير نطاق، صار كلٌّ منها مفاوضةً، وقضى المشروع أنفع أوقاته في مناقشة المال.
والصياغة الصحيحة قبل البدء بسيطة وتنزع فتيل أغلب النزاعات: نعلم كلانا أن أشياء ستنقص، والمسألة ليست تفاديها بل تقرير كيف سنعالجها من الآن.
دفتر الشروط الكامل وهمٌ مكلف
وثيقة من ثمانين صفحة تُكتَب قبل أول سطر برمجي تعطي شعورًا بالتحكّم، وهذا الشعور أغلى ما يُنتجه المشروع.
يكلّف أولًا وقتًا: أسابيع لا يوجد فيها شيء قابل للاستعمال ولا تُختبَر فيها الفرضيات. وهي الأسابيع التي يكون فيها المشروع أهشّ ما يكون، لأن لا أحد يستطيع بعدُ أن يخطئ خطأً مرئيًّا.
ويكلّف ثم جمودًا. فالوثيقة المفصَّلة تصير مرجعًا يُدافَع عنه، وتصطدم به الاكتشافات المنجزة في الطريق — مع أنها بالضبط أحدث معلومات المشروع.
ويكلّف أخيرًا دقّةً زائفة. فوصف شاشة بالفاصلة قبل رؤية أحد يستعملها يُنتج مطالب تبدو حاسمة وهي تفضيلات، وسيُدافَع عنها بالطاقة نفسها التي يُدافَع بها عن القيود الحقيقية.
وما يبقى لا غنى عنه في دفتر الشروط هو ما لا يتوقّف على الاستعمال: قواعد المهنة، والالتزامات القانونية، والأحجام، والأشخاص المعنيّون، وما يجب أن تتواصل معه الأداة. والباقي يُكتَب سيرًا.
ما يُكتَب بدلًا منه: القواعد لا الشاشات
الجزء المستقرّ من المشروع قواعد، وتُصاغ جملًا صحيحة بمعزل عن أيّ واجهة.
رقم الطلبية لا يُعاد استعماله أبدًا. والفاتورة لا تُعدَّل بعد إصدارها بل تُلغى. والزبون قد تكون له عناوين تسليم عدّة وعنوان فوترة واحد. والسلعة لا تُباع دون سعر شرائها بلا مصادقة.
وهذه الجمل تساوي أكثر من ثلاثين نموذجًا بصريًّا. فهي قابلة للتحقّق، وتُناقَش مع أهل المهنة لا مع معلوماتي، وتبقى صحيحة حين تتغيّر الشاشة.
والكتلة الثانية الواجب كتابتها الحالات الخاصة المعروفة، تلك التي تُذكَر. ولن تكون شاملة — وذلك موضوع القسم السابق — لكن كل واحدة تُكتَب قبلًا نزاعٌ متجنَّب.
والثالثة ما لن تفعله الأداة. وهي الأقصر والأنفع: فتسمية الوظائف خارج النطاق صراحةً تحوّل خيبةً مقبلة إلى قرار حاضر، وهي القاعدة نفسها في البناء والفعاليات.
الجزاف والوقت المصروف: ما يحمّلك كلٌّ منهما
لا يوجد نمط تعاقدي جيّد في المطلق، بل طريقتان لتوزيع خطر لا يمكن إلغاؤه.
فالجزاف يزيح الخطر نحو المزوّد، ويجعلك تدفع ثمنه. فالسعر الثابت على نطاق غامض يتضمّن هامش أمان، وهذا الهامش أكبر كلّما كان المزوّد نزيهًا في وصف الغموض.
وله أثر ثانٍ أقلّ ظهورًا وأخطر: أنه يصفّ المصالح ضدّ المشروع. فما إن يثبت السعر حتى يكلّف كل تحسين يُكتشَف في الطريق مالًا للمزوّد، فتصير مصلحته ألّا يراه.
والوقت المصروف يزيح الخطر نحوك، ويطلب في المقابل انضباطًا قلّ من الزبائن من يمارسه: متابعة ما يُنتَج، والفصل أسبوعيًّا، ومعرفة التوقّف. وبلا هذا الانضباط يكون أغلى من الجزاف.
والتركيب الناجح غالبًا وسطٌ نادر الاقتراح: جزاف على الجزء المستقرّ — القواعد المكتوبة واسترجاع المعطيات والتشغيل — وميزانية مؤطَّرة بسقف على ما سيُكتشَف. فيحمل كلٌّ حينئذ الخطر الذي يتحكّم فيه.
النسخة الأولى يجب أن تكون صغيرة أكثر ممّا يجب
الإغراء تسليم أداة كاملة، لأن الأداة الجزئية يصعب الدفاع عنها داخليًّا. ومع ذلك فالنسخة الأولى المختصَرة هي التي تقرّر نجاح الباقي.
ووظيفتها ليست الخدمة بل التعلّم. فنسخة تغطّي مسارًا واحدًا يستعملها ثلاثة أشخاص أسبوعين تُنتج معلومات أكثر ممّا تنتجه ستّة أشهر من ورشات التوصيف.
ومعيار التقطيع النافع ليس «أبسط الوظائف» بل «أكثر المسارات تواترًا». خذ العملية التي تنجزها فرقك أربعين مرّة في اليوم، وأجرِها من طرف إلى طرف، ودع كل ما عداها.
ويجب قبول أن تكون هذه النسخة ناقصة ظاهرًا، وقول ذلك للمستعملين. فالأداة المقدَّمة كمنتهية وهي ليست كذلك تُنتج رفضًا؛ والأداة نفسها مقدَّمةً كمرحلة أولى تُنتج ملاحظات.
والفخّ المقابل موجود: تسليم نسخة مختصَرة إلى حدّ لا يستعملها أحد. والاختبار بسيط — إن ظلّ الناس ينجزون العملية في النظام القديم بالتوازي، فلم تكن النسخة صغيرة أكثر ممّا يجب بل ناقصة على المسار الرئيسي.
أين تُستعمَل الأداة فعلًا
خطأ تصميمي يعود دائمًا في برامج المهنة: أنها تُرسَم على شاشة من يطلبها لا على شاشة من سيستعملها.
ويُحصي مرصد سوق الإنترنت لدى سلطة الضبط للبريد والاتصالات الإلكترونية في الثلاثي الثاني من 2025 نحو 59,10 مليون اشتراك إنترنت في الجزائر، منها 88,71 % محمولة و11,29 % ثابتة.
ولا تصف النسبة مؤسستك، لكنها تصف فرقك خارج المكتب: أمين المخزن، والموزّع، والتقنيّ في تدخّل، والبائع في الرفّ. ولا واحد منهم يشتغل جالسًا أمام شاشتين.
والنتائج ملموسة وتُقرَّر باكرًا. فاستمارة بعشرين خانة غير قابلة للاستعمال واقفًا؛ وإدخال يستلزم اليدين لا يُنجَز وأنت تحمل شيئًا؛ وعملية تفترض اتصالًا دائمًا تُخفق في مخزن أو قبو.
والقاعدة التي نطبّقها الذهاب والمعاينة. فساعة تُقضى إلى جانب من سيُدخِل المعطيات، في محيطه الحقيقي، تغيّر التصميم أكثر من ثلاثة اجتماعات — وتقع قبل أول شاشة لا بعد أول رفض.
- اشتراكات محمولة88.71%
- اشتراكات ثابتة11.29%
سلطة ضبط البريد والاتصالات، مرصد سوق الإنترنت، الثلاثي الثاني 2025
استرجاع المعطيات: البند الذي لا يسعّره أحد
كل مشروع يحلّ محلّ شيء يرث تاريخه، وهذا الإرث غائب دائمًا تقريبًا عن التقدير الأول.
والعمل ليس تقنيًّا بل أثريًّا. فالمعطيات الموجودة تتضمّن أعرافًا غير مكتوبة، وخانات حُرِّفت عن استعمالها، وتكرارات، وتسجيلات تُرِكت في منتصفها، واستثناءات أُدخِلت في خانة تعليق.
فيجب تقرير ثلاثة أشياء قبل البدء: ما يُسترجَع، وما يُؤرشَف دون استرجاع، وما يُترَك. والصنف الثالث موجود دائمًا ولا يجرؤ أحد على تسميته، فيُسترجَع كل شيء افتراضًا.
ويجب كذلك تقرير ما يحدث حين لا يستوفي معطًى قديم قاعدةً جديدة. زبون بلا رقم هاتف، وفاتورة بلا مرجع: فإمّا تُطبَّق القاعدة ويُصحَّح التاريخ، وإمّا يمرّ التاريخ ويكون للقاعدة استثناء. وكلاهما قابل للدفاع، وغياب الاختيار ليس كذلك.
وموقفنا، تعلّمناه على حسابنا: يُختبَر الاسترجاع على المعطيات الحقيقية من الشهر الأول، لا في الأسبوع السابق للتشغيل. فهو البند الذي يُزحلق المشاريع، ويزحلقها دائمًا لأنه يُكتشَف متأخّرًا.
الاختبارات، ومن ينجزها
ثمّة نوعان من الاختبار وخلطهما مكلف. فالمزوّد يتحقّق أن البرنامج يفعل ما طُلِب؛ وأنت وحدك تستطيع التحقّق أن ما طُلِب كان الشيء الصحيح.
والتحقّق الثاني لا يُفوَّض. يستلزم من يعرف المهنة، وله وقت للجلوس أمام الأداة، وله سلطة القول إن قاعدةً خاطئة. وقلّ أن تجتمع هذه الشروط الثلاثة، وهي عنق الزجاجة الحقيقي في أغلب المشاريع.
فيجب تخطيطه كعبء عمل، باسم وأيام محجوزة. فـ«المستعملون سيختبرون» بلا شخص مسمّى تعني أن لا أحد سيختبر، وسيُعثَر على العيب في الإنتاج على يد زبون.
والاختبار النافع يتناول حالات حقيقية لا أمثلة. خذ عشرة ملفّات من الأسبوع الماضي، منها اثنان معقّدان، وأمرّها كاملةً. فالأمثلة المخترَعة تصادق على منطق المطوّر؛ والملفّات الحقيقية تصادق على منطقك.
وأخيرًا اكتب ما اختُبِر. وليس ذلك بيروقراطية: بل ما يتيح بعد ستّة أشهر معرفة هل سلوك ما عيبٌ أم قرار.
التشغيل: اللحظة التي ينكسر فيها كل شيء
الانتقال من النظام القديم إلى الجديد أخطر لحظات المشروع، وهي التي تنال أقلّ انتباه لأنها تأتي والجميع متعب.
والقرار الأول التحويل: دفعةً واحدة أم بالتوازي مدّة. والتوازي أأمن وأغلى بكثير، إذ يفترض إدخال كل شيء مرّتين؛ والدفعة أسرع وليس لها رجوع بعد ساعات.
والثاني التاريخ. لا تشغّل أبدًا عشيّة استحقاق مهنيّ — آخر الشهر، أو الجرد، أو فترة نشاط قويّ. وهو بديهيّ مكتوبًا هنا ويُفعَل بانتظام، لأن التاريخ يُختار على رزنامة المشروع لا رزنامة المؤسسة.
والثالث الحضور. يجب أن يكون أحد من المزوّد قابلًا للبلوغ ومتفرّغًا في الأيام الأولى من الاستعمال الحقيقي، ويجب كتابة ذلك في العقد لا وعده شفويًّا.
والرابع الرجوع إلى الوراء. اكتب قبل التحويل ما يُفعَل إن أخفق: من يقرّر، وفي أيّ لحظة، وكيف يُرجَع. فخطة تراجع لم تُستعمَل لم تكلّف شيئًا؛ وغيابها يكلّف يوم توقّف.
ما يُقاس في تطوير
ثلاثة مقاييس تكفي ولا واحد منها نسبة تقدّم، وهي أكثر أرقام المشروع طمأنةً وأقلّها إفادةً.
الأول وتيرة التسليمات المرئية. فالمشروع الذي يعرض شيئًا قابلًا للاستعمال كل أسبوعين مشروع تعرف حاله؛ والذي يعرض شيئًا كل ثلاثة أشهر مشروع ستعلم حاله متأخّرًا.
والثاني عدد الملاحظات المفتوحة وعمرها. وليس العدد ما يُقلق بل العمر: فقائمة تكبر بعناصر عمرها ستّة أسابيع تقول إن الأولويات لا يُفصَل فيها.
والثالث الاستعمال الحقيقي بعد التشغيل: كم شخصًا يستعمل الأداة للعملية التي كانت ستحلّ محلّها، وكم يواصل بالتوازي في القديم. وهذا الرقم الأخير هو الحكم الوحيد الذي يهمّ.
وما لن نذكره: إحصاءات فشل المشاريع المعلوماتية المتداولة في كل مكان. فهي من استطلاع مكتب، بتعريفه هو للفشل وعيّنته هو، وتُنقَل منذ عقود دون أن يتحقّق أحد من السنة ولا من المنهج.
ما يجب التحقّق منه قبل التوقيع
السؤال الأول يكشف المنهج: اسأله ماذا سيحدث حين تكتشف، وأنت تستعمل النسخة الأولى، أن قاعدةً كانت خاطئة. فجواب يتحدّث عن ملحق وكلفة يصف عقدًا؛ وجواب يتحدّث عن ميزانية مؤطَّرة يصف منهجًا.
والثاني يخصّ الإيقاع: كل كم ترى شيئًا يشتغل؟ فإن تجاوز الجواب شهرًا فلن تعرف أين وصل المشروع قبل فوات أوان التصحيح.
والثالث يخصّ استرجاع المعطيات: هل سُعِّر على حدة، وعلى أيّ معطيات قُدِّر؟ فتقدير يذكره في سطر دون أن يكون قد رأى معطياتك يقدّر شيئًا لم ينظر إليه.
والرابع يخصّ الملكية والاستئناف: الشفرة والصلاحيات والمعطيات القابلة للتصدير وتوثيق يكفي ليستأنف مزوّد آخر. اطلب تصديرًا أثناء المشروع لا في آخره.
والخامس يخصّ التشغيل: من يحضر، وكم يومًا، وما خطة التراجع. فالمزوّد الذي لا جواب له عن الأخيرة لم ينجز تحويلات كثيرة.
ما نفعله، وما سنرفض فعله
ما سنرفضه: تسعير نطاق لم يره أحد يشتغل بعدُ تسعيرًا جزافيًّا. نستطيع ذلك — وهو أسهل بيعًا — لكن هامش الأمان الذي يجب أن نضعه فيه سيكلّفك أكثر من المنهج الذي نقترحه بدلًا منه.
وسنرفض كذلك البدء بدفتر شروط من ثمانين صفحة. سنطلب القواعد والحالات الخاصة التي تذكرها وما لن تفعله الأداة، ثم نبني أكثر المسارات تواترًا ونعرضه عليك.
وحدّ كفاءة يُقال بوضوح: لا نعرف مهنتك. فالقواعد تأتي منك؛ ونُحسن طرح الأسئلة التي تُخرجها، ونُحسن تمييز الجواب الذي يصف عادةً من الذي يصف قيدًا، لكننا لن نخترعها.
أما ما نفعله: القواعد مكتوبةً قبل الشاشات، ونسخة أولى مختصَرة على أكثر المسارات تواترًا، واسترجاع معطيات مختبَر على معطياتك الحقيقية من الشهر الأول، وشخص مسمّى من جهتك للاستلام، وخطة تراجع مكتوبة قبل التحويل.
وما ينبغي أن تفعله دوننا هذا الأسبوع: اجلس ساعة إلى جانب من سيُدخِل المعطيات وراقبه يشتغل دون مقاطعته. وسجّل الأشياء الثلاثة التي يفعلها ولم يصفها لأحد قطّ. تلك قواعدك، وهي تساوي أكثر من دفتر الشروط الذي كنت ستكتبه.
الأسئلة الشائعة
هل يلزم دفتر شروط كامل قبل البدء؟
لا. اكتب الجزء المستقرّ — قواعد المهنة والالتزامات والأحجام وما تتواصل معه الأداة وما لن تفعله. أما تفصيل الشاشات فيُكتشَف باستعمال نسخة أولى، وكتابته قبلًا تُنتج دقّة زائفة.
جزاف أم وقت مصروف؟
الجزاف يجعلك تدفع هامش غموض ويصفّ المصالح ضدّ الاكتشافات النافعة؛ والوقت المصروف يستلزم منك انضباط فصل أسبوعي. والتركيب الناجح جزاف على الجزء المستقرّ وميزانية بسقف على الباقي.
بأيّ شيء نبدأ النسخة الأولى؟
بأكثر المسارات تواترًا لا بأبسط الوظائف. خذ العملية التي تُنجَز أربعين مرّة في اليوم وأجرِها من طرف إلى طرف. فإن واصل الناس بالتوازي في النظام القديم فذلك المسار ليس كاملًا.
لماذا ينزلق استرجاع المعطيات دائمًا؟
لأنه يُكتشَف متأخّرًا. فالمعطيات الموجودة تتضمّن أعرافًا غير مكتوبة وخانات محرَّفة. اختبر الاسترجاع على معطياتك الحقيقية من الشهر الأول، وقرّر صراحةً ما يُسترجَع وما يُؤرشَف وما يُترَك.
من يجب أن يختبر؟
شخص من عندك، مسمّى، بأيام محجوزة وسلطة القول إن قاعدةً خاطئة. فالمزوّد يتحقّق أن البرنامج يفعل ما طُلِب؛ وأنت وحدك تتحقّق أن ذلك كان الشيء الصحيح ليُطلَب.
ما نسبة فشل هذا النوع من المشاريع؟
لا نذكر الأرقام المتداولة: فهي من استطلاع مكتب، بتعريفه للفشل وعيّنته، تُنقَل منذ عقود دون التحقّق من السنة ولا المنهج.
أين يبدأ دورنا
ساعة تجلس فيها إلى جانب من سيستعمل الأداة، دون أن تقاطعه، تنتج ثلاثة أسطر تقول أكثر من دفتر شروط من ثمانين صفحة.
- نكتب القواعد قبل الشاشات، ونجعلك تراجعها.
- نختصر النسخة الأولى في المسار الأكثر استعمالًا، لا غير.
- نُريك شيئًا يشتغل قبل الحديث عن أي سعر جزافي.
نحن لا نعرف مهنتك: القواعد تأتي منك، ومن يدّعي تخمينها سيبيعك عاداته هو.
اقرأ بعد ذلك
النموذج التجريبي الذي لن يدخل الخدمة أبدا: العلامات، منذ الأسبوع الثاني
التجربة التي تفشل نادرا ما تفشل في النهاية. تفشل في الأسبوع الثاني، في صمت، والجميع يواصل ثلاثة أشهر.بعد النسخة الأولى: ما يكلفه فعلًا تطوير برنامج مفصَّل
البرنامج المفصَّل لا يُسلَّم بل يُوضع في الخدمة. وكل ما يهم بعد ذلك يتقرر بطريقة طلبك للتغيير.البند الذي لا يحتويه عقد مزوّدك
عقدك يصف خدمة: جاهزية، ودعما، وسعرا. ولا يكاد يقول ما يحقّ للمزوّد فعله ببياناتك.
لنتحدث عن مشروعك
تدقيق مجاني دون التزام: نفحص حضورك الرقمي ونخبرك بما يعيقه.