مرحبا جميعا!
هذا العام Embox شاركت بوصفها منظمة التوجيه في جنة مظالم الشرطة برنامج . في هذا المقال أود أن أتحدث عن هذا ، في رأينا ، تجربة ممتعة للغاية.
سأقول بضع كلمات عن برنامج GSoC نفسه. Google Summer of Code هو برنامج Google العالمي الذي يهدف إلى إشراك الطلاب في عالم مفتوح المصدر. نتيجة لذلك ، قام الطلاب بتحسين جودة الكود ومحو الأمية التكنولوجية والمهارات في عمليات التنمية. تم تحسين هذه الصفات بسبب حقيقة أن الطلاب يشاركون في مشاريع صناعية حية مع عمليات تطوير متطورة بشكل كاف. يجب أن يكون هذا هو الدافع الرئيسي لمشاركة الطلاب في هذا البرنامج. الدافع وراء المنظمات الإرشادية هو في المقام الأول تطوير وتوسيع مجتمع المشروع.
قليلا عن القواعد الرسمية. يسمح فقط للمجتمعات التي تمثل مشاريع مفتوحة المصدر للبرنامج. مشروع يحتوي على مستودع ، ولكن من المحتمل أن يفشل مطور واحد فقط ، لأنك تحتاج إلى تخصيص وقت للطلاب. يجب على المنظمة التي ترغب في المشاركة في البرنامج ملء استبيان قصير ، والإعلان عن اثنين على الأقل من المسؤولين وملء صفحة بالأفكار المقترحة للطلاب. يتضمن الاستبيان وصفًا موجزًا وتفاصيل الاتصال ورابطًا لصفحة فكرة. بعد ذلك يأتي اختيار المنظمات. عندما يتم قبول مشروع بناءً على نتائج الاختيار ، يتم نشر بطاقة المشروع على صفحة مؤسسات التوجيه الخاصة بالبرنامج ، ويبدأ اختيار الطلاب.
يعد اختيار الطلاب مرحلة صعبة للغاية بالنسبة للموجهين. لأول مرة ، عملت Embox كمنظمة توجيهية في برنامج GSoC. وكنا غير مستعدين إلى حد ما لكثير من الأشخاص الراغبين في المشاركة في البرنامج. بشكل رسمي ، يتم اختيار الطلاب على أساس المقالات (المقترحات) ، حيث يتحدث المتقدمون عن المهام التي يرغبون في إكمالها من خلال المشاركة في المشروع وكيف ينوون القيام بذلك. بالطبع ، تحتوي المقالة على بيانات تُستخدم عادةً في السيرة الذاتية ، أو يمكن طلبها ، ولكن من غير المحتمل أن تكون هذه المعلومات كافية لفهم ما إذا كان الطالب سيتمكن من تحقيق النتائج المرجوة. هذه هي الصعوبة الرئيسية للموجهين في هذه المرحلة من البرنامج.
في مشاريع مختلفة ، يتم التعارف والاختيار بطرق مختلفة. عند مناقشة القضايا المتعلقة بالاختيار في القائمة البريدية لمرشدي GSoC ، أوصى شخص ما بمقابلة على Skype ، أو شخص ما لإكمال مهام الاختبار ، أو شخص ما لرؤية سيرة ذاتية مفصلة. في Embox ، قررنا القيام بما يلي. للمشاركة في البرنامج ، كان من الضروري أولاً أن أقدم نفسي من خلال كتابة رسالة قصيرة إلى أحد موجهي المشروع. ثانيًا ، أكمل مهمة واحدة على الأقل من القائمة الموجودة على جيثب. وثالثاً ، اكتب مقالاً رسمياً على موقع البرنامج.
النقطة الأولى لم تسبب أي صعوبات خاصة. نعم ، كان هناك بعض الطلاب الذين قدموا مقالات دون حتى تقديم أنفسهم ، لكننا ببساطة لم نأخذها في الاعتبار. سأشرح النقطة الثانية قليلاً. لدى Embox ، مثل جميع المشاريع المطورة إلى حد ما ، عمليات تطوير خاصة به ، وعادة ما يفتقر الطلاب ببساطة إلى ممارسة المشاركة في المشاريع الصناعية والموزعة. علاوة على ذلك ، Embox هو نظام تشغيل. عادة ما يكون هذا مجالًا جديدًا من حيث الممارسة للطلاب. وقبل أن تبدأ في تحسين المشروع على الأقل شيء ما ، عليك أن تتعلم كيفية إنشاء الكود وتشغيله وتصحيحه وإجراء تغييرات عليه ، وفهم العمليات المعتمدة في المشروع ، ونفس سير عمل git ، وما إلى ذلك.
لم نرغب في القيام بمثل هذه الأشياء في المرحلة النشطة من البرنامج ، وحاولنا القيام بذلك في المرحلة الأولية. لقد أنشأنا مهام إصدار أول جيد بسيطة للغاية تهدف إلى فهم عمليات المشروع ، والحد الأدنى من المعرفة بلغة C ، والقدرة على قراءة الوثائق والبحث عن المعلومات على الإنترنت. في الواقع ، كنا على ثقة من أنه بعد الانتهاء من هذه المهام ، سيتمكن الطالب من إجراء بعض التغييرات في الكود وإعداد طلب سحب.
في هذا الصدد ، تم اعتبار المتطلبات الأساسية للإيداع الرسمي للتطبيق مستوفاة. لكن يمكن للطلاب الاستمرار في المشاركة في المشروع من خلال إكمال المهام الأخرى من القائمة على github واقتراح التحسينات والتغييرات الخاصة بهم. كان الطلب الوحيد الذي تلقيناه هو عدم تناول الإصدار الثاني من "جيد أولاً". أردنا أن يحصل الجميع على فرص متكافئة ، واتضح أن إنشاء الكثير من المهام البسيطة كان مهمة شاقة. من جميع النواحي الأخرى ، حاولنا مساعدة جميع الطلاب المهتمين ، من قواعد إعداد العلاقات العامة والعمل مع git ، وشرح بنية المشروع وميزاته.
هؤلاء الطلاب الذين استمروا في المشاركة في المشروع كلما أمكن ذلك كتبوا مقالات جيدة للغاية. هذا ليس مفاجئًا ، لأنهم بهذه الطريقة تمكنوا من التعمق أكثر في المشروع ، والشعور بالمهمة التي يرغبون في إكمالها ، واكتساب الخبرة فقط.
اختلفت العديد من مقالات هؤلاء الطلاب ليس فقط في وضع خطة العمل ، ولكن أيضًا في الموضوعات. تم نشر قائمة بالموضوعات المقترحة على صفحة الأفكار الخاصة بنا ، لكننا اعتبرناها في البداية مجرد توضيح للاتجاهات المحتملة. وكنا سعداء للغاية عندما بدأوا يقدمون لنا موضوعاتهم الخاصة.
من المهم بالنسبة لنا أن يتعامل الطالب مع موضوع يثير اهتمامه. نرى هذا على أنه دافع إضافي للطلاب. لكن ، بالطبع ، الموضوع الخاص بك ليس شرطا مسبقا. كانت لدينا موضوعات شيقة للغاية ، وأراد العديد من الطلاب ، حتى منغمسين في المشروع ، التعامل مع موضوع من القائمة المقترحة.
نتيجة لهذه الفترة ، تم تقديم أكثر من 30 مقالة إلى المشروع. كان هناك ما لا يقل عن خمسة طلاب جيدين جدًا لم يستوفوا الحد الأدنى من المتطلبات فحسب ، بل تواصلوا معنا أيضًا في مهام أخرى ، وحاولوا الوفاء بها ، وعرضوا أفكارهم الخاصة ، بشكل عام ، وأظهروا اهتمامًا بالمشروع. لكن لسوء الحظ ، بعد نتائج التوزيع ، حصلنا على فتحتين فقط للطلاب ، وكان علينا تقريبًا رمي عملة معدنية. لحسن الحظ ، كما اكتشفنا بعد ذلك بقليل ، ذهب بعض الطلاب الجيدين إلى مشاريع أخرى.
اخترنا اثنين من الطلاب إريك Cafferata و يوتا ساكاموتو... كلاهما جاء بأفكارهما الخاصة. تطبيق Erick لوضع جهاز USB لـ STM32. يقوم Yuta بترحيل Embox إلى لوحة MAiX-Bit بهندسة RISC-V. ومن المثير للاهتمام أن كلاهما كان لديه مهام من قائمتنا في البريد الإلكتروني الترحيبي. ولكن ، كما هو متوقع ، بعد التعمق في المشروع ، قاموا بصياغة أفكارهم بشكل أفضل.
كانت المرحلة التالية في الخطة الرسمية للبرنامج هي مرحلة التعارف ، عندما يتواصل الطلاب عن كثب مع المجتمع ويستمرون في دراسة المشروع. نظرًا لأن كلا الطالبين كانا مشتركين بالفعل في المشروع ، فقد كان الأمر أشبه باستمرار بمعارفهما بالنسبة لهم. بالطبع كان هناك اختلاف. نظرًا لأننا نعرف بالفعل الموضوعات التي يتعين على الطلاب تنفيذها ، فقد قدمنا لهم مهامًا قريبة من المناطق المختارة.
نتيجة لهذه المرحلة من البرنامج ، تم الانتهاء من العديد من المهام التحضيرية ، والتي ، في رأيي ، سمحت للطلاب بالتحرك بنجاح أكبر وفقًا لخططهم في المستقبل.
في الصيف ، بدأت المرحلة الرئيسية من البرنامج - مرحلة التطوير ، ونتيجة لذلك يجب أن يظهر رمز جديد. تنقسم هذه المرحلة إلى ثلاثة أجزاء ، كل منها لمدة شهر. بعد كل جزء ، يتم إجراء الشهادة. يتوقع من الطلاب العمل بالتساوي. وبناءً على نتائج كل شهر ، يجب أن نؤكد أن الطلاب يسيرون على الطريق الصحيح.
في الممارسة العملية ، لاحظنا نشاطًا طلابيًا مختلفًا. في بعض الأحيان بدا أن النشاط كان أقل مما كان عليه في المرحلة الأولية. اتضح أنهم بدأوا جلسة أو كانوا مثقلين بالدراسات ولم يتمكنوا من تخصيص الوقت الكافي للمشاركة في البرنامج. لكنهم عملوا بشكل مثمر للغاية في فترات أخرى. اتضح أن هذا كان يحدث ليس فقط في مشروعنا. كنتيجة لقمة الموجهين ، تم اقتراح تبسيط القواعد والسماح للطلاب ومؤسسات التوجيه بالاتفاق على جدول عمل الطلاب.
التواصل هو جزء مهم من تطوير الفريق. بالطبع ، لدى Embox ، مثله مثل المشاريع مفتوحة المصدر الأخرى ، آليات الاتصال الخاصة به بين المطورين. Embox لديه محادثات برقية ( الإنجليزية ، الروسية، news ) والقوائم البريدية (بالإنجليزية (embox-devel [at] googlegroups.com) والروسية (embox-ru [at] googlegroups.com)).
لكن ، بالطبع ، لا أريد أن أجعل بعض الأشياء التي تتم مناقشتها مع الطلاب للجمهور. بالإضافة إلى ذلك ، يشعر الطلاب أحيانًا بالحرج من طرح الأسئلة في الدردشة العامة. بالإضافة إلى ذلك ، GSoC هو برنامج دولي وللبعض هناك حاجز لغوي. كتب أحد طلابنا أنه من الصعب عليه التواصل باللغة الإنجليزية. نتيجة لذلك ، للتواصل مع كل طالب ، أنشأنا محادثات خاصة ، حيث كان هناك موجهان: أحدهما رئيسي والآخر مساعد. تم الاتصال الرئيسي حول مشاريع محددة في هذه المحادثات. بالطبع ، تم الاتصال المشترك للمشروع في الأماكن المشتركة للمشروع ( telegram chatأو جيثب ).
لكن ، بالطبع ، يركز الجزء الأكبر من البرنامج على التنمية. في المراحل المبكرة ، كان على الطلاب اتباع إرشادات الجهات الخارجية. يتم استنساخ المستودع ، وتطوير وحدة نمطية ، وعرض العلاقات العامة ، ومراجعة هذا المستند ، والموافقة عليه ، ثم دمجه في مشروع. وهذا يعني أن مطوري الطرف الثالث يستخدمون المستودع الخاص بهم. للتحقق من التغييرات ، تحتاج إلى التبديل إلى هذا المستودع. هذا جيد عندما يتعلق الأمر بالاختبار فقط ، ولكن عندما يتعلق الأمر بنصيحة أو مهمة واحدة يتم تطويرها بواسطة عدة أشخاص ، يمكن أن تضيف التعقيد. لتجنب ذلك ، تمت إضافة كلا الطالبين إلى فريق Embox وبالتالي سمحا لهم بإنشاء فروع في المستودع الرئيسي. نتيجة لذلك ، اتضح أن هذا هو القرار الصحيح ، لأنه في المرحلة النهائية من البرنامج ، عملنا عن كثب مع الطلاب ،واتضح أن الطلاب اكتسبوا خبرة في تطوير الفريق.
أكمل كلا الطالبين البرنامج بنجاح. أظهر Erick العرض الصحيح لـ STM32 المتصل بجهاز كمبيوتر باستخدام الأداة المساعدة lsusb. ويوتا أظهرت تحكم LED باستخدام الأداة المساعدة قيادة Embox . بالطبع ، أراد Erick أيضًا إضافة وظائف بعض الأجهزة ، بل قام بتطوير ECM-ACM (مركب افتراضي). وأراد Yuta إضافة دعم لوحدة التشفير. لكن هذا كان تقديراً لمدى تعقيد العمل المقترح. أجد النتائج التي تم الحصول عليها في ثلاثة أشهر في منطقة معقدة مثل برمجة الأنظمة رائعة. والأهم من ذلك ، حصل الطلاب على خبرة كبيرة في العمل الجماعي ، وتعرّفوا بشكل أفضل على عالم المصادر المفتوحة وحسّنوا مهاراتهم الفنية بشكل كبير.
ستشارك PS Embox في الجلسة الخاطفة عبر الإنترنت للمؤتمر الدولي لمطوري ومستخدمي البرامج المجانية Linux Vacation / Eastern Europe - LVEE 2020 Online Edition (Lightning) في 19 ديسمبر .