قصة مشروع واحد: عندما لا يكون لدى فريق مطور كبير



من مترجم: ننشر لك مقالة للمطور Jack Finlay. يتحدث جاك عن قضيته الخاصة - محاولة لتنظيم العمل كفريق من الصغار ، حيث الجميع متساوون ولا يوجد مدير فني. هذه المقالة ستكون مفيدة للمبرمجين المبتدئين.

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

توصي Skillbox بما يلي: دورة تدريبية لمدة عامين "أنا مطور ويب للمحترفين" .

نذكرك: لجميع قراء "Habr" - خصم بقيمة 10،000 روبل عند التسجيل في أي دورة تدريبية في Skillbox باستخدام الرمز الترويجي "Habr".

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



الخبرة الشخصية والقيادة


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

الفريق ليس لديه خبرة. جميعنا تقريباً طلاب ، ولم يكن هناك من قادنا. ثم لم يبدو من الضروري بالنسبة لنا.

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

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

مجموعة الأدوات

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



قواعد البيانات

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

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

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

تم ترحيل قاعدة البيانات وتحديثها يدويًا. هذا يعني ... نعم ، كنا نضيع الوقت مرة أخرى.

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

الأداء

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

كان لدى الكثير منها أجهزة بطيئة للغاية تم استخدامها لسنوات عديدة. لوحات المفاتيح ولوحات التعقب - كل هذا يحمل طابع الوقت.

الخوادم كانت بطيئة أيضا ، كما ذكرت أعلاه. نتيجة لذلك ، تباطأت عملية التطوير بأكملها. تقدم الاختبارات أيضا ببطء.

الاستنتاج بسيط ، في أسلوب هوية الشركة ، هو إعطاء المطور المعدات والموارد التي يحتاجونها لعملية التطوير العادية.

تحكم المصدر


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

التكامل والنشر

عموما لم يكن لدينا أي حلول CI / CD. كان النشر بسيطًا: قمنا بنسخ الموارد من المجلد المدمج ولصقها على الخادم باستخدام Remote Desktop. إذا فعلت شيئًا مشابهًا ، يمكنك فهم ألمي.

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

نصيحتي هي اختيار حل CI / CD لنفسك.

مراقبة الجودة


عنصر آخر مهم في عملية التطوير هو مراقبة الجودة.



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

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

اختبار

لم يكن لدينا منهم كذلك. أجرينا الاختبارات بمفردنا. مرة أخرى دون خبرة. نتيجةً لذلك ، قضينا وقتًا ثمينًا قضيناه في اصطياد الأخطاء والتخلص منها.

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

جودة الرمز



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

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

كود السباغيتي

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

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

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

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

الخاتمة


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

قائد فريق جيد سيحل كل هذه المشاكل. كان يتوقع الكثير قبل ذلك.

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

توصي Skillbox بما يلي:

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


All Articles