كيف ابتكرنا منتجًا تقنيًا وسقطنا في القاع



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

ابدأ


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

كان الموقع نفسه مجانيًا لعرض الإعلانات ، مما جذب المستخدمين (البائعين الخاصين والوكالات العقارية). تم توليد جميع الدخل بسبب المعتاد في هذا المجال الإعلان عن وضع كتل نصية (TGB) من المطورين الذين يروجون لمبانيهم الجديدة والمباني السكنية.

في ذروته (2008 - 2012) ، كان عدد الزيارات للموقع أكثر من مليون زائر فريد شهريًا. وقد أعطى تحويل جيد للمعلنين. كانت هذه مؤشرات ممتازة ، بالنظر إلى أن PN عملت فقط لموسكو وسان بطرسبرغ. يتكون طاقم العمل من 2 مبرمجين والعديد من الصحفيين والمحررين. في الواقع ، تم تنفيذ جميع عمليات الصيانة والدعم والتحسين للـ PN من قبل موظفين اثنين فقط (عدد الأشخاص الذين صمموا وطوروا تاريخ PN في الأصل صامت).

هنا ينتهي الجزء الإيجابي من القصة.

تقع


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

بالإضافة إلى ذلك ، بدأت محركات البحث أقل وأقل تشبهًا بموقعنا ، والذي كان بالمناسبة بدون أي نوع من الرؤساء التنفيذيين. نعم ، كانت هناك بعض القوالب لـ h1 والعنوان والوصف وإعادة الربط قليلاً ، وبشكل عام ، هذا كل شيء (بعد بداية الخريف وحتى النهاية ، بدأ رئيس الدير معركة الرئيس التنفيذي ، التي كنا نقوم بها لمدة 5 سنوات تقريبًا).

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

هذا هو المكان الذي يبدأ فيه الجزء الفني من القصة .

الغمر


أول سنتين عملت فيه كمطور صغير. فعل كل ما أعطوني. كان علي أن أتعلم الكثير من الصفر. ومع ذلك ، كنت محظوظًا مع مدير التطوير الخاص بي. كان عمره يزيد قليلاً عن 40 عامًا ، وهو مبرمج في المدرسة القديمة ، كان يعرف الكثير ويعرف كيف. ربما كانت عقيدة رئيسية له - إنه يعمل وهو جيد (أنا ممتن للغاية له ، لأنني تبنت الكثير من المعرفة والأساليب المختلفة للتنمية).

كانت مجموعة التكنولوجيا الخاصة بنا كما يلي: MS SQL Server 2012 + ASP.NET MVC 3 . احتفظت القاعدة بكل شيء في حد ذاته. حتى الصور في شكل ثنائي ، لـ 3 أحجام (كبيرة ، كبيرة ، صغيرة).

تضمنت الواجهة الخلفية عدة وحدات:

  • موقع مون
  • منطقة الإدارة العامة
  • مشرف تحسين محركات البحث
  • محلل روبوت KLADR
  • XML استيراد الروبوت تغذية

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

في السنة الثانية من العمل ، ترك مديري المشروع. وقد تركت وجهاً لوجه مع هذا العملاق القديم ، الذي كان 3 ٪ من شفرتي بالقوة.

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

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

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

ارتفاع وهمي


لذا ، وأنا أتدحرج من سواعدي ، بدأت في الحمل. اخترت العمارة الكلاسيكية ثلاثية المستويات. الواجهة الخلفية .Net Core + SQL + Mongo ، الواجهة الأمامية هي Bootstrap + JQuery + KnockoutJS .

نظمت طبقة بيانات. واجهات ، التجريد ، المستودعات على ما يرام. عملت الطبقة على الإجراءات المخزنة (لحسن الحظ ، بدأت أفهم SQL جيدًا). لرسم الخرائط اخترت Dapper. إنه بسيط ومباشر. رفض InMemoryCache لصالح Redis من أجل إحضار ذاكرة التخزين المؤقت إلى خادم منفصل. بعد ذلك كان مستوى منطق الأعمال. كل نفس الواجهات والخدمات DI. لذلك ظهرت المؤسسة في شكل طبقة البيانات (الإجراءات المخزنة + Dapper + Redis) والطبقة المنطقية. استغرق الأمر حوالي 3 أشهر.

وهنا ، بعد ما يقرب من عام من العمل ، تمكنت من الحصول على مساعد لي وحدي ، وأصر على أن هناك الكثير من المهام (وكان هناك الكثير منها). معا ، ذهب كل شيء بشكل أسرع وأفضل ، والأهم من ذلك بشكل أكثر عقلانية.

  1. بادئ ذي بدء ، قمنا بتطوير API للصور الفوتوغرافية . كان WebApi بسيطًا ، والذي أعطى عند الطلب الحصول على صورة الجودة والحجم المطلوبين من القرص. تحولنا إلى SSD ونسيان قاعدة بيانات الصور ككابوس. من الصعب وصف مدى سرعة تحميل الصفحة المتوسطة للموقع بعد تخصيص تجمع منفصل لذلك.
  2. تخلينا عن KLADRA لصالح FIAS . لقد كتبوا خدمة عالية الجودة لتحليل البيانات من FIAS إلى قاعدة بياناتنا ، مع مراعاة ميزاتنا. قاموا بتثبيته خدمة للمنازل الجغرافية. كل شيء يعمل مثل الساعة تقريبًا. في بعض الأحيان فقط كانت هناك أخطاء مرتبطة بالمواقع أو الشوارع المكررة في قاعدة بيانات FIASA.
  3. ثم كتبوا حسابًا شخصيًا جديدًا لفترة طويلة ، وشاركوه من الموقع. تم تصميمه وتخطيطه لفترة طويلة بحيث يكون سهل الاستخدام. وكذلك سريع وعملي. لقد أخطأوا في الدفع له ، ومن ثم إضفاء الطابع المالي على الشيكات (نعم ، لا يمكننا تحمل استخدام حلول متكاملة جاهزة). وعموما قدم خدمة مستخدم جيدة. ففرحوا به.
  4. أخيرًا ، وصلنا إلى الروبوت لاستيراد خلاصات XML . صنع مدقق مناسب وتسجيل جيد للعملاء. اتضح أن الخدمة الجديدة محسنة للغاية بحيث إذا عملت القديمة (باستخدام EF) لمدة 6-8 ساعات ، فإن الخدمة الجديدة عالجت نفس كمية البيانات في 2-3 ساعات.
  5. بعد كل شيء ، رفعوا مجال مع وثائق لكل ما هو. لقد حددوا جميع النقاط لمستخدمي وعملاء البوابة ، ووصفوا أيضًا جزءًا من الوثائق التي ستكون مفيدة للمطورين. وهذا مهم حقًا!
  6. كانت الخطوة الأخيرة لتحسين القاعدة . أعدنا صياغة ذلك تماما. قمنا بتنظيف كل شيء غير ضروري. حققوا تسريع سرعة البحث من 4-5 ثواني إلى ~ 300 مللي ثانية . قاموا بإنشاء الفهارس ، وكتابة الاستعلامات المعقدة ، واستخدام التلميحات ، وحتى إنشاء أقسام من الجداول الإحصائية.

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

هنا تنتهي القصة الفنية وتبدأ الخاتمة الحزينة.


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



أود أن أشير إلى أن التمويل واجه مشاكل دائما. لم تكن هناك استثمارات ، باستثناء SEO . حتى الاحتفاظ بمبرمجين كان باهظ الثمن. من الواضح أنه كان من المستحيل التنافس مع البوابات الجديدة من TOP-10 بهذا المستوى من التمويل والإدارة.

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

ومع ذلك ، لم يعط هذا نتيجة إيجابية. في وقت يومي الأخير ، على الرغم من وجود 4 ملايين صفحة فريدة في محركات البحث ، تقلبت حركة البوابة على حوالي 1400 صفحة فريدة في اليوم. وهذا ، كما يبدو لي ، يذكر الموت.

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

Source: https://habr.com/ru/post/ar423955/


All Articles