للمجموعات والعلامات المتعددة
شركات متعددة، تثبيت واحد، بلا عملاء مشتركين
تحل المجموعات هذه المشكلة عادةً مرتين بشكل سيئ: إما خمسة تثبيتات منفصلة وخمسة أنظمة منفصلة لكل شيء، أو تثبيت واحد ووعد رسمي بأن التطبيق يُجري التصفية دائمًا بشكل صحيح. الأول مكلف. والثاني وعد، والوعود ليست نموذجًا أمنيًا.
إذا كنت تدير أكثر من شركة — قابضة لها فروع، أو امتياز تجاري، أو علامتين تستهدفان سوقين مختلفين، أو وكالة والكيان الذي انبثقت عنها — فأنت تعرف بالفعل شكل المشكلة. العلامات تتقاسم الأشخاص والأدوات وقسم المالية. أما العملاء فلا تتقاسمهم، ويجب ألا يبدو أنها تتقاسمهم.
يشغّل iKonekt جميعها من تثبيت واحد، والفصل بينها تحفظه قاعدة البيانات لا الشيفرة. يبدو هذا التمييز أكاديميًا حتى يأتي اليوم الذي لم يعد فيه كذلك.
لماذا يهم هذا الطبقة
المرشح على مستوى التطبيق جملة في استعلام. وهو يعمل طالما أن كل استعلام سيُكتب يومًا ما يحتويه — بما في ذلك الاستعلام المكتوب على عجل، والاستعلام الذي كتبه المطور الجديد، والاستعلام المكتوب لتقرير كان سيُستخدم مرة واحدة فقط.
ادفع الحد إلى قاعدة البيانات وينقلب الحساب. تُنفَّذ السياسة على كل قراءة وكل كتابة، تحت كل شيء. الاستعلام الذي ينسى الشركة لا يُرجع صفوفًا خاطئة؛ بل لا يُرجع شيئًا. يصبح نمط الفشل شاشة فارغة ومطورًا محتارًا، وهذا هو نمط الفشل الصحيح.
الشاشات الفارغة ميزة. نحن نفضّل أن نشرح شاشة فارغة لأحد مهندسينا على أن نشرح قائمة عملاء لعميلين لم يكونا يتوقعان اللقاء.
- 1العملاء والمحادثاتمحدَّد النطاق. لا يستطيع بائع في العلامة (أ) الوصول إلى عملاء العلامة (ب)، بحكم البناء لا بحكم الإعداد.
- 2الادعاءات على العميل«لدينا هذا الحساب بالفعل» قفل يُحتفظ به لكل شركة — فيتمكن علامتان من العمل في السوق نفسه دون تصادم.
- 3المطالبات والإعداداتتعدّل كل شركة ما يخصها. المكان الوحيد الذي كان مشتركًا يومًا كان خطأ برمجيًا، وهو الخطأ الذي يفتخر هذا النظام أكثر ما يفتخر باكتشافه.
- 4برامج الشركاءوحدة لكل شركة، لا وحدة عامة يرثها الجميع.
حد مفروض تحت التطبيق
ما تتمكن المجموعة فعلًا من مشاركته
الفصل ليس عزلًا لمجرد العزل. الأشياء التي تستحق المشاركة عبر المجموعة تُشارك عمدًا، وهي في معظمها الأشياء المملة — وهذا صحيح تمامًا، لأن الأشياء المملة هي حيث تعيش التكلفة المكررة:
- تثبيت واحد للتشغيل والتحديث. نشر واحد، ومجموعة واحدة من بيانات الاعتماد للعناية بها، وشيء واحد لإبقائه مُرقَّعًا.
- فريق واحد من الأشخاص، يرتدون قبعات مختلفة. يمكن للشخص العمل في أكثر من شركة؛ لكن ما لا يستطيعه هو رؤية الشركتين معًا عبر استعلام نسي أن يسأل.
- مجموعة واحدة من العادات. طريقة إسناد العميل المحتمل، وطريقة كتابة الملاحظة، وطريقة تحوّل المهمة إلى فاتورة — تُتعلَّم مرة، وتُطبَّق في كل مكان، ما يقصّر فترة التهيئة إلى نحو صباح واحد.
- علاقة واحدة مع بقية العائلة. castomAPI في الأسفل، والحساب نفسه، والموصلات نفسها — تُهيَّأ لكل شركة حيث يهم ذلك.
السؤال الذي تطرحه المجموعة دائمًا ثانيًا
«هل يمكننا إعداد تقارير عبرها جميعًا؟» نعم — من موقع المجموعة نفسها، عمدًا وصراحةً، لا كنتيجة جانبية لحد نافذ. هذا التمييز هو التصميم كله: عبور الخط يجب أن يكون فعلًا قام به شخص ما بقصد، وبالصلاحية لذلك. ويجب ألا يكون أبدًا شيئًا يستطيع معرّفٌ طائش إنجازه بالخطأ.
والسؤال الذي يطرحونه ثالثًا: «ماذا لو بِعنا إحدى العلامات؟» الحد الذي تحفظه قاعدة البيانات هو أيضًا حد يمكنك استخراج نسخة نظيفة منه. وهذا ليس مصادفة — الفصل وقابلية النقل هما الخاصية نفسها من منظور اجتماعين مختلفين.
تحت الأرضية
ما الذي يحفظ الخط، تحديدًا
ليس ادعاءً، بل قائمة. إذا لم يستطع مورّد إنتاج هذه القائمة عن منتجه هو، فذلك أمر يستحق الانتباه.
26
جداول تحمل شركتها، مع إجبار علامة التحقق بدلًا من إتاحتها فقط.
72
سياسات تُكتب واحدة تلو الأخرى بحيث يقرأها إنسان، لا تُولَّد في حلقة آلية.
942
اختبارات تُشغَّل على قاعدة بيانات تُبنى من الصفر كلما تغيّر أي شيء.
0
شركات افتراضية. أي طلب بلا نطاق يُرفض قبل أن يصل إلى البيانات — لا يوجد بديل يُنسى تعطيله.

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