本ブログは Behind the scenes of running Linux kernel Mentorship Programs (By SHUAH KHAN | 2023年4月4日) の参考訳です
Bing Image Creator で作成された画像。コンピューター端末に座ってシェル スクリプトをプログラミングする Linux ペンギンとデジタル アートを観察する若い赤ちゃんペンギン
私たちはLinux カーネル メンターシッププログラムを年に3回実施し、各セッションで 25 人を指導しています。このブログでは、プロジェクトの作成から応募審査、メンターシップを受ける方の選考、セッションの運営、メンティー(指導を受ける人)をゴールまで導くまでの舞台裏をお伝えします。
プロジェクトの定義
プロジェクトの概要を明確にすることが重要な最初のステップです。プロジェクトの詳細には、プロジェクトの範囲と概要、プロジェクトを完了するために必要なスキル、メンティーがプログラムを通じて学ぶことが期待できるスキルと成果を含める必要があります。
メンティーは、プロジェクトに貢献できるようになるまでに数週間かかります。メンターシップ プログラムの期間内に完了できるように、プロジェクト作業の範囲を設定することが重要です。学習曲線を考慮して、作業をどのように分割してプログラム時間内に収めるかを検討します。
もう1つの重要な側面は、プロジェクトの卒業要件を決定することです。これはプロジェクトの性質によって異なる場合があります。パッチや機能追加へ貢献した数の最小数がその一例です。
評価基準は、対応したパッチの数に加えて、プログラム中に課題を完了することや、説明や実証を重視した学習など、他の措置を講じる必要があります。プログラムの終わりに最後のレポートとしてブログを書くことなどがそれに当たります。このブログは、メンティーが Linux Foundation Mentorship Showcase で自身の活動を発表する候補者として招待された場合に役立つ記事となります。
スクリーニング プロセスを作り上げる
次のステップは、スクリーニング プロセスがどのようなものであるか考え作り上げることです。スクリーニング プロセスとはどのようなものでしょうか、また、誰がプログラムに受け入れられる適切なスキルを持っているかをどのように評価するのでしょうか?重要なことは、 各プロジェクトの最低合格基準に関する計画を立てることです。これは、スクリーニング テストを完了した全員を受け入れるのと同じくらいシンプルになるでしょう。
最初のステップは、必要なスキルセットから評価基準を導き出すことです。たとえば、Linux カーネル開発者になるには、C とシェルの熟練度が重要になります。コアとなる技術スキル以外にも、重要となる基準がいくつかあります。以下は、誰がオープンソース開発者に適しているかを評価するために求めるべき全体的なスキルのリストです。
- コミュニケーション スキル
- 割り当てられたスキル テストを実行できる能力
- リソースを見つける調査スキル
- フィードバックを受け取り、それに基づいて行動するオープンさ
上記を評価するには、形式に制約のない自由なスキルのテストが適しています。オープンソース開発者として活躍するには、コミュニケーション スキルが非常に重要です。メンティーから提出されたカバーレターや履歴書の中で明確に記載されたこのプログラムに対する目標を探し、メンティーがプログラムの参加に何を求めているかを評価します。さらに、彼らの技術スキルとコミュニケーション スキルを把握するために、コーディングやパッチ作成の課題も実施します。パッチの動作を記述したコミット ログを含めたパッチを生成することや、パッチに対するフィードバックはコミュニティにおけるコミュニケーションや協力する能力を示す良い指標となります。
応募および選考プロセスの際に、フルタイムまたはパートタイムの参加希望に関する質問を含めることをお勧めします。この情報は選考のプロセスで役立つ情報であり、時間を節約できます。
すべての Linux カーネル メンターシップ プロジェクトでは、コミュニティと協力する方法を理解するために、申請者がLinux カーネル開発の初心者ガイド (LFD103) を完了する必要があります。この作業を終えることが、実際のプロジェクトの作業に備えたいくつかのスキルの習得やテストになります。評価テストは、プロジェクトの範囲やその作業内容に応じてプロジェクトごとに異なる場合があります。
さらに、プロジェクトが Linux カーネルのバグを修正するためのものである場合、スクリーニング テストは基本的なデバッグ スキルを評価し、利用可能な Linux カーネル機能、スクリプト、デバッグ ツールを学習するための入門書として機能するように設計されています。このスクリーニングのアプローチにより、申請プロセス中の学習が促進されます。私の経験では、メンティーがたとえ選ばれなかったとしても、学習の観点からこの種の選考を高く評価しています。
選考プロセス
適切なスクリーニング プロセスと選択基準があれば、選考は簡単になります。しかし、適切なスクリーニング プロセスと選考、評価基準があったとしても、特にプロジェクトに多数の応募があった場合、適切なメンティーの選択には依然として時間と労力がかかる可能性があります。Linux カーネル メンターシップ プロジェクトには、通常、セッションごとに 250 件以上の応募が寄せられます。
通常、私は選考プロセスが始まるまでに、各応募者の能力については十分に把握しています。この時点までには、スクリーニング テストやその他のタスクの割り当てが完了している各応募者のコードやパッチのレビューは終えています。
プロジェクトのキックオフ
スクリーニング テストと課題を完了したメンティー全員を受け入れます。この数は最大 25人 になる場合があります。この人数を指導するにはいくつかの課題があり、オーバーヘッドを最小限に抑えるために慎重な計画が必要です。詳細については、プロジェクトの実行方法について説明するときにお話しします。
選考プロセスが完了し、メンティーの受け入れが完了すると、私はプログラム期間中に期待すること、卒業要件を説明したウェルカム メールを彼らに送ります。
メンティーが卒業するために必要となる最小のコントリビューション件数を設定します。ドキュメント、テスト、その他のカーネル領域にわたる複雑さに応じて、5~10個のパッチが適切な数です。たとえば、プロジェクトが Linux カーネルのバグを修正するためのものである場合、私はメンティーに、プログラムの最初の2週間で重点的に取り組む分野を、関心に基づいて2つ選ぶように依頼します。このプロセスは柔軟性をもち、パッチがまだレビュー中であり、サブシステムのツリーであっても受け入れます。さらに、メンティーによるその他の説明や実証を重視した学習も考慮に入れます。
プロジェクトの実行
前述したように、多くの人を指導するには、指導のオーバーヘッドを削減する計画が必要です。グループごとに1時間のオフィス アワー セッションを週に2回開催することは、時間を短縮し、メンティー間のグループ ディスカッションを促進して、お互いから学ぶことができるようにする良い方法です。私は、チャットや Discord のチャンネルでつながり、お互いに学び合うことを推奨しています。このアプローチは非常に成功しています。
オフィス アワーは、主に質問に答え、リソースを共有し、必要に応じてツールやデバッグ手法をデモンストレーションすることに重点が置かれています。最初の2週間は、メンティーが重点分野を決定するのを助けるように指導をします。これらのセッションは対話型であり、メンティー全員の参加を促進します。メンティーは、グループ セッション中にリソースや取り組んでいるパッチを共有します。メンティーはアップストリームのメーリング リストと linux-kernel-mentees メーリング リストにパッチを送信し、他のメンティーが自分のパッチをレビューできるようにします。パッチをレビューすることは、レビューのスキルを学ぶのに役立ち、プロジェクトへの貢献を続ける場合、長期的に有益です。
プログラムの進行に応じて、週に2回のセッションが必要な場合は打ち合わせを持ちます。フィードバックに基づいて、週1回のセッションに減らす可能性があります。
学び、活用し、貢献する: それがオープンソースのやり方です
これは私一人でやるものではありません。Linux カーネルのドキュメントやLF Live: Mentorship Seriesなどの既存の学習リソースを活用するために、コミュニティからの支援を得ています。充実した学習の機会を提供するために、私は見つけられるすべてのリソースを利用します。いくつかの重要な領域でリソースが不足している場合は、Linux カーネル コミュニティの専門家に連絡して、LF Live Mentorship シリーズの一環としてインタラクティブなウェビナーを主催します。専門家やメンターが十分な帯域を確保できていない場合、専門知識を共有するためのウェビナーの開催には多大な労力がかかります。
すべてが完了、それともまた始まるのか?
プログラムの終わりに、メンティーは作業、最終レポート、ブログを完成させて卒業します。しかし、メンタリングはメンティーが卒業しても終わりではありません。LFX メンターシップ ショーケースの準備としてスライドの確認を続けます。数人の卒業したメンティーが引き続き私と共に指導し、そのサイクルが次のセッションから再び始まります。
著者について: Shuah Khan は、Linux Foundation フェローであり、アップストリームのカーネルのメンテナーおよび開発者です。
資料
- 「オープンソースにおけるメンターシップ」 Linux Foundation の研究論文
- LFX メンターシップのホームページ
- LF Live:メンターシップ シリーズ
翻訳協力 : 松本央