في نهاية ديسمبر 2008 ، دعيت إلى إحدى خدمات سيارات الأجرة في بيرم من أجل أتمتة العمليات التجارية الحالية. بشكل عام ، تم تعيين ثلاث مهام أساسية أمامي:
- قم بتطوير حزمة برامج لمركز اتصال مع تطبيق محمول لسائقي سيارات الأجرة وأتمتة عمليات الأعمال الداخلية.
- كان كل شيء يجب القيام به في أقرب وقت ممكن.
- إن امتلاك برامج خاصة بهم ، وليس شراؤها من مطوري الطرف الثالث ، والتي يمكن تطويرها بشكل مستقل في المستقبل ، مع تطور الأعمال ، إلى ظروف السوق المتغيرة باستمرار.
في ذلك الوقت ، لم أفهم كيف تم هيكلة هذا السوق وفروقه الدقيقة ، لكن مع ذلك كان شيئان واضحين بالنسبة لي. يجب بناء مركز الاتصال على أساس تبادل البرمجيات النجمية مفتوحة المصدر. يعد تبادل المعلومات بين مركز الاتصال وتطبيقات الهاتف المحمول أساسًا بمثابة حل خادم عميل مع جميع الأنماط ذات الصلة لتصميم بنية المشروع في المستقبل وبرمجته.
بعد إجراء تقييم أولي للمهام والمواعيد النهائية وتكاليف المشروع ، بعد أن وافقت على جميع الأسئلة الضرورية مع صاحب خدمة سيارات الأجرة ، بدأت العمل في يناير 2009.
في المستقبل ، سأقول على الفور. وكانت النتيجة عبارة عن منصة قابلة للتطوير تعمل على أكثر من 60 خادمًا في 12 مدينة في روسيا و 2 في كازاخستان. وكان الربح الإجمالي للشركة 100+ مليون روبل / شهر.
المرحلة الأولى. النموذج
منذ ذلك الوقت لم تكن لدي خبرة عملية في مجال الاتصال الهاتفي عبر بروتوكول الإنترنت ، وكنت على دراية بعلامة النجمة بشكل سطحي كجزء من التجارب "المنزلية" ، فقد تقرر البدء في العمل مع تطوير تطبيق الهاتف المحمول وجزء الخادم. على طول الطريق ، وسد فجوات المعرفة في مهام أخرى.
إذا كان مع تطبيق الهاتف المحمول ، كل شيء كان أكثر أو أقل وضوحا. في ذلك الوقت ، كان يمكن كتابتها فقط في java لهواتف الضغط على زر بسيطة ، ثم مع كتابة خادم يخدم عملاء الأجهزة المحمولة ، كان السؤال أكثر تعقيدًا إلى حد ما:
- ما خادم نظام التشغيل سيتم استخدامها ؛
- استنادًا إلى المنطق الذي يتم فيه اختيار لغة برمجة للمهمة ، وليس العكس ، مع مراعاة المطالبة 1 ، أي لغة البرمجة ستكون مثالية لحل المشكلات ؛
- عند التصميم ، كان من الضروري مراعاة الحمل الكبير المتوقع في المستقبل على الخدمة ؛
- ما هي قاعدة البيانات التي يمكن أن تضمن التسامح مع الأخطاء في الأحمال العالية وكيفية الحفاظ على وقت استجابة سريع لقاعدة البيانات مع زيادة عدد مرات الوصول إليها ؛
- كان العامل الحاسم هو سرعة التطور والقدرة على توسيع نطاق الكود بسرعة
- تكلفة المعدات وصيانتها في المستقبل (أحد شروط العميل - يجب أن يكون الخادم موجودًا على أراضيها) ؛
- تكلفة المطورين الذين ستكون هناك حاجة إليهم في المراحل التالية من العمل على المنصة ؛
وكذلك العديد من القضايا الأخرى المتعلقة بالتصميم والتطوير.
قبل أن أبدأ العمل في المشروع ، اقترحت الحل الاستراتيجي التالي لمالك العمل: نظرًا لأن المشروع معقد جدًا ، سيستغرق تنفيذه وقتًا ملحوظًا ، لذلك أقوم أولاً بإنشاء إصدار MVP لا يستغرق الكثير من الوقت والمال ، لكن سيتيح لشركته الحصول على ميزة تنافسية السوق بالفعل "هنا والآن" ، وسوف توسع أيضا قدراتها كخدمة سيارات الأجرة. بالنسبة لي ، بدوره ، فإن هذا الحل الوسيط سوف يمنحني الوقت لتصميم الحل النهائي بشكل متعمد ووقت للتجارب التقنية. في الوقت نفسه ، لن يتم ضمان حل البرنامج الذي تم تنفيذه بشكل صحيح وقد تتم إعادة بنائه بشكل جذري أو استبداله في المستقبل ، لكنه بالتأكيد سيؤدي الحد الأدنى من الوظائف الضرورية لـ "الانفصال عن المنافسين". أحب مؤسس سيارة الأجرة الفكرة ، وهكذا فعلوا في النهاية.
في الأسبوعين الأولين قضيتهما في دراسة العمليات التجارية في الشركة ، ودراسة عمل سيارة أجرة "من الداخل". أجرى تحليل الأعمال وأين وماذا وكيف لأتمتة وما إذا كان من الضروري على الإطلاق. ما الصعوبات والمشاكل التي يواجهها موظفو الشركة؟ كيفية حلها. كيف يتم تنظيم يوم العمل من قبل موظفي الشركة. ما هي الأدوات التي تستخدمها.
بحلول نهاية الأسبوع الثالث بعد بدء العمل ودراسة القضايا المثيرة للاهتمام على الإنترنت ، مع مراعاة رغبات صاحب العمل ، وكذلك معرفتي وقدراتي في ذلك الوقت ، تقرر استخدام المجموعة التالية:
- خادم قاعدة البيانات: MsSQL (نسخة مجانية مع قيود ملف قاعدة بيانات تصل إلى 4GB) ؛
- تطوير خادم يخدم عملاء الأجهزة المحمولة في Delphi for windows ، حيث يوجد بالفعل خادم windows سيتم تثبيت قاعدة البيانات عليه ، وكذلك بيئة التطوير نفسها تساهم في التطور السريع ؛
- نظرًا لانخفاض سرعة الإنترنت على الهواتف المحمولة في عام 2009 ، يجب أن يكون بروتوكول التبادل بين العميل والخادم ثنائيًا. هذا سوف يقلل من حجم حزم البيانات المرسلة ، ونتيجة لذلك ، يزيد من استقرار العملاء الذين يعملون مع الخادم ؛
أمضيت أسبوعين آخرين على تصميم البروتوكول وقاعدة البيانات. لقد تحولت إلى 12 حزمة توفر تبادلًا لجميع البيانات الضرورية بين العميل المحمول والخادم وحوالي 20 جدولًا في قاعدة البيانات. قمت بهذا الجزء من العمل بهدف المستقبل ، حتى لو اضطررت لتغيير مكدس التقنية بالكامل ، يجب أن تظل بنية الحزم وقاعدة البيانات كما هي دون تغيير.
بعد العمل التحضيري ، كان من الممكن البدء في التنفيذ العملي للفكرة. لتسريع العملية بعض الشيء وتحرير نفسي لبقية المهام ، قمت بعمل نسخة مسودة من تطبيق الهاتف المحمول ورسم واجهة المستخدم و UX جزئيًا واجتذبت مبرمج جافا مألوفًا للمشروع. وركز على تطوير جانب الخادم والتصميم والاختبار.
بحلول نهاية الشهر الثاني من العمل على MVP ، كان الإصدار الأول من خادم النموذج الأولي والعميل جاهزًا.
وبحلول نهاية الشهر الثالث بعد الاختبارات الاصطناعية والتجارب الميدانية ، وإصلاح الخلل ، والتحسينات الطفيفة في البروتوكول وقاعدة البيانات ، كان التطبيق جاهزًا للإخراج إلى الإنتاج. الذي تم القيام به.
من هذه اللحظة يبدأ الجزء الأكثر إثارة والأكثر صعوبة في المشروع.
أثناء انتقال برامج التشغيل إلى البرنامج الجديد ، تم تنظيم واجب على مدار الساعة. لأنه لا يمكن للجميع الوصول خلال النهار خلال ساعات العمل. بالإضافة إلى ذلك ، من الناحية الإدارية ، بقرار قوي الإرادة من مؤسس الشركة ، تم تنظيمه بحيث يتم إدخال تسجيل الدخول / كلمة المرور من قبل مدير خدمة سيارات الأجرة ولم يتم إبلاغهم إلى السائق. من ناحيتي ، كنت بحاجة إلى دعم فني من المستخدمين في حالات الفشل والمواقف غير المتوقعة.
يخبرنا قانون مورفي: "كل شيء يمكن أن يحدث خطأ سوف يخطئ". وهذا ليس هو ما سارت عليه الأمور ... لقد كان ذلك شيئًا واحدًا عندما قمت ، والعديد من سائقي سيارات الأجرة باختبار التطبيق على عشرات طلبات الاختبار. وشيء آخر هو عندما يعمل أكثر من 500 سائق على الخط في الوقت الفعلي على أوامر حقيقية من أناس حقيقيين.
كانت بنية تطبيق الهاتف المحمول بسيطة وكان هناك عدد أقل من الأخطاء بشكل ملحوظ في الخادم. لذلك ، كان التركيز الرئيسي للعمل على جانب الخادم. المشكلة الأكثر أهمية في التطبيق هي مشكلة قطع الاتصال بالخادم عندما اختفت الإنترنت على الهاتف وتمت استعادة الجلسة مرة أخرى. واختفت الإنترنت في كثير من الأحيان. أولاً ، لم يكن الإنترنت على الهاتف نفسه مستقراً بدرجة كافية في تلك السنوات. ثانياً ، كان هناك العديد من المواقع العمياء حيث الإنترنت ببساطة لم تنجح. حددنا هذه المشكلة على الفور تقريبًا وقمنا بإزالة وتحديث جميع التطبيقات المثبتة مسبقًا في غضون 24 ساعة.
على الخادم ، كانت هناك أخطاء في الخوارزمية بشكل أساسي لتوزيع الطلبات والمعالجة غير الصحيحة لبعض الطلبات من العملاء. على حقيقة الكشف عن مواطن الخلل ، تصحيح وتحديث الخادم.
في الواقع ، لم يكن هناك الكثير من المشاكل التقنية في هذه المرحلة. كانت الصعوبة برمتها هي أنني كنت في الخدمة لمدة شهر تقريبًا في المكتب ، وأحيانًا ما أعود إلى المنزل. 4-5 مرات ، على الأرجح. وكان ينام في نوبات ويبدأ ، لأنه في ذلك الوقت وحده عمل في المشروع ولم يتمكن أحد من إصلاح أي شيء إلا أنا.
شهر واحد ، هذا لا يعني أن كل شيء كان دائمًا عربات التي تجرها الدواب لمدة شهر ، وأنا ، دون توقف ، ترميز شيء هناك. نحن فقط قررنا ذلك. بعد كل شيء ، عملت الشركة بالفعل وحققت ربحًا. ومن الأفضل تشغيلها بأمان والاسترخاء في وقت لاحق بدلاً من خسارة العملاء والأرباح الآن. لقد فهمنا هذا تمامًا ، لذا فقد اهتم الفريق بأكمله معًا بأقصى قدر من الاهتمام والوقت لإدخال برنامج جديد في نظام سيارات الأجرة. ومع الأخذ في الاعتبار حركة المرور الحالية للطلب ، سنقوم بالتأكيد خلال شهر بالتخلص من جميع أوجه القصور. حسنًا ، الأخطاء الخفية التي قد تبقى بالتأكيد لن تكون لها عواقب وخيمة على عملية الأعمال ، وإذا لزم الأمر ، يمكن إصلاحها في ترتيب العمل.
هنا ، تجدر الإشارة إلى المساعدة القيمة التي قدمها مدراء وقادة فرق خدمات سيارات الأجرة ، الذين عملوا على مدار الساعة مع السائقين بأقصى قدر من الفهم لتعقيد وضع نقل برامج التشغيل إلى برامج جديدة. في الواقع ، بعد الانتهاء من تثبيت برامج جديدة على الهواتف ، لم نفقد برنامج تشغيل واحد. ولم تزيد نسبة العملاء غير المصدرين بشكل كبير ، والتي سرعان ما عادت إلى مستوياتها الطبيعية.
كانت هذه هي المرحلة الأولى من العمل في المشروع. وتجدر الإشارة إلى أن النتيجة لم تكن طويلة في المقبلة. من خلال أتمتة توزيع الطلبات على السائقين دون تدخل بشري ، تم تقليل متوسط وقت انتظار سيارة أجرة من قبل العميل بأمر من الحجم ، مما زاد بشكل طبيعي ولاء العملاء للخدمة. وقد أدى ذلك إلى زيادة في عدد الطلبات. بعد زيادة عدد سائقي سيارات الأجرة. ونتيجة لذلك ، زاد عدد الطلبات المكتملة بنجاح. ونتيجة لذلك ، زادت أرباح الشركة. بالطبع ، أنا هنا أتقدم قليلاً ، لأن هذه العملية برمتها لم تكن لحظية. إن القول بأن الإدارة كانت كافية هو قول شيء. كنت غير محدود في مزيد من تمويل المشروع.
أن تستمر ..