مقدمة
هناك بحثان مختلفان تمامًا يستخدمان الكلمات نفسها. "مطوّر شامل" يُظهر غالبًا منصات العمل الحر — arc.dev، Wellfound — أشخاصًا يحاولون إضافة عضو واحد إلى فريق يديرونه بالفعل. أما "خدمات التطوير الشامل" فتُظهر استوديوهات ووكالات: أشخاصًا (أو في حالتي، شخصًا واحدًا) يمتلكون المشروع من البداية إلى النهاية. تتعامل جوجل مع هذين البحثين بشكل منفصل لأن الباحثين يقصدون بهما أمرين مختلفين.
إذا كنت تقرأ هذا لأنك تحتاج إلى بناء برمجية، لا إلى مقاول يُضاف لعدد موظفيك، فأنت في الفئة الثانية. قبل أن تصدّق أي شيء أقوله عن طريقة عملي، إليك ما يغطيه "التطوير الشامل" فعليًا.
أنا أشرف كمال. أدير أرانطو بمفردي، ما يعني أن كل مشروع أدناه مرّ عبر يديّ في كل طبقة — لا تسليمًا بين مقاول واجهة ومقاول خلفية ومن يملك قاعدة البيانات في تلك الفترة.
مما يتكون "التطوير الشامل" فعليًا
تُستخدم كلمة "شامل" كأنها مهمة واحدة، لكنها في الحقيقة أربع مهام منفصلة تجتمع في شخص واحد، أو فريق صغير، حين يُنفَّذ العمل بشكل صحيح.
الجزء الذي يلمسه المستخدم
الواجهة الأمامية: التصميم والنماذج، والشيء الذي يجب أن يبدو سريعًا على هاتف أندرويد متوسط باتصال إنترنت غير مستقر، لا فقط على حاسوب سريع بشبكة مكتب. هنا تتوقف معظم النقاشات حول تطوير المواقع وتطبيقات الويب — وهنا أيضًا يتضح أن كثيرًا من ادعاءات "التطوير الشامل" هي في الواقع عمل واجهة أمامية فقط.
الجزء الذي لا يراه المستخدم أبدًا
الخلفية البرمجية: المنطق الذي يحدد ما يُسمح للطلب بفعله أصلًا. المصادقة، والصلاحيات، وحدود معدل الطلبات — الأجزاء التي لا تظهر أبدًا في لقطة شاشة لمعرض الأعمال، لكنها الفرق الحقيقي بين برمجية تصمد أمام مستخدمين حقيقيين وأخرى لا تصمد.
الجزء الذي يبقى بعد تغيّر الواجهة
قاعدة البيانات والبنية التحتية: تصميم المخطط، والترحيلات، والنسخ الاحتياطي — القرارات التي يصعب التراجع عنها لاحقًا. واجهة جميلة فوق مخطط سيئ هي عرض تجريبي فقط. واجهة جميلة فوق مخطط مصمم لطريقة عمل المنشأة الفعلية هي منتج حقيقي.
الجزء الذي لا يسأل عنه أحد حتى يتعطل
النشر والمراقبة: ماذا يحدث حين يفشل webhook للدفع، أو حين تتوقف مهمة خلفية بصمت، أو حين يتصل عميل لأن "النظام متوقف" وتحتاج معرفة السبب خلال دقائق، لا بعد مرور تذكرة دعم عبر ثلاثة أشخاص.
المقاول الذي يُستأجر لـ"تطوير شامل" يغطي عادةً أول جزأين فقط. أما خدمة التطوير الشامل فتغطي الأربعة كاملة، من البداية للنهاية، في مشروع واحد، دون حاجة ثلاثة أشخاص للتنسيق حول معنى المخطط.
أربعة مشاريع حقيقية، شخص واحد، كل طبقة
أفضّل أن أعرض هذا بدلًا من وصفه نظريًا.
PulseKart برمجية نقاط بيع ومخزون للصيدليات — الفوترة ومستويات المخزون وتتبع الصلاحية في شاشة واحدة، مبنية على Next.js وNode فوق Postgres. صممت المخطط لما تلمسه "عملية بيع" فعليًا (المخزون، دفعات الصلاحية، الصندوق)، وكتبت مسارات API، وبنيت الواجهة التي يستخدمها الصيدلي بين عميل وآخر، حيث الشاشة البطيئة ليست إزعاجًا بسيطًا — بل طابور يتشكل.
Veloria Vault كانت عملية ترحيل متجر إلى بنية Next.js بلا واجهة (headless) — الموقع والإبداعات الإعلانية والمحتوى المنتجي مُدارة بالكامل، لا مجرد إعادة تصميم بصري فوق الخلفية القديمة.
SanadOS قيد التجربة حاليًا: منصة عمليات مرافق مبنية على React وSupabase، تتبّع الأصول وأوامر العمل وسجل الصيانة كنظام سجل موحد بدلاً من جدول بيانات لكل مبنى.
FATOORA Lite هو أوضح مثال على أهمية طبقتي الخلفية والبنية التحتية بقدر أهمية الواجهة. إنه محرك فوترة إلكترونية مبني حول مسار تخليص المرحلة الثانية لزاتكا في السعودية — Next.js وNode في الظاهر، لكن الهندسة الحقيقية في توليد XML والختم التشفيري في الأسفل. هذا الجزء لا يراه العميل على الشاشة أبدًا ولن يعرف أن يسأل عنه باسمه، وهو السبب الكامل وراء تخليص الفاتورة من عدمه.
لم يُبنَ أي من هذه المشاريع عبر تسليم بين أطراف متعددة. هذا ليس ادعاءً بالتفوق على فريق كامل — فالفريق يملك مزايا حقيقية لا يملكها استوديو فردي، أولها القدرة على العمل المتوازي. إنه ادعاء بما يمنحه "التطوير الشامل" حين يكون بنيويًا لا مجرد مسمى وظيفي: لا أحد يحتاج شرح المخطط لمن يبني API، لأنه الشخص نفسه، ولا أحد يحتاج شرح عقد API لمن يبني الواجهة، للسبب ذاته.
كيف يبدو هذا في الكود
من العادات المباشرة الناتجة عن امتلاك كل طبقة: التحقق من المدخلات عند الحد الذي يدخل منه الطلب إلى النظام، بدلًا من الثقة بأن الواجهة الأمامية تحققت منها بالفعل. إليك الشكل العام، مبسّطًا من طريقة بناء نقاط النهاية عبر هذه المشاريع:
```typescript const InquirySchema = z.object({ name: z.string().min(1).max(120), email: z.string().email(), message: z.string().min(10).max(2000), });
export async function POST(req: Request) { const body = InquirySchema.safeParse(await req.json()); if (!body.success) return Response.json({ error: "Invalid input" }, { status: 400 }); // المتابعة بقيمة يتفق عليها TypeScript ووقت التشغيل معًا } ```
إنه نمط بسيط، لكنه يحدث باستمرار فقط حين يكون من كتب النموذج هو نفسه من كتب نقطة النهاية. افصل هذا بين مقاولَين على جدولين مختلفين، وهذا النوع من التحقق عند الحدود هو بالضبط ما يُتجاهل تحت ضغط المواعيد النهائية — غير مرئي حتى اليوم الذي يظهر فيه.
"مطوّر شامل" مقابل "خدمة تطوير شامل" — الفرق الصادق
إذا كنت تحتاج مهندسًا إضافيًا داخل فريق تديره يوميًا ويقدّم تقاريره لقائدك، فأنت تحتاج "مطوّر شامل" — منصة توظيف مستقلين أو تعاقد مباشر هو الخيار الأنسب، لا استوديو.
أما إذا كنت تحتاج منتجًا عاملًا، مخططًا ومبنيًا ومُطلقًا دون أن تنسّق بين شخص للواجهة وآخر للخلفية وثالث لقاعدة البيانات — فهذه "خدمة تطوير شامل"، وهذا ما تُثبته المشاريع الأربعة أعلاه لا مجرد تدّعيه.
هناك سؤال أصغر ومرتبط يستحق الذكر: البرمجيات المخصصة مقابل أداة جاهزة مُهيّأة. التطوير الشامل هو الطريقة التي يُبنى بها الجانب المخصص فعليًا — إنه انضباط، لا بند خدمة منفصل.
كيف تُقيّم استوديو تطوير شامل
ثلاثة أسئلة عملية تستحق أن تُطرح قبل التعاقد مع أي جهة تدّعي قدرة شاملة، بما في ذلك أرانطو:
- اسأل من يملك مخطط قاعدة البيانات بعد الإطلاق — إذا تغيّر الجواب حسب الطبقة التي تتعطل، فهذه فجوة حقيقية.
- اطلب رؤية مشروع واحد حيث تولى الشخص أو الفريق نفسه الواجهة *و*الجزء الذي تحتها ولا يظهر على الشاشة (المصادقة، المهام الخلفية، التكاملات) — منطق تخليص زاتكا في FATOORA Lite هو هذا النوع من الإثبات، لا لوحة التحكم فوقه.
- اسأل ماذا يحدث الساعة الثانية فجرًا حين يفشل شيء بصمت — الإجابة الحقيقية تذكر آلية مراقبة أو تنبيه محددة، لا "سنعاود التواصل معك".
أين يقع هذا في أرانطو
التطوير الشامل ليس بندًا منفصلًا هنا — إنه الوضع الافتراضي، لأن شخصًا واحدًا مسؤول عن كل طبقة في كل مشروع. وهذا أيضًا التفسير الصادق لسبب استغراق البناء الوقت الذي يستغرقه: لا شيء يحدث بالتوازي بين أخصائيين، بل يحدث بالتسلسل، في عقل واحد، وهو أبطأ نظريًا وأكثر اتساقًا عمليًا. إذا كانت هذه المقايضة تناسب ما تبنيه، فإن صفحة التواصل هي أسرع طريقة لوصف المشروع والحصول على إجابة حقيقية حول نطاقه.