تطبيقات ويب مخصصة في المغرب

التطبيق المخصص موجود لأن البرمجيات الجاهزة لا تطابق سير العمل. أنمذج ذلك السير أولاً ثم أنفّذه كواجهة Laravel وواجهة React.

منتجات نموذجية: أدوات تشغيل داخلية وبوابات عملاء ومنصات متعددة المستأجرين والجسر بين ERP قائم وقناة جديدة. FRIGO SYS وAnyWare من هذا النوع من العمل: كثيف المجال، يُستخدم يومياً لا عرضاً تجريبياً.

لا أبيع كتالوج وحدات. إن كان منتج SaaS يغطي 90% من العمل فعلاً، سأقول لك اشترِه. العمل المخصص للـ10% المتبقية التي تُدير الشركة فعلاً.

خطوة الاكتشاف هي حيث تُوجد الكيانات الحقيقية: دفعة ومنصة وسطر فاتورة وحالة مهمة — أسماء وأفعال كيف يعمل العمل فعلياً، قبل أن يصبح أي منها جدول قاعدة بيانات. الخطأ هنا مكلف لاحقاً، لأن كل شاشة وكل تقرير ينتهي مبنياً على ما تبيّن أن الكيانات هي عليه.

Anybot ونظام تتبع بريد هما طرف الأتمتة والبنية التحتية من نفس الفكرة: برمجيات مخصصة بُنيت لأن سير العمل الدقيق — أتمتة متصفح باستعادة وسجلات، أو تتبع بالبكسل باستجابة أقل من 100 مللي ثانية — لم يكن موجوداً كمنتج جاهز بالسعر أو الشكل الذي يحتاجه العمل.

مشاكل الأعمال

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

منهج التطوير

  1. اكتشف سير العمل. نمذج كيانات الميدان. سلّم وحدة رفيعة — شاشة حقيقية واحدة تؤدي عملاً حقيقياً واحداً — قبل بناء الباقي.
  2. واجهة Laravel وواجهة React وإنتاج Linux — كما في FRIGO SYS وAnyWare، اختيرت لأنها مملة بالطريقة التي يجب أن تكون بها البنية التحتية مملة.
  3. تسليم نظام يستطيع فريق العميل نفسه — أو المطور التالي — قراءته فعلاً، بنموذج بيانات مُسمّى بمفردات العمل نفسه لا أسماء إطار عامة.
  4. استبدال إعادة الإدخال اليدوي بين الأدوات بمصدر حقيقة واحد أولاً، حتى قبل صقل الواجهة، لأن هناك يضيع الوقت الحقيقي.
  5. كتابة اختبارات للأجزاء التي يكلف فيها خطأ صامت مالاً فعلاً — فوترة ومخزون وصلاحيات — حتى عندما لا تكون بقية الواجهة مغطاة بالكامل.
  6. رسم الحالات الحدّية — إرجاعات وإلغاءات وتصحيحات — بنفس عناية الحالة الطبيعية، لأنها في معظم الأعمال الحقيقية ليست نادرة فعلياً.
  7. توثيق نموذج مجال النظام والقرارات الأساسية كجزء من التسليم لا كفكرة لاحقة، حتى لا ترحل المعرفة برحيل شخص واحد.

ما تحصل عليه

  • برنامج يطابق عمل الشركة الفعلي، بدل أن تعيد الشركة تشكيل عمليتها لتطابق البرنامج.
  • مالك واحد للنظام كاملاً، حتى لا يتنقّل بلاغ خطأ بين طابور دعم مزوّد SaaS وفريق داخلي لا يرى النصف الآخر من المشكلة.
  • مصدر حقيقة واحد بدل نفس البيانات مكتوبة في ثلاث أدوات مع الثقة بأنها تبقى متزامنة.
  • ثقة لتغيير النظام، لأن الأجزاء التي يكلف فيها خطأ مالاً مُختبرة فعلاً.
  • حالات حدّية — إرجاعات وإلغاءات وتصحيحات — يعالجها النظام بدل الالتفاف حولها يدوياً لأن لا أحد نمذجها.
  • معرفة مؤسسية تصمد أمام تغيير الفريق، لأن نموذج المجال والقرارات الأساسية موثّقة لا مجرد محفوظة في الذاكرة.

مشاريع مختارة

أسئلة شائعة

How is this different from full stack development?

Full stack is the delivery model (backend, UI, production). Custom web applications is the product type: software shaped around one company’s process rather than a generic website.

Do you estimate before writing code?

Yes. A short discovery pass on the workflow is cheaper than building the wrong entities. I would rather decline a fit than invent a timeline.

ابدأ مشروعاً →