Hallo, alle miteinander!
In diesem Jahr nahm Embox als Mentoring-Organisation am GSoC- Programm teil . In diesem Artikel möchte ich darüber sprechen, unserer Meinung nach eine sehr interessante Erfahrung.
Ich werde ein paar Worte über das GSoC-Programm selbst sagen. Google Summer of Code ist das globale Programm von Google, mit dem Schüler in die Open Source-Welt einbezogen werden sollen. Infolgedessen haben die Schüler die Codequalität, die technologische Kompetenz und die Fähigkeiten in Entwicklungsprozessen verbessert. Diese Eigenschaften werden dadurch verbessert, dass die Studierenden an Live-Industrieprojekten mit ausreichend entwickelten Entwicklungsprozessen beteiligt sind. Dies sollte das Hauptmotiv für die Teilnahme von Studenten an diesem Programm sein. Die Motivation von Mentoring-Organisationen ist in erster Linie die Entwicklung und Erweiterung der Projektgemeinschaft.
Ein wenig über die formalen Regeln. Nur Communitys, die Open Source-Projekte vertreten, dürfen am Programm teilnehmen. Ein Projekt mit einem Repository, aber nur einem Entwickler wird wahrscheinlich scheitern, da Sie den Schülern Zeit widmen müssen. Eine Organisation, die an dem Programm teilnehmen möchte, muss einen kurzen Fragebogen ausfüllen, mindestens zwei Administratoren deklarieren und eine Seite mit Ideen ausfüllen, die den Studenten vorgeschlagen wurden. Der Fragebogen enthält eine kurze Beschreibung, Kontaktdaten und einen Link zu einer Ideenseite. Als nächstes folgt die Auswahl der Organisationen. Wenn das Projekt basierend auf den Auswahlergebnissen angenommen wird, wird die Projektkarte auf der Seite der Mentoring-Organisationen des Programms veröffentlicht und die Auswahl der Studenten beginnt.
Die Auswahl der Studenten ist für Mentoren eine sehr schwierige Phase. Zum ersten Mal fungierte Embox als Mentoring-Organisation im GSoC-Programm. Und wir waren etwas unvorbereitet auf so viele Leute, die bereit waren, an dem Programm teilzunehmen. Die Auswahl der Studierenden erfolgt formal auf der Grundlage von Aufsätzen (Vorschlägen), in denen die Bewerber über die Aufgaben sprechen, die sie durch die Teilnahme am Projekt erfüllen möchten, und wie sie dies beabsichtigen. Natürlich enthält der Aufsatz Daten, die normalerweise in einem Lebenslauf verwendet werden oder angefordert werden können, aber es ist unwahrscheinlich, dass diese Informationen ausreichen, um zu verstehen, ob der Student die gewünschten Ergebnisse erzielen kann. Dies ist die Hauptschwierigkeit für Mentoren in dieser Phase des Programms.
Bekanntschaft und Auswahl finden in verschiedenen Projekten auf unterschiedliche Weise statt. Bei der Erörterung von Fragen im Zusammenhang mit der Auswahl in der Mailingliste für GSoC-Mentoren empfahl jemand ein Interview über Skype, jemanden zum Ausführen von Testaufgaben und jemanden zum Anzeigen eines detaillierten Lebenslaufs. Bei Embox haben wir uns für Folgendes entschieden. Um an dem Programm teilnehmen zu können, musste man sich zunächst vorstellen, indem man einen kurzen Brief an einen der Projektmentoren schrieb. Zweitens, erledige mindestens eine Aufgabe aus der Liste auf Github. Und drittens schreiben Sie einen offiziellen Aufsatz auf der Programmwebsite.
Der erste Punkt verursachte keine besonderen Schwierigkeiten. Ja, es gab einige Studenten, die Aufsätze eingereicht haben, ohne sich vorzustellen, aber wir haben sie einfach nicht berücksichtigt. Ich werde den zweiten Punkt ein wenig erklären. Embox hat, wie alle fair entwickelten Projekte, ihre eigenen Entwicklungsprozesse, und normalerweise fehlt den Studenten einfach die Praxis, an industriellen und verteilten Projekten teilzunehmen. Darüber hinaus ist Embox ein Betriebssystem. Dies ist normalerweise ein neuer Bereich in Bezug auf die Praxis für Studenten. Und bevor Sie anfangen, das Projekt zumindest etwas zu verbessern, müssen Sie lernen, wie Sie den Code erstellen, ausführen, debuggen und ändern, die im Projekt verwendeten Prozesse, den gleichen Git-Workflow usw. verstehen.
Wir wollten solche Dinge in der aktiven Phase des Programms nicht tun, und wir haben versucht, dies in der Vorphase zu tun. Wir haben sehr einfache Good First Issue-Aufgaben erstellt, die darauf abzielen, die Projektprozesse, minimale Kenntnisse der C-Sprache, die Fähigkeit zum Lesen von Dokumentationen und die Suche nach Informationen im Internet zu verstehen. Tatsächlich waren wir zuversichtlich, dass der Schüler nach Abschluss solcher Aufgaben einige Änderungen am Code vornehmen und eine Pull-Anfrage vorbereiten kann.
Damit wurden die vorläufigen Voraussetzungen für die offizielle Einreichung der Anmeldung als erfüllt angesehen. Die Schüler könnten jedoch weiterhin an dem Projekt teilnehmen, indem sie andere Aufgaben aus der Liste auf Github erledigen und ihre Verbesserungen und Änderungen vorschlagen. Die einzige Bitte, die wir hatten, war, nicht die zweite gute erste Ausgabe zu nehmen. Wir wollten, dass alle die gleichen Chancen haben, und viele einfache Aufgaben zu erstellen, erwies sich als entmutigende Aufgabe. Im Übrigen haben wir versucht, allen interessierten Studenten zu helfen, angefangen bei den Regeln für die Einrichtung von PR und die Arbeit mit Git bis hin zur Erläuterung der Architektur und der Merkmale des Projekts.
Diejenigen Studenten, die, wann immer möglich, weiterhin an dem Projekt teilnahmen, schrieben sehr gute Aufsätze. Dies ist nicht überraschend, da sie es auf diese Weise geschafft haben, tiefer in das Projekt einzutauchen, die Aufgabe zu spüren, die sie gerne erledigen würden, und einfach nur Erfahrungen zu sammeln.
Viele der Aufsätze dieser Studenten unterschieden sich nicht nur in der Ausarbeitung des Arbeitsplans, sondern auch in den Themen. Wir hatten eine Liste mit vorgeschlagenen Themen auf unserer Ideenseite veröffentlicht, aber wir betrachteten sie zunächst nur als Demonstration möglicher Richtungen. Und wir waren sehr glücklich, als sie uns ihre eigenen Themen anboten.
Für uns ist es wichtig, dass sich der Student mit einem für ihn interessanten Thema befassen kann. Wir sehen dies als zusätzliche Motivation für Studenten. Aber natürlich ist Ihr eigenes Thema keine Voraussetzung. Wir hatten sehr interessante Themen, und viele Studenten, die sogar in das Projekt vertieft waren, wollten sich mit einem Thema aus der vorgeschlagenen Liste befassen.
Infolge dieses Zeitraums wurden mehr als 30 Aufsätze für das Projekt eingereicht. Es gab mindestens fünf sehr gute Studenten, die nicht nur die Mindestanforderungen erfüllten, sondern auch mit uns über andere Aufgaben kommunizierten, versuchten, diese zu erfüllen, ihre eigenen Ideen anboten und generell Interesse an dem Projekt zeigten. Leider haben wir aufgrund der Verteilung nur zwei Plätze für Studenten bekommen, wir mussten fast eine Münze werfen. Glücklicherweise gingen einige der guten Schüler, wie wir wenig später herausfanden, zu anderen Projekten über.
Wir haben zwei Studenten ausgewählt, Erick Cafferata und Yuta Sakamoto... Beide hatten ihre eigenen Ideen. Erick implementiert den USB-Gerätemodus für STM32. Yuta migriert Embox auf eine MAiX-Bit-Karte mit RISC-V-Architektur. Interessanterweise hatten beide Aufgaben aus unserer Liste in ihrer Begrüßungs-E-Mail. Aber wie erwartet formulierten sie nach einem tieferen Einblick in das Projekt ihre Ideen besser.
Die nächste Phase im offiziellen Plan des Programms war die Phase der Bekanntschaft, in der die Schüler enger mit der Gemeinde kommunizieren und das Projekt weiter studieren. Da beide Studenten bereits an dem Projekt beteiligt waren, war es für sie eher eine Fortsetzung ihrer Bekanntschaft. Natürlich gab es auch einen Unterschied. Da wir bereits wussten, welche Themen die Schüler umsetzen mussten, boten wir ihnen Aufgaben in der Nähe der ausgewählten Bereiche an.
Infolge dieser Programmphase wurden mehrere vorbereitende Aufgaben erledigt, die es meiner Meinung nach den Studenten ermöglichten, sich in Zukunft erfolgreicher nach ihren Plänen zu bewegen.
Im Sommer begann die Hauptphase des Programms - die Entwicklungsphase, aufgrund derer neuer Code erscheinen sollte. Diese Phase ist in drei Teile unterteilt, jeweils für einen Monat. Nach jedem Teil wird eine Zertifizierung durchgeführt. Von den Studenten wird erwartet, dass sie gleichmäßig arbeiten. Und basierend auf den Ergebnissen eines jeden Monats müssen wir bestätigen, dass die Schüler auf dem richtigen Weg sind.
In der Praxis haben wir unterschiedliche studentische Aktivitäten festgestellt. Manchmal schien es sogar, dass die Aktivität geringer war als im Vorstadium. Es stellte sich heraus, dass sie eine Sitzung begonnen hatten oder mit Studien überlastet waren und nicht genügend Zeit für die Teilnahme am Programm aufwenden konnten. In anderen Perioden arbeiteten sie jedoch sehr produktiv. Es stellte sich heraus, dass dies nicht nur in unserem Projekt geschah. Als Ergebnis des Gipfeltreffens der Mentoren wurde sogar vorgeschlagen, die Regeln zu vereinfachen und es den Studenten und Mentoring-Organisationen zu ermöglichen, sich auf den Arbeitsplan der Studenten zu einigen.
Kommunikation ist ein wichtiger Bestandteil der Teamentwicklung. Natürlich verfügt Embox wie andere Open Source-Projekte über eigene Kommunikationsmechanismen zwischen Entwicklern. Embox hat Telegramm-Chats ( Englisch , Russisch, Nachrichten ) und Mailinglisten (Englisch (embox-devel [at] googlegroups.com) und Russisch (embox-ru [at] googlegroups.com)).
Aber natürlich wollen einige Dinge, die mit Studenten besprochen werden, nicht veröffentlicht werden. Außerdem ist es den Schülern manchmal peinlich, im allgemeinen Chat Fragen zu stellen. Darüber hinaus ist GSoC ein internationales Programm und für einige gibt es eine Sprachbarriere. Einer unserer Schüler schrieb, dass es für ihn schwierig sei, sich auf Englisch zu verständigen. Um mit jedem der Schüler zu kommunizieren, haben wir private Chats erstellt, in denen zwei Mentoren anwesend waren: ein Haupt- und ein Helfer. Die Hauptkommunikation zu bestimmten Projekten fand in diesen Chats statt. Natürlich fand die für das Projekt gemeinsame Kommunikation an gemeinsamen Orten des Projekts statt ( Telegramm-Chat)oder Github ).
Aber natürlich konzentriert sich der Großteil des Programms auf die Entwicklung. In der Anfangsphase mussten die Schüler die Richtlinien von Drittanbietern befolgen. Ein Repository wird geklont, ein Modul wird entwickelt, eine PR wird angeboten, diese PR wird überprüft, genehmigt und dann zu einem Projekt zusammengeführt. Das heißt, Entwickler von Drittanbietern verwenden ihr eigenes Repository. Um die Änderungen zu überprüfen, müssen Sie zu diesem Repository wechseln. Dies ist in Ordnung, wenn es nur um das Testen geht, aber wenn es um einen Ratschlag oder eine Aufgabe geht, die von mehreren Personen entwickelt wird, kann dies die Komplexität erhöhen. Um dies zu vermeiden, wurden beide Schüler dem Embox-Team hinzugefügt und konnten so Zweige im Haupt-Repository erstellen. Infolgedessen stellte sich heraus, dass dies die richtige Entscheidung war, da wir in der letzten Phase des Programms ziemlich eng mit den Studenten zusammengearbeitet haben.und es stellte sich heraus, dass die Schüler Erfahrungen in der Teamentwicklung sammelten.
Beide Studenten haben das Programm erfolgreich abgeschlossen. Erick demonstrierte die korrekte Anzeige von STM32, das mit dem Dienstprogramm lsusb an einen Computer angeschlossen war. Und Yuta demonstrierte die LED-Steuerung mit dem Dienstprogramm Embox . Natürlich wollte Erick auch einigen Geräten Funktionen hinzufügen und entwickelte sogar ECM-ACM (Virtual Comport). Und Yuta wollte Unterstützung für das Verschlüsselungsmodul hinzufügen. Dies war jedoch eine Unterschätzung der Komplexität der vorgeschlagenen Arbeit. Ich finde die Ergebnisse, die in drei Monaten in einem so komplexen Bereich wie der Systemprogrammierung erzielt wurden, beeindruckend. Und vor allem haben die Schüler eine großartige Erfahrung in der Teamarbeit gesammelt, die Welt von Open Source besser kennengelernt und ihre technischen Fähigkeiten erheblich verbessert.
PS Embox wird am 19. Dezember an der Online-Blitz-Sitzung der Internationalen Konferenz der Entwickler und Benutzer von Freier Software Linux Vacation / Osteuropa - LVEE 2020 Online Edition (Lightning) teilnehmen.