ソフトウェア

オープンソースの開発現場で新人を迎え入れるために取り組むべき10個のこと

By chrisliverani

人材不足はどこの職場でも共通の問題ですが、せっかく新人を迎え入れても、受け入れ体制が不十分では最悪の場合、新人がすぐ辞めてしまうことも考えられます。カリフォルニア大学でデータサイエンスを研究するダン・ショラー氏らのチームが、オープンソースソフトウェアのプロジェクトにおいて新人を迎え入れ、プロジェクトの一員として成長させるために何をすべきかを語っています。

Ten simple rules for helping newcomers become contributors to open projects
https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1007296

◆1:新人を歓迎する
オープンソースプロジェクトにおいては親切かつ丁寧な社会環境が必要だとショラー氏は述べています。単に歓迎するだけでなく新人のモチベーションを向上させるために、たとえばプロジェクトのソーシャルメディアページやフォーラム、メーリングリストで新人に自己紹介をさせたり、歓迎のメッセージを投稿したりすることが効果的とのこと。

また、新人の能力に合った仕事をあっせんし、新人がプロジェクトに必要な存在であると実感させることも重要となります。ショラー氏は優先度の低いバグや問題を既存のメンバーに修正しないよう依頼し、新人に任せることで「新人に適した仕事」を作り出すことを推奨しています。また、新人がためらわず質問ができるよう、1~2人の指導係を任命しておくことも推奨されています。

By krispaparo

◆2:プロジェクトを分類する
プロジェクトが新人を迎えるために最初に行うべき重要なステップは、プロジェクトが新人の興味と能力に適しているかどうかを判断することです。そのためには新人が何を学習したいのか、プロジェクトのコミュニティに何を還元したいのかを理解する必要があります。

たとえばLibreOfficeのように、開発者が必要なスキルと難易度によってタスクを分類するなど、プロジェクトごとに必要なスキルの種類を明示しておくことで、新人が自分に適したプロジェクトを選べるようになるというわけです。

By landb

◆3:ガバナンスを明示する
プロジェクトの運営を円滑にするには、プロジェクトのガバナンスを明示し、誰がリーダーとなって何を決定する権利があるかを明確にしておく必要があるとショラー氏は述べています。

ショラー氏はリーダーを決める方法を3つに分けて紹介しています、まず、プロジェクトの創設者がリーダーになるということです。できて間もないプロジェクトや小さなプロジェクトでは一般的なリーダーの決め方ですが、あまりいい方法であるとは言えず、別の人間がリーダーシップを得る可能性が考えられます。


次に、一人のリーダーを決めるのではなく、コミュニティ全員が決定権を持つという方法があります。ショラー氏は例としてマーサの規則を挙げています。誰でも提案を提出できる代わりに、ほぼ全員の同意を得られないと採用されないというルールです。

三つ目の方法は、リーダーになれる人間の条件を設けることです。資格の保有や、プロジェクトの在籍年数など、条件を満たした人間の中から選挙などでリーダーを選出します。

By campaign_creators

◆4:情報を最新にしておく
プロジェクトの新人も、Wiki、GitHubのファイル、メールアーカイブなどから必要な情報にアクセス可能な状態にしておくことが重要であるとショラー氏は語ります。情報を一カ所にまとめておくことで、新人はすぐ必要な情報にアクセスして疑問を解決でき、新人の自信と意識を高くすることができるとショラー氏は述べています。また、古い資料は新人を誤解させる可能性があるので、情報は常に新しくしておく必要があります。

また、見つけやすい場所にマニュアルやガイドラインを置くことも効果的です。たとえば、GitHubが推奨する方法に従ってCONTRIBUTING.mdファイルにマニュアルを配置したり、Apache Open Office Suiteなどのように、ウェブ上にアクセスできるマニュアルや学習モジュールを置く方法があります。

By glennoble

◆5:行動規範を設ける
コミュニティリーダーは経験に基づいて、コミュニティ内の行動規範を明示する必要があります。行動規範を設けることで、異なる文化的背景を持つ人々でもプロジェクトにアクセスしやすくなります。

既に存在する行動規範を採用することも効果的です。rOpenSciNumPyProject Jupyterなどの多くのプロジェクトはContributor Covenantを採用しているか、SciPyの行動規範を実施しています。

プロジェクトリーダーは違反のあった者に対して、口頭または書面での警告、メーリングリストのようなプロジェクトのコミュニケーション手段へのアクセス権の剥奪、プロジェクトからの排除など、どのような罰則があるか公表する必要があります。違反者が罰せられない場合、コミュニティは行動規範が無意味であると思いかねません。

By kylejglenn

◆6:メンバーが参加しやすいプロジェクト形態を作る
新人は、シンプルでリスクの低いタスクをこなすことで、プロジェクトの一員となります。GitHubなどのコミュニティで働く場合、コードのコミットやプルリクエスト送信などのコアアクティビティを行うことは、新人にとっては荷が重いもの。その代わり、バグに気付いたときに問題を報告したり、翻訳やローカライズに関するドキュメントを新人に手伝わせたりすることが推奨されています。

プロジェクトに参加する複数の方法を設けることは、新人がコミュニティに参加しやすくなり、技術を求められる作業だけがプロジェクトの仕事ではないということを新人に理解させることができます。

By mimithian

◆7:新人がすぐに仕事を始められるようにする
新人がプロジェクトに参加しやすくなる方法として、新人がすぐに作業に取りかかれるようにすることが重要だとショラー氏は述べています。「助けたい」から「助けられる/助けている」とプロジェクトに取り組む意識が変化することは、誰もが通る道です。ステップアップの中で問題が発生すると、新人のコミュニティ参加に対する大きな障壁となります。できる限り多くのセットアッププロセスを自動化し、理解に時間がかかるものを文書化しておくことで、時間を短縮することができます。

By bruno_nascimento

◆8:対面でのやり取りを重視する
オープンソースソフトウェアプロジェクトは、メールやビデオを介して通信するリモートワーカーが多くなります。対面で会話することは、相互理解を円滑にするのに役立ちます。そのため、対面でのやり取りに新人を参加させることが重要です。新人向けのイベントを設け、会議などの大規模な集まりに新人を参加させることで、参加者の経済的費用や負担も軽減されます。

内向的だったり、対面での会話に自信がなかったりするメンバーにとっては、対面でのコミュニケーションに不快感を感じるかもしれません。しかし、ミーティングに参加しないとコミュニティの一部であると感じられなくなる可能性があります。

複数名で顔を合わせてコミュニケーションを行う際は、すべてのメンバーが会話内容を把握できるように、簡単なメモ程度の情報共有を行うべきです。チャットログをスクリーンに表示させる、ホワイトボード上にメモを書いた付箋を貼るといった方法が例示されています。

By youxventures

◆9:すべての仕事を認める
新人の仕事を認め、その仕事に感謝することが重要だとショラー氏は述べています。メンバーがプロジェクトのために割いてくれた時間の大切さを認識し、残業のような形で時間を犠牲にしないよう注意を払う必要があります。

ただ感謝するのではなく、すべてのプロジェクトがどのような作業で構成され、どのように業務を遂行するかを説明するガイドラインを公表して、仕事の公平性を確保する必要があります。プロジェクトによって作成されたデータを誰がどのような目的で使用できるか、プロジェクトを遂行した者にどのような報酬を与えるか、著作権は誰が持つのかを簡潔な資料にして作成しておくことが推奨されています。

By anniespratt

◆10:成功と失敗のフォローアップ
新人が最初の仕事を終わらせた後、プロジェクト内で新人をどのように助けることができるかについての改善策を考える必要があります。新人が取り組むべき次の課題を見つける手助けをし、次に現れる新人を助けられるように新人を育成することは、新人が学んだことを復習する良い機会にもなります。

また、辞めてしまったメンバーについて分析することも重要です。与えた仕事が適切でなかったか、与えた仕事を始めるためのセットアップが難しすぎたのか。または、コミュニティに不快感を持っていなかったか、過小評価されていると感じていなかったかなどについても考慮すべきです。ほとんどの場合、メンバー個人との会話は機密にしておく必要がありますが、メンバーが辞めた原因に関する結論と是正措置をコミュニティに公開することは、コミュニティ構築に真剣であることを示す「最良の方法」とショラー氏は語っています。

By jtylernix

この記事のタイトルとURLをコピーする

・関連記事
ソフトウェア設計者がステップアップのために心がけるべき8つの習慣 - GIGAZINE

起業して成功したハッカーが選ぶ「必ず読むべき一般書籍」19選 - GIGAZINE

1000倍速で学んでジェネラリストになる方法を1万時間の「学習」を達成した人が語る - GIGAZINE

あらゆる分野で役に立つ科学や法律から導かれた「11の普遍の法則」 - GIGAZINE

リーダーとして有能になるための7つのヒントをOracleのヴァイス・プレジデントが語る - GIGAZINE

in ソフトウェア, Posted by log1m_mn

You can read the machine translated English article here.