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

وسأبدأ في عام 2012.
جئت في عام 2012 وكان الهدف الرئيسي في ذلك الوقت - العمل على موقعنا على شبكة الإنترنت الرائدة. في ذلك الوقت كان "وحش فرانكشتاين": كان جزء من الفريق يعمل مع نظامنا القديم ، الذي لم يتعامل جيدًا مع الأحمال (Bitrix) ، وفي جزء آخر من الفريق (حيث تضمنت) حاولوا تنفيذ نظام جديد ، تم اختياره وفقًا للمعيار "بمجرد هذه أغلى التجارة الإلكترونية في العالم ، ونحن نأخذها ". هم الذين "حاولوا التنفيذ" - لأن النظام كان يقاوم بشدة ، ولكل لحظة تحولت إلى حل ، كانت هناك "مفاجأة" في الرد. لقد عملوا كثيرًا ، لكنهم تقدموا بسرعة حلزون.
بالنسبة لي شخصياً ، تعرفت القشة الأخيرة على رمز إحدى الطرق في "أغلى التجارة الإلكترونية في العالم" ، عندما أدت عدة ساعات من العمل المركّز على خلل معقد إلى حقيقة أنه تم العثور على السبب في مكان ما في العلامة المخصصة ، والتي تعمل عندما أتش تي أم أل جيل في jsp. مهمة هذه العلامة المخصصة هي عرض مجموع بعض القيم. هذا ليس سيئًا ؛ فالعلامات المخصصة مخصصة لهذا الغرض. لكن المفاجأة كانت تخفي حقيقة أن بعض البيانات في قاعدة البيانات تتغير ، والسلوك في الصفحات التالية مرتبط به ، وإذا ضغطت على F5 ، تتكرر المكالمة ، فهذا ينتهك تناسق البيانات. علاوة على ذلك ، انتهكت بطريقة لم تظهر إلا بعد بضع خطوات ، في الصفحة الثالثة من التسلسل. لا ، أنا لا أمانع أن يكون هذا "النينجا سيد" في الفريق ومع رمزه دعم انتباه الزملاء في حالة جيدة. ولكن مثل هذا ، في أغلى نظام!
كان ذلك يوم الجمعة. وقضيت أنا وزميلي يومي السبت والأحد في المكتب لمعرفة المهام التي تفرضها الشركة على النظام اليوم وما هي المهام التي يمكن أن تتوصل إليها في غضون عام. وفقًا لذلك ، كيف سنحلها ، إذا لم نكن قادرين على العمل في إطار استخدام هذا النظام الأغلى والأكثر فعالية من حيث التكلفة.
لم يقل قال من القيام به. قمنا بتجربة وضعنا فيها الأساس لتطوير موقع Sportmaster الجديد. لقد ترسخت العديد من هذه الأفكار في الوقت الحالي ، حيث يتواصل استمرارها بنشاط على الموقع.
المراحل التجريبية والأطر الزمنية
يومين لقد صنعنا نموذجًا مصغّرًا - في نهاية الأسبوع نتخطى قاعدتنا في تطبيق "البحث المرن" ، ونقوم بالبحث على الوجه. واه لا! في نفس النظام الذي تم شراؤه ، مثل هذا الإعداد "أكل" 2 أسابيع. وهنا - في بضع ساعات فقط! نعم ، ويعمل بشكل أسرع. وأسرع بأمر.
2 أسابيع. نشهد نموذجًا أوليًا ، نضيف وظائف للتسليم الشخصي المناسب.
على سبيل المثال ، لدى المستخدم العديد من الخصومات والعروض الترويجية ذات الصلة به على وجه التحديد - ثم في نتائج البحث على المنتجات التي تحتاجها لعرض السعر الذي يمكن الحصول عليه بالضبط باستخدام جميع الكعك المتاحة بأكثر الطرق ربحية.
مع الأسهم ، كل شيء ليس بهذه البساطة. على سبيل المثال ، اشتريت الزحافات ، والآن هناك خصم بنسبة 40 ٪ على قبعة ، ولكن في الوقت نفسه ، تم إلغاء خصم ترحيب بنسبة 10 ٪ على الطلب بأكمله. نعم ، نعم ، هذه حالة حقيقية :) ومن أجل إعداد مثل هذا الترويج في نظام الشراء ، تم دفع 3 مشاورات مع المورد ، ونتيجة لذلك حصلنا على العديد من الأمثلة حول كيفية تقديم عروض ترويجية أخرى مختلفة. دبلوماسية للغاية ، وبالنظر إلى تكلفة التشاور ، جيدة جدا اقتصاديا.
أظهر العمل التجريبي المفصل. وعدوا بتجميع الطيار بسرعة وعلى الفور للعمل.
شهرين مشروع تجريبي - نجعله في شكل موقع مباشر مع البحث في الدليل. البحث بالواجهات ونتائج البحث - مع الخصومات الشخصية ، يبدو الطيار وكأنه موقع رياضي ، وكنا نملأ نفس المنتجات. يم!
نضيف "Eloquence: 100" لرئيس قسمنا ، ويتم العرض التقديمي إلى العمل في هوراي! أنها تعطينا كارت بلانش لتطوير منصة التجارة الإلكترونية بأنفسنا.
وهذا يعني ، حافظ ، يا شباب ، فريق ، حافظ ، يا شباب ، الميزانية. تبريد مرة أخرى!
2 سنة سحب موقع في الإنتاج. نعم وقت طويل كل ما عرفناه آنذاك ، حاولنا فقط على نطاق النموذج الأولي. شخصين تشكل بسهولة فريق متماسك. والمهام التي "قطعناها" - على العموم ، كانت هذه رواية صغيرة من "Hello World" في التقنيات الجديدة. لقد أنشأنا بسهولة فرضيات جديدة ، اختبرناها بسرعة ، ولم يكن لدينا وقت للالتحاق بها ، وبالتالي ، وبدون ندم ، قاموا "بقتلهم". عندما أصبحنا 10 أشخاص ، قمنا بتقدير سرعة عملنا لأي شخص آخر. ووعدوا بمثل هذه المواعيد النهائية للمهمة ، التي تساوي فكرة جميلة ، مضروبة بحماسنا.
وضع مألوف؟ :)
ثم ، هل تعرف بالفعل ماذا سيحدث بعد ذلك؟
فخ رقم 1. "Extrapolator-Krutyshi"
من الواضح أن التقنيات الجديدة تبدو رائعة جدًا في العروض التقديمية وتظهر نتائج ممتازة في تطبيق الفئة "Hello World". لكن الواقع هو أبعد ما يكون عن ذلك.
لذلك هنا. نحن نأخذ المكتبة ، ونكتب مجموعة من رمز التطبيق. نحن نعتبر اختبارات الوحدة عبئًا (نحن باردون ونحرث على الأسرع من الصوت هنا ، الرمز حديث وما إلى ذلك). نقوم باستمرار بتغيير وتعديل API أثناء التنقل - حسنًا ، ما نوع الاختبارات الموجودة بجدية. وكل هذا تحت شعار "التحسين الأمثل لعملية التطوير" (نعم ، من المخيف الآن وصفها).
ثم كل شيء واضح جدا.
نحن طرح بناء جديد على uat. الرجال من رجال الأعمال يذهبون بكل سرور لاختبار هذا الشيء كله واضغط على أزرار. في بعض الأحيان يضغطون بشكل خلاق - يحدث شيء ما. ثم اذهب واكتشف ماذا فعلوا من أجل هذا. ولكن على الجانب الآخر من الشاشة ، ليس اختبارًا مملاً يقوم بنشر جميع الخصائص البيئية لك ، مع مراعاة الطقس في المنطقة ، ولكن العميل عاطل عن العمل. إنه ببساطة "لا يعمل". لذلك ، هو غير سعيد. اسأله - وسيكون غير سعيد بشكل رهيب !

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

ربما ، من الخارج ، يكون تقييم فعالية مثل هذا اليوم مرئيًا بشكل صحيح وصحيح. ولكن من الداخل - يمكن أن يكون مختلفا.
في حالتي ، كان انطباع مثل هذا العمل هو "لقد انتهيت ، أنا بارد ، لقد انسحبت". ليس دائمًا بوعي ، ولكن بغير وعي - دائمًا!
واتخاذ مقعد على ذلك ، لا تمزح. اتضح أن المقاييس الداخلية لنجاح الحركة قد تحولت من النتيجة إلى عدد الجهود المطبقة ومستوى ما حققته من إنجازات ، ومقدار ما عانيت منه ، ومحاولة حل المشكلة.
ربما هذا هو أسوأ فخ.
وعلاوة على ذلك سيكون أسهل وأكثر متعة :)
فخ رقم 3. "قوة مرحبا العالم"
كومة التكنولوجيا الخاصة بنا في تلك الفترة: ElasticSearch، Hazelcast، Pentaho، freemarker (والجافا التي أثبتت جدواها ، Spring، Tomcat، nginx). Freemarker لم يبلغ عن رسائل خطأ مفيدة للغاية. لكن يجب البحث عن عدة مرات في البحث مطاطي ، Hazelcast ، Pentaho - وجدنا موهبة الحالات التي لم تعمل كما هو محدد في الوثائق.
من السهل البدء ووجبة الزنجبيل السريعة من استخدام التكنولوجيا الجديدة ، ولكنهما يبدآن في النشوة ويقللان من اليقظة. لأن التكنولوجيا الجديدة تحتوي على أخطاء ، فهي تحتوي بالضرورة على أخطاء. وإذا لم تكن قد كتبت عنهم بعد - ابتهج ، فالأمر متروك لك لأن تصبح الرائد الذي يلتقط شيءًا ملتوية على أي حال ويذهب إلى google أو على SO. بالطبع ، يمكن العثور على "ملتوية" في المنتجات التي أثبتت جدواها ، ولكن في منتجات جديدة يكون أسهل بكثير.

رغم كل الصعوبات ، دخلنا في الإنتاج. نعم ، مع التخلف. نعم ، ليست مستقرة جدا. ولكن إلى حد كبير - لا كوارث.
إجمالاً ، ألاحظ مرة أخرى الفخاخ التي يتم فيها تشويه الإدراك السليم لعملية العمل.
- "الاستقراء صعبة" . نظرًا لإعجابنا بالنجاحات الحالية ، نذهب ونستنتج بسرور سرعة التطوير للمشاريع القادمة.
- "ستاخانوفيتس" . نحن نعمل من أجل البلى ، نحن راضون عن أنفسنا ، لكننا لا نلاحظ أن المشاكل التي نحلها هي نتيجة لأخطائنا الشخصية / أوجه القصور / الإهمال. يعمل لا ينبغي القيام به.
- "قوة مرحبا العالم . " نسارع بتقديم جميع أحدث وأشهر الإنتاج.
لماذا العمل بها
بالطبع ، لم أذكر كل الأخطاء التي ارتكبناها خلال هذا الوقت ، ولكن الأكثر شيوعًا ، وهو الاحتمال المحتمل لمشروع لأي تفاصيل. يساعد إصلاح الخطأ هذا في تجنبها في المستقبل.
قليلاً حول الطريقة التي تمكنا بها بشكل عام من إنشاء مثل هذا بدء التشغيل المصغر داخل الشركة وإقناع الشركة بالانتقال من النظام الذي تم شراؤه بالفعل إلى شيء من نوعه.
الشرط رقم 0 . مناخ صحي في الشركة. هذه ليست فقط "العيون المحترقة" للموظفين والتواصل الاجتماعي في الظروف العصيبة لاستخراج ملفات تعريف الارتباط ، لا. هذا عن كل التفاعلات.
الشرط رقم 1 . نؤمن بما تفعله. على محمل الجد ، لا أعتقد أننا سنحصل على بعض الفرص على الأقل إذا كنا قادرين على القيام بتجربة دون الاضطرار إلى فهم النظام الذي تم شراؤه "إلى الترباس" - وهذا هو ، التراجع ومعرفة اللاوعي أن هذا النظام أكثر برودة وأنه مشغول معنا.
ما فعلناه: 1) اكتشف نظام الشراء ، حيث قام بحل الطلبات الأساسية من العمل 2) قام بتجميع قائمة من المهام التي لن تكون موجودة الآن فقط ، ولكن سيكون في المستقبل المنظور 3) قد اختار حلًا يعمل بشكل أفضل. وبعد ذلك ، تقييمنا للقرار - كان تقييما للخبراء.
هل سيعطوننا شيئًا إذا ما جئنا للتو وقالوا ، "شباب ، كل هذه القمامة ، لا نريد التعامل مع هذا وقررنا فعل شيء من الصفر"؟ بالكاد. وكانت الإجابة قد وردت في شكل يتذكره جيدًا :)
الشرط رقم 2 . الخطوة الأولى صغيرة. نحن نولد الفرضية الأولى ونتحقق منها. يمكنك قضاء وقتك الشخصي على هذا. إذا كنت لا تريد أن تضيع وقتك ، فعليك ألا تأخذ مثل هذا الشيء على الإطلاق. وإذا كنت لا ترغب في اختبار فرضية صغيرة ، ولكنك تريد أن تفعل ذلك على الفور ببراعة وببراعة ، ابتعد عن هؤلاء الأشخاص!
كنا محظوظين ، والفرضية الأولى تعمل. لكن هذا لا يحدث دائما. على سبيل المثال ، في أحد المشاريع التالية ، عندما تمت ترقية المشرف كجزء من نسخة تجريبية مماثلة ، كان الخيار الثامن عشر هو الخيار الأمثل لنا. وأهدرت أول 17 نهج للقذيفة. بالمناسبة ، في القصة مع إنشاء منطقة المشرف ، كانت التحولات والانعطافات على مستوى السلسلة البرازيلية ، لأن الفريق كان يتكون من اللاعبين ، في ذلك الوقت بالفعل قدامى المحاربين ، "kalachs الحقيقي المبشور".
الشرط رقم 3 . نحن نفعل MVP والبحث عن الألم في صانع القرار. بالطبع ، يمكن أن ينعكس الرعب على وجهه بالفعل من حقيقة أنك تجلب له نوعًا من المغامرة للمرة الثلاثين. لكن لا يزال. وتأكد من توضيح كيفية حل مشكلاتنا مع منتجاتنا بالضبط.
الشرط رقم 4 . على الركبة ، سنصنع بسرعة طيارًا يبدو وكأنه النتيجة النهائية. إن جعل كل شيء رائع حقًا أمر مغر ، ولكن يمكنك أن تصادف الكمال ، لأنه تبين أنه بدلاً من الإصدار التجريبي تريد عرض نسخة تجريبية من منتج مثالي بالفعل. لكنها غير موجودة. لذلك فقط اصنع العصي على الأقل.
الشرط رقم 5 . المنتج. المشروع ينمو ، ويحصل على الموارد المالية ، ويأتي الخبراء بتجربة قوية.
وإذا كنت من الشركات الناشئة الكلاسيكية ، فهذه هي اللحظة التي تحتاج فيها إلى إلقاء اللوم على صفارة الحكم. لأن الرحلات الجوية الخفيفة في الجزء العلوي والشعور بالخير العام لما يحدث يتم تفريقها بسرعة.
الدخول في المنتج هو تصادم مع الأحمال الحقيقية ، والتكامل مع عشرات الأنظمة ، وعندما تنشئ وظائف جديدة ، ستنتهي من النسخ القديمة كجزء من الصيانة. كل هذه تحديات أكثر خطورة من طرح فكرة وحلها ، وإن كان ذلك جيدًا ، ولكن مشكلة عميل واحد فقط.
هذه هي التحديات ، ونمو المهارات - يحدث بالضبط في هذه المرحلة.
شكرا للقراءة. كود جديد سعيد!