クロクロクロ

しがない英語好きなSE。IT、翻訳記事、洋楽、ゲームのこととか。

How do you get programmers to join your project? 翻訳

 
筆者・・・Jeremy Garcia
LinuxQuestion.orgというLinuxのユーザーコミュニティの設立者。
 
プログラマーをプロジェクトに引き込む方法
 
私がとある言語で書かれたプロジェクトを引き継いだとしよう。開始当初のプログラマーは去っていて、誰も保守しようとはしていなかった。
今はGit hubにアップロードされ、GPLv3のライセンスを持つ。
 
毎日使っているツールで、できれば廃止したくなかった。自分の少しのプログラミング言語GUIプログラミング知識では保守することは不可能であった。
この状況から助けてくれる一人もしくはそれ以上のプログラマーをどうやって見つけられるのだろうか?
過去僕は2、3人のプログラマーを見つけた。しかし、どれだけ手を尽くしても誰も仕事が上手く行く前に去ってしまった。
 
答え
 
この質問は非常に多かった。だからThe Queueに質問を寄せてくれたみんなに感謝したい。プログラマーはとても需要が高いし、彼ら自身多くのサイドプロジェクトを持ってることが多い、だから君のプロジェクトに参加させるのは一種の挑戦といってもいい。
僕から君に捧げる最初の提案は、参加してもらうに当たって現実的な期待を持つことだ。プロジェクトに高い関心を持っているか、仕事上参加が必須となるプログラマーを見つける以外では、すんなり保守担当になる人物を見つけるのは不可能に近い。保守担当としての献心性と責任感は重視すべきである。
とは言っても、君のプロジェクトを見て興味を持った人が常に活躍するエースになってもらうための確かな秘訣はいくつかある。
 
 
プロジェクト紹介とメッセージ
 
プロジェクトの分かりやすい概要は非常に重要だ
 
  • 何をするのか
  • 誰のために
  • 違いは何か
  • いつどこで使われるのか
 
一見シンプルだが、プロジェクトに長く関わっている者にとってはつい忘れがちなものだ。しかも外からだと見えにくい。
多くのプロジェクト、特に小規模のものはこれらの情報を見逃しがちで、非常に見つけづらく、そしてあったとしても分かりづらい。結果として多くのプロジェクト、特に小規模のものはこれらを見落としてしまう。GitHubを使っているのなら、README.mdがこの概要の置き場だ。
(GitHub外のREADMEも同じ用途で使える)。概要は簡潔で、かつ君がプロジェクトにとって重要だと思う情報が明確かつ理路整然と表現できるほどの長さであるべきだ。
 
貢献してもらうためのガイドライン
 
君のプロジェクトに実際に参加するにあたっての情報を含んだCONTRIBUTINGファイルを作るべきだ(もしGitHubを使っているならCONTRIBUTING.mdでもいい)。その中には環境構築、ビルドの具体的な手順、コーディング規約やフォーマット(もしあれば)、テストの情報、パッチの実行手順、プルリクとレビュー手順、その他一緒に作業するために必要と考えられるもの全てを含める。GitHubはそういう情報の置き場として最適だ。保守者の観点からすると、そういった資料はいかに上手く一緒に働けるか簡潔に伝えられるべきである。そして作業者としては、その資料を軽くチェックすることで彼らの成果は保守者のガイドラインに沿ったものであると確認できる。
 
 
明瞭ではっきりと定義された”取り掛かり”
 
新しくメンバーになりえる人材が最初にぶつかる壁の一つは、いつプロジェクトに参画すべきか、である。単に今上がっている課題を担当してもらうのは簡単かもしれないが、取り掛かりとして小さい単位ではっきりと定義されたタスク表は新しいメンバーとの衝突を減らしてくれる。
 
行動するきっかけを持たせること。小さなUIの問題、翻訳、ちょっとした修正は新しいメンバーにこのプロジェクトが自分に合うかどうか見極めるために、君たちのコードベースに慣れてもらうきっかけを与える。君達のコードに慣れてもらった後、次のステップとして小さなパッチをリリースするのは悪くない。
 
コード品質とドキュメント
 
プログラマーはいくらか興味を持てるプロジェクトに参加する傾向がある。
それとは別に、彼らに快く協力してもらう必須条件は素晴らしいコードベースだ。高品質のドキュメントがある設計が良いコードは他のメンバーが素早く作業する助けになり、作業者が途中で”君のコードに慣れる”ことができずに離れてしまうのを防げる。
 
 
最初の作業をサポートする
 
 
プロジェクトが小さくなるほど、クラッキングでパッチの実行が失敗するのは容易い。
新しいメンバーにとって、返事が無いこと、たとえコードは素晴らしくとも忙しいスケジュールで返せない場合でもその場合彼らは今後も手伝ってくれる可能性は低いだろう。加えて、彼らのコード全てが基準の品質に達していないとして、コードを却下する君の断り方は彼らがプロジェクトに入るかどうかを決定づける。モチベーションが高く、メンバーになりうる人を見つけ、指導できる作業者が既にプロジェクトにいるというのは非常に重要だ。もし陰険で冷たい態度をとれば、貢献者は品質の高いコードを提供しないだろう。それどころか違うプロジェクトに行ってしまうだろう。
 
オンラインだけで探さない
 
GitHubのような素晴らしいツールが使えると、将来の貢献者はどこでも見つけられるというのを忘れがちだ。カンファレンス、地域のミートアップ、他の勉強会といった選択肢は良いリソースになりえるこれらを忘れるべきでないし、見落としてはならない。
 
実際のところ新しい、もしくは小さいプロジェクトのためのメンバーを見つけるというのは簡単ではない。しかし、これまで挙げた秘訣は非常に重要である。参加してもらうための明確なガイドライン、手始めの簡単なタスク、そして友好的かつ建設的なフィードバックループはメンバーを成長させ、将来継続的な貢献者になるための助けになるだろう。