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