من الصعب أن تكون مشرف مشروع مفتوح المصدر

أرسلت بواسطة سالفاتوري Sanfilippo ، مطور ومشرف على محرك قاعدة بيانات Redis المجانية

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

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

انهيار جليدي من الطلبات


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

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

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

تغيير الدور


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

لفعل ما أحب ومعرفة كيفية القيام بعمل جيد ، عليك أن تشعر مثل الخراء.

وقت


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

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

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

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

خوف


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

جدال


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

عبث


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

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

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


All Articles