أن نأخذ منصة تعيش داخل مركز بيانات عميل واحد ونجعلها منتجًا مشتركًا يستطيع أي أحد أن يسجل فيه، دون أن نكسر البنية التي يعتمد عليها المنتج القائم بالفعل.
السياق
البرمجيات الـ on-premises تعمل على أجهزة العميل نفسه، داخل مبناه. وهذه الحقيقة الواحدة تقرر تقريبًا كل شيء عن سلوكها.
لا يوجد تسجيل، لأنه لا يوجد غريب. فقد اشترى أحدهم البرنامج وثبته، وكل من يستخدمه ينتمي إليه أصلًا. ولا توجد تجربة مجانية، لأنك لا تجرّب شيئًا يجب تثبيته أولًا. ولا توجد فوترة داخل المنتج، لأن المال تولاه عقد قبل أن يفتح أحد شاشة. ولا يوجد سؤال حقيقي عمن يرى ماذا، لأن الجميع في المبنى يعملون في الشركة نفسها.
والانتقال إلى السحابة يُزيل هذه الافتراضات جميعًا دفعةً واحدة. فمشكلة التصميم لم تكن يومًا «ضعه على خادم»، بل: من هذا الشخص؟ وماذا يحق له أن يرى؟ ومن يدفع مقابل ما يستهلكه؟
وقيد واحد جعل الأمر أصعب: البنية القائمة كان يجب أن تنجو. فالعملاء الذين يشغلون Cervello محليًا يعرفون كيف نُظّم. ونسخة سحابية تُعيد ترتيب كل شيء كانت ستصبح منتجًا آخر يحمل الاسم نفسه.
القرار
تجربة مجانية، وـ instance تملكه
وحدة المنتج السحابي صارت الـ instance، مساحة العميل الخاصة، يُوصل إليها عبر نطاق فرعي يسميه هو بنفسه، فيدخل مباشرة إلى بيئته لا إلى باب عام. ومعها تجربة مجانية لمدة أربعة عشر يومًا. وهذا القرار وحده هو ما يفتح المنتج لسوق كان مضطرًا للالتزام قبل أن يرى شيئًا. وقاعدة الملكية تحتها متعمدة: يمكنك أن تنضم إلى instances كثيرة، لكنك لا تملك إلا واحدة. وهذه القاعدة هي ما يجعل كل ما عداها قابلًا للحل. فالانضمام هو كيف تعمل داخل مساحات غيرك: مهندس لدى مُدمِج يعمل داخل بيئة عميل. والملكية هي ما تدفع مقابله. وإبقاء الملكية واحدة يجعل الفوترة وحدود الموارد والتجربة المجانية ترتبط كلها بشيء لا لبس فيه. ومن يأتي برابط دعوة يُوجّه ليختار أي ـ instance يدخل، ومن لا دعوة لديه فهو يُنشئ مساحته هو. وأول إعداد يتم تلقائيًا. فإنشاء الـ instance يُنشئ معه أول organisation وأول team، ويجعل المستخدم جاهزًا للعمل في ثوانٍ، بدل أن يُطلب من مستخدم جديد أن يبني هرمًا فارغًا قبل أن يفعل أي شيء. فالبنية موجودة لأن المنتج يحتاجها؛ وليس على المستخدم أن يبنيها بيده ليبدأ.
القرار
تسجيل يرفض أن يؤكد من هو موجود
التسجيل يتم بالبريد مع رابط تحقق. والمهم هو ماذا يحدث حين يكون البريد مسجلًا بالفعل. السلوك المعتاد، هذا البريد مستخدم بالفعل، تيسير صغير وثغرة حقيقية. فهو يؤكد لأي من يسأل أن شخصًا بعينه يملك حسابًا على هذه المنصة. ومن يسأل مرارًا يحصل على قائمة أهداف مؤكدة. فالمنتج لا يجيب. المسار يبدو واحدًا في الحالتين. وإن كان العنوان مسجلًا، يذهب إشعار أمني إلى صاحبه بدلًا من ذلك: أحدهم حاول التسجيل ببريدك. فله أن يتجاهله، أو يغير كلمة مروره. ومنع تعداد الحسابات (account enumeration) ممارسة أمنية معروفة. واللافت أنها صُممت داخل شاشة تسجيل عادية في منصة تتحكم لاحقًا في بنية تحتية مادية، حيث تكون معرفة من يشغّل نظامًا مفيدة في حد ذاتها لمهاجم. وقرار متصل به: شاشة الملف الشخصي بعد التسجيل قابلة للتخطي. فليس كل حقل مكانه عند الباب. وما ينقص يُطلب لاحقًا، في سياقه، والمستخدم يعمل بالفعل، ومنه المنطقة، وهي أهم مما تبدو، لأن المنطقة الزمنية تحدد كيف تُقرأ أوقات الإنذارات والأحداث.
القرار
إعادة البيع، دون إعادة بناء في كل مرة
يبني المُدمِج حل smart parking مرة واحدة، ثم يبيعه لأربع مدن. وعلى الـ on-premises كان ذلك أربع عمليات تركيب. يشتري المنصة، ويثبّتها داخل مبنى العميل، ثم يعيد بناء الحل فوقها. فالحل يبقى حيث رُكّب، كما يصير مشروع مفتوح المصدر تطبيقًا واحدًا على سطح مكتب واحد لا يغادره. والحل الذي أراده الجميع كان marketplace. اقترحه مدير المنتج، وعُرض على فريق التطوير، وعاد أكبر من أن يُبنى في الوقت المتاح. فنزل بدلًا منه ما هو أصغر ويؤدي العمل نفسه. duplicate ثم transfer. وموضع النسخ هو كل الحكاية. العميل نفسه ينشئ حسابه، ويفتح رابط الـ instance، ويأخذ منه نسخة، فتكون النسخة ملكه من اللحظة الأولى. ثم ينضم مهندسو المُدمِج إلى تلك الـ instance ليضيفوا الـ integration وما يحتاجه موقع ذلك العميل. ولا أحد يسلّم ملكية بعد وقوعها، لأنها لم تقع في المكان الخطأ أصلًا. وهذا ما يُبقي القاعدة فوقه سليمة. تملك instance واحدة، وتنضم إلى كثير. فتظل الفوترة وحدود الموارد والتجربة المجانية معلقة بشيء له مالك واحد، وتكفّ إعادة البيع عن أن تكون إعادة بناء. ولم يكن الـ marketplace قد بُني بعد حين تركت الشركة.
المشكلات كما ظهرت فعلًا
خمسة أمور خرجت من اختبار المنتج القائم، ومن تحليل المنافسين، ومن مقابلات مع من يبنون على Cervello:
لا أحد يستطيع تجربته. الطريق الوحيد للدخول هو الشراء. ولمنصة تُباع لمُدمِجين يقيّمون الخيارات، ذلك باب مغلق أمام السوق كله.
التسجيل طويل، ويطلب أكثر مما ينبغي. حقول إلزامية كثيرة في اللحظة التي يكون فيها الغريب أقل استعدادًا لإعطاء أي شيء، مع مخاوف مشروعة عن الأمان والخصوصية في منصة ستتحكم لاحقًا في أجهزة مادية.
إعادة البيع تعني النسخ اليدوي. المُدمِج يبني الحل مرة ثم يبيعه لعدة عملاء. وكل عملية بيع كانت تعني تكراره وتعديله يدويًا من جديد. أي أن المنتج كان يعامل حلاً قابلًا لإعادة الاستخدام وكأنه عمل لمرة واحدة.
المشتري ليس هو المستخدم. من يشتري المنصة غالبًا ليس من يشغّلها، وهذه حقيقة بنيوية في B2B لم يكن النموذج المحلي مضطرًا لتمثيلها، لأن العقد كان يتولاها خارج البرنامج.
تعدد العاملين في مساحة واحدة ينتج تصادمًا. لا وسيلة لمعرفة من يفعل ماذا، ولا تتبّع للنشاط، ولا إدارة لمساحة مشتركة بينما يعمل فيها عدة أشخاص في آن واحد.
النتيجة
النسخة السحابية أُطلقت، وتعمل في عدة دول منها إسبانيا ومصر.
والذي أنتجه العمل فعلًا: منصة يستطيع غريب أن يدخلها، ويجربها أسبوعين، ثم يدفع مقابلها، بنموذج ملكية واضح بما يكفي ليحمل الفوترة، وتسجيل يرفض أن يسرّب قائمة مستخدميه.
الفصل التالي: معمار الصلاحيات، أربع طبقات متداخلة، ومسألة من يرى من.