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