كيف قام برنامج صغير بتحويل مكتب صغير إلى شركة فيدرالية بربح يزيد عن 100 مليون روبل شهريًا

في نهاية ديسمبر 2008، تمت دعوتي إلى إحدى خدمات سيارات الأجرة في بيرم بهدف أتمتة العمليات التجارية الحالية. بشكل عام، تم تكليفي بثلاث مهام أساسية:


  • تطوير حزمة برامج لمركز اتصال مع تطبيق جوال لسائقي سيارات الأجرة وأتمتة العمليات التجارية الداخلية.
  • كان لا بد من القيام بكل شيء في أقصر وقت ممكن.
  • امتلك برنامجك الخاص، بدلاً من شراؤه من مطورين خارجيين، والذي يمكن في المستقبل، مع تطور الأعمال، توسيع نطاقه بشكل مستقل ليتوافق مع ظروف السوق المتغيرة باستمرار.

في ذلك الوقت، لم أفهم كيفية عمل هذا السوق والفروق الدقيقة فيه، ولكن مع ذلك، كان هناك شيئان واضحان بالنسبة لي. يجب أن يتم بناء مركز الاتصال على أساس برنامج PBX مفتوح المصدر. يعد تبادل المعلومات بين مركز الاتصال وتطبيق الهاتف المحمول في الأساس حلاً لخادم العميل مع جميع الأنماط المقابلة لتصميم بنية المشروع المستقبلي وبرمجته.

بعد التقييم الأولي للمهام والمواعيد النهائية والتكاليف للمشروع، وبعد الاتفاق على جميع الأمور الضرورية مع صاحب خدمة سيارات الأجرة، بدأت العمل في يناير 2009.

بالنظر إلى الأمام، سأقول على الفور. وكانت النتيجة منصة قابلة للتطوير تعمل على أكثر من 60 خادمًا في 12 مدينة في روسيا و2 في كازاخستان. بلغ إجمالي أرباح الشركة أكثر من 100 مليون روبل شهريًا.

المرحلة الأولي. النموذج المبدئي

نظرًا لأنه في ذلك الوقت لم يكن لدي أي خبرة عملية في مجال الاتصال الهاتفي عبر بروتوكول الإنترنت، وكنت على دراية سطحية فقط بالنجمة كجزء من تجارب "المنزل"، فقد تقرر البدء في العمل على تطوير تطبيق الهاتف المحمول وجزء الخادم. وفي الوقت نفسه، سد الفجوات في المعرفة المتعلقة بالمهام الأخرى.

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

  • ما هو نظام تشغيل الخادم الذي سيتم استخدامه؟
  • انطلاقاً من منطق اختيار لغة برمجة لمهمة ما، وليس العكس، ومع الأخذ في الاعتبار النقطة 1، أي لغة برمجة ستكون الأمثل لحل المشكلات؛
  • أثناء التصميم، كان من الضروري مراعاة الأحمال العالية المتوقعة في المستقبل على الخدمة؛
  • ما هي قاعدة البيانات التي يمكنها ضمان التسامح مع الأخطاء في ظل الأحمال العالية وكيفية الحفاظ على وقت استجابة سريع لقاعدة البيانات مع زيادة عدد الطلبات المقدمة إليها؛
  • كان العامل الحاسم هو سرعة التطوير والقدرة على توسيع نطاق الكود بسرعة
  • تكلفة المعدات وصيانتها في المستقبل (أحد شروط العميل هو أن تكون الخوادم موجودة في المنطقة الخاضعة لسيطرته)؛
  • تكلفة المطورين الذين ستكون هناك حاجة إليهم في المراحل التالية من العمل على المنصة؛

بالإضافة إلى العديد من القضايا الأخرى المتعلقة بالتصميم والتطوير.

قبل البدء في العمل في المشروع، اقترحت على صاحب العمل القرار الاستراتيجي التالي: نظرًا لأن المشروع معقد للغاية، فإن تنفيذه سيستغرق وقتًا ملحوظًا، لذلك أقوم أولاً بإنشاء إصدار MVP، والذي لن يستغرق الكثير من الوقت و المال، ولكنه سيسمح لشركته بالحصول على ميزة تنافسية في السوق بالفعل "هنا والآن"، وسيعمل أيضًا على توسيع قدراتها كخدمة سيارات الأجرة. وفي المقابل، فإن مثل هذا الحل الوسيط سيمنحني الوقت لتصميم الحل النهائي بشكل أكثر تفكيرًا والوقت لإجراء التجارب الفنية. وفي الوقت نفسه، لن يتم ضمان تصميم الحل البرمجي المطبق بشكل صحيح وقد يتم إعادة تصميمه أو استبداله بشكل جذري في المستقبل، ولكنه سيؤدي بالتأكيد الحد الأدنى من الوظائف الضرورية "للابتعاد عن المنافسين". أعجب مؤسس التاكسي بالفكرة، لذا فعلوها في النهاية.

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

بحلول نهاية الأسبوع الثالث، وبعد بدء العمل ودراسة القضايا ذات الاهتمام على الإنترنت، مع مراعاة رغبات صاحب العمل، وكذلك معرفتي وقدراتي الخاصة في ذلك الوقت، تقرر تطبيق المكدس التالي :

  • خادم قاعدة البيانات: MsSQL (إصدار مجاني بحد أقصى لملف قاعدة البيانات يصل إلى 2 جيجابايت)؛
  • تطوير خادم يخدم عملاء الهاتف المحمول في دلفي تحت نظام Windows، نظرًا لوجود خادم Windows بالفعل حيث سيتم تثبيت قاعدة البيانات عليه، بالإضافة إلى بيئة التطوير نفسها تسهل التطوير السريع؛
  • مع الأخذ بعين الاعتبار انخفاض سرعات الإنترنت على الهواتف المحمولة في عام 2009، يجب أن يكون بروتوكول التبادل بين العميل والخادم ثنائيًا. سيؤدي ذلك إلى تقليل حجم حزم البيانات المرسلة، ونتيجة لذلك، زيادة استقرار عمل العملاء مع الخادم؛

تم قضاء أسبوعين آخرين في تصميم البروتوكول وقاعدة البيانات. وكانت النتيجة 12 حزمة تضمن تبادل كافة البيانات الضرورية بين العميل المتنقل والخادم وحوالي 20 جدولاً في قاعدة البيانات. لقد قمت بهذا الجزء من العمل مع الأخذ في الاعتبار المستقبل، حتى لو اضطررت إلى تغيير حزمة التكنولوجيا بالكامل، فيجب أن تظل بنية الحزم وقاعدة البيانات دون تغيير.

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

بحلول نهاية الشهر الثاني من العمل على MVP، كان الإصدار الأول من النموذج الأولي للخادم والعميل جاهزًا.

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

من هذه اللحظة يبدأ الجزء الأكثر إثارة للاهتمام والأكثر صعوبة في المشروع.

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

يخبرنا قانون مورفي: "أي شيء يمكن أن يحدث بشكل خاطئ، سوف يحدث بشكل خاطئ". وهذا هو بالضبط ما سارت عليه الأمور... لقد حدث شيء واحد عندما قمت أنا والعديد من سائقي سيارات الأجرة باختبار التطبيق على عدة عشرات من أوامر الاختبار. والأمر مختلف تمامًا عندما يعمل أكثر من 500 سائق على الخط في الوقت الفعلي بناءً على طلبات حقيقية من أشخاص حقيقيين.

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

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

في الواقع، لم يكن هناك الكثير من المشاكل التقنية في هذه المرحلة. كانت الصعوبة برمتها هي أنني كنت في الخدمة في المكتب لمدة شهر تقريبًا، ولم أعود إلى المنزل إلا في بعض الأحيان. ربما 4-5 مرات. ونمت بشكل متقطع، لأنني في ذلك الوقت كنت أعمل في المشروع بمفردي ولم يتمكن أحد سواي من إصلاح أي شيء.

شهر، هذا لا يعني أن كل شيء كان يتعطل باستمرار لمدة شهر وكنت أقوم ببرمجة شيء ما دون توقف. لقد قررنا ذلك للتو. بعد كل شيء، كان العمل يعمل بالفعل ويحقق ربحًا. من الأفضل اللعب بأمان والراحة لاحقًا بدلاً من خسارة العملاء والأرباح الآن. لقد فهمنا جميعًا هذا جيدًا، لذلك خصص الفريق بأكمله أقصى قدر من الاهتمام والوقت لإدخال برامج جديدة في نظام سيارات الأجرة. ومع الأخذ في الاعتبار حركة الطلبات الحالية، سنزيل بالتأكيد جميع أوجه القصور في غضون شهر. حسنًا، من المؤكد أن الأخطاء المخفية التي قد تبقى لن يكون لها عواقب وخيمة على عملية الأعمال، وإذا لزم الأمر، يمكن تصحيحها على أساس روتيني.

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

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

أن يستمر ..

المصدر: www.habr.com

إضافة تعليق