استبدال تطبيق retool الذي تجاوزته احتياجاتك. يحدث استبدال تطبيق retool المتضخم حين تتوقف الأداة الداخلية التي يعيش فيها فريق العمليات عن توفير الوقت وتبدأ في استهلاكه. العلامة ليست عمر التطبيق، بل الأسبوع الذي يقضيه مهندس في فك تعقيد استعلام معطّل لم يوثّقه أحد، أو فاتورة الأسعار بحسب المقاعد التي تنمو أسرع من الفريق الذي يستخدمها. استبداله يعني امتلاك الكود والمصادقة وسجل التدقيق، بدل استئجارها.
كان لدى الفريق تطبيق retool. كان يشغّل عملياته الداخلية: الاستردادات، تغييرات الحسابات، تصعيدات الدعم. لكنه بدأ يفعل ثلاثة أشياء لم يكن يفعلها في البداية. تعطّل بطرق لم يفهمها سوى مهندس واحد. فرض رسومًا لكل مقعد على أشخاص يفتحون شاشة واحدة فقط. وكل إصلاح كان يعني تحرير إعداد لا يريد أحد امتلاك مسؤوليته. التطبيق لم يفشل. الفريق تجاوزه بنموه.
#كيف أعرف أن الوقت قد حان للانتقال بعيدًا عن retool؟
لا يوجد عدد مستخدمين يحسم القرار. نراقب أربع إشارات. كم ساعة مهندس أسبوعيًا تذهب للحفاظ على التطبيق حيًا. كم مقعدًا مدفوعًا يخص أشخاصًا يقرؤون شاشة واحدة فقط. كم تغييرًا يُنشر دون سجل تدقيق يثق به أحد. وكم من الوقت يستغرق موظف عمليات جديد قبل أن يتوقف عن طلب مهندس لينفّذ التغيير نيابة عنه. حين تسير ثلاث من هذه الإشارات الأربع في الاتجاه الخاطئ، تكون الأداة هي العنق الضيق، لا الفريق.
متى يجب استبدال تطبيق retool بأداة داخلية مملوكة؟
استبدله حين تكلّف صيانة تطبيق retool وقت هندسة أكثر مما توفّره، أو حين يتجاوز التسعير بحسب المقاعد حجم الفريق الذي يستخدمه، أو حين تُنشر التغييرات دون سجل تدقيق. أعد بناء سير العمل أو سيرَي العمل اللذين تجاوزهما التطبيق كأداة مملوكة بمصادقة وأدوار وسجلات. أبقِ على الباقي إلى أن يصبح مؤلمًا.
كيف بدا الاستبدال فعليًا؟
فعلنا هذا لفريق منتج saas بين شركات (b2b) مكوّن من نحو 40 شخصًا. كان تطبيق retool لديهم قد نما ليضم عشرات الاستعلامات وإعداد صلاحيات مربوطًا يدويًا. لم نُعد بناءه كله دفعة واحدة. سلّمنا أداة عمليات داخلية مملوكة مع ثلاثة عناصر مبنية فيها منذ اليوم الأول، لا مضافة لاحقًا. أصبح فريق العمليات يعمل بالكامل على الأداة الجديدة خلال أسبوعين من الانتقال.
- تسجيل دخول، بحيث يُمنح الوصول ويُسحب من مكان واحد (المصادقة)
- وصول قائم على الأدوار، بحيث يرى موظف الدعم والمشرف شاشات مختلفة (rbac)
- سجل تدقيق يسجّل من غيّر ماذا، ومتى
لماذا استرجع المهندسون يومًا كاملًا أسبوعيًا؟
كان تطبيق retool يكلّف الفريق نحو يوم مهندس واحد كل أسبوع. ذهب هذا الوقت إلى استعلامات معطّلة، وطلبات وصول تُعالَج يدويًا، وتغييرات احتاجت مهندسًا لأن فريق العمليات لم يستطع تنفيذها بأمان. نقلت الأداة المملوكة هذا العمل إلى فريق العمليات. استرجع المهندسون نحو يوم كامل أسبوعيًا. ننشر إثباتات البناء العلني هذه في الجورنال.
الجهة والأرقام هنا مجهّلة الهوية بموجب اتفاقية العميل. اليوم الأسبوعي المسترجَع وتبنّي الأداة خلال أسبوعين هما رقما العميل المُبلَّغ عنهما، لا توقعات.
أليس هذا مجرد نسخة أكبر من الارتهان لبائع واحد؟
we are
نحدّد نطاق سير العمل الذي تجاوز retool ونعيد بناءه كأداة داخلية تملكها، مع مصادقة وأدوار وسجلات تدقيق مُسلَّمة كجزء من البناء، ونسلّمك قاعدة الكود منذ اليوم الأول.
we aren't
لسنا اشتراكًا آخر بحسب المقاعد تستأجره إلى الأبد، ولسنا إعادة بناء مخصصة تستغرق ربعين وتستبدل تطبيقًا يعمل بصفحة فارغة.
الفارق الذي اهتم به الفريق أكثر من غيره كان الملكية. اشتراك retool الذي غادروه كان يفرض رسومًا لكل مقعد ويبقي الكود على منصة شخص آخر. الأداة التي بنيناها سُلّمت كمستودع يملكونه منذ اليوم الأول. لا تسعير بحسب المقاعد. لا منصة يمكن أن يُقفَل الوصول إليها. هكذا يبني قسم المنصات أدوات العمليات الداخلية.
في الأسبوع الذي توقفنا فيه عن ترقيع التطبيق القديم، استرجعت مهندسيّ. كان هذا الهدف كله.
إن كان فريقك ما زال يرقّع تطبيق retool لا يريد أحد امتلاك مسؤوليته، فالحل ليس ترقيعًا آخر. إنه امتلاك الأداة والمصادقة وسجل التدقيق. نحدّد نطاق سير العمل الذي يستحق النقل والذي يُترك كما هو من خلال مشروع استشارة قصير، ثم نبني فقط الجزء الذي تجاوز الأداة القديمة. أخبرنا بما تبنيه.