تخطَّ إلى المحتوى
→ حسين الحسن

Autro

نظام لإدارة العمليات التجارية في شركة إسبانية تصدّر بوليمرات معاد تدويرها. كتب حسين متطلباته، ثم أعاد بناءه — مرتين.

محلل أعمال ومطوّر Full Stack · TRICYCLE PRODUCTOS SL · 2023 – 2026

autro-tricycle.tech
عملية تجارية
64عملية تجارية
نوعاً من المستندات يُولَّد آلياً
13نوعاً من المستندات يُولَّد آلياً
دول
8دول
شهراً في الإنتاج
12+شهراً في الإنتاج

المشكلة

تشتري TRICYCLE بوليمرات معاد تدويرها من موردين في أنحاء إسبانيا، وتبيعها لمشترين في تركيا وفيتنام وألمانيا وهونغ كونغ وغيرها. كل شحنة تحمل عقد شراء وعقد بيع وحاويات وتكاليف بعملتين وكومة أوراق تصدير: بوليصة شحن، وشهادة منشأ، وشهادة صحة نباتية، وشهادة تبخير، وشهادة EUR.1.

كان هذا كله موزّعاً بين جداول Excel وأدوات متفرقة. لم يكن أحد يعرف ربح الشحنة قبل انتهائها، وكان إعداد مستندات حاوية واحدة يستغرق ساعات من نسخ الأرقام نفسها بين ملف وآخر.

أين كانت الصعوبة

لم تكن المشكلة في الأوراق نفسها، بل في أن الشحنة ليست شيئاً واحداً.

قد يتوزّع الشراء الواحد على عدة مبيعات، وقد يجمع البيع الواحد عدة مشتريات. وقد تضم العملية الواحدة عشرين حاوية، لكل منها وزنها وسعرها وعملتها. ولا يظهر الربح الفعلي إلا بعد تحميل كل تكلفة على الحاوية المعنية: النقل، والجمارك، والتأمين، والتحميل، والشهادات، والوساطة، والتخزين، والرسوم البنكية.

يستطيع Excel حفظ كل ذلك، لكنه لا يفرض قواعد العمل.

القرارات

نمذجة العملية لا المستند

مركز النظام هو العملية: شحنة ترتبط بها الأطراف والحاويات والتكاليف والعقود. وتُولّد المستندات منها. لذلك تنتج نقرة واحدة 13 نوعاً من المستندات، بدلاً من 13 قالباً يحتاج كل واحد منها إلى تعبئة يدوية.

تحديد دورة الحياة بوضوح

تمر العملية بثماني حالات: مسودة، ومؤكدة، ومحمّلة، وفي الطريق، ووصلت، وسُلّمت، ومكتملة، وملغاة. وللفواتير والعقود والمدفوعات والمستندات دورات حياة خاصة بها. وكتابة هذه الحالات وانتقالاتها في وثيقة المتطلبات، قبل كتابة أي كود، منعت إعادة اختراع القواعد في كل شاشة.

حفظ العملة مع السجل

تُعرض الأسعار باليورو والدولار، والسعر المعتمد هو سعر يوم الصفقة. وحفظ سعر التحويل مع كل سجل، بدلاً من حسابه عند فتح التقرير، يعني أن ربح العام الماضي لا يتغير عندما يتغير سعر الصرف اليوم.

إعادة البناء بدل الترقيع

بنى حسين النسخة الأولى على Flutter وLaravel مع فريق من خمسة، وربطها بواجهة WhatsApp Business API، وكانت تعمل. لكن قواعد النظام اتضحت أثناء البناء لا قبله. كتب حسين المتطلبات كاملة — نمذجة مجال النظام، وحالاته وانتقالاتها، وقواعد العمل — ثم أعاد بناء النظام من أوله على React وTypeScript وtRPC وDrizzle وMariaDB.

ما تغيّر

حلّ النظام محل الجداول، ويعمل في الإنتاج منذ أكثر من سنة. وصار إعداد المستندات يستغرق دقائق بعد أن كان يستغرق ساعات. وصار ربح العملية — صافياً وهامشاً وربحاً لكل طن — واضحاً بينما الشحنة ما زالت في الطريق، لا بعد إغلاقها.

يدير النظام اليوم 64 عملية تجارية، منها 36 مكتملة، مع أطراف في ثماني دول، وباليورو والدولار، تحت صلاحيات مبنية على الأدوار وسجل تدقيق كامل.

ما تعلّمه منه

لم تكن وثيقة المتطلبات عبئاً إضافياً. كل ساعة أُنفقت على نمذجة مجال النظام قبل إعادة البناء وفّرت أسبوعاً من الجدال حول كلفة حاوية، أو حول أي الشاشتين تعكس الواقع.

وبناء ما وصفه حسين بنفسه غيّر طريقته في التوصيف. والقاعدة التي يصعب تنفيذها تكون غالباً قاعدة لم تُوصف بدقة.