OSSコントリビュートするときの「怖さ」に打ち勝つために
はじめに
ある日、新卒エンジニアのushmzくんはこう思いました。
「OSSコントリビュートしてみたい!!!楽しそう!かっこいい!」
でも同時にこうも思いました。
「…やっぱりこわい!!!!!」
OSS活動に初めてチャレンジするときの「怖さ」
怖いと思う理由はいくつかあったのですが、大きく分けて以下の2つの要因があるかなと思いました。
お作法がなにもわからない
OSSのリポジトリに初めて足を踏み入れるとき、READMEやCONTRIBUTINGガイドを読んでみても具体的にどう進めていいかピンと来ないことが多いです。例えば、コードスタイルやコミットメッセージの書き方、PRの出し方など、最初はとにかく混乱しました。特に「間違ったことをしてしまったらどうしよう」という不安が大きかったです。自分のPRの出し方が間違っていたり、迷惑をかけてしまったりするのではないかと想像すると、二の足を踏んでしまいました。
できそうなIssueがなかなか見つけられない
OSSへのコントリビュートを始めてみたい人におすすめされる方法として、”good first issue”のラベルがついたIssueを探してみることがよく言われていると思います。実際に探してみるのですが、思ったより数が少ないうえに見つけてもすでに誰かが取り掛かっていることが多かったです。
コントリビュートへの第一歩
そんなある日、普段使っているツールのリポジトリで突然メンションされました。恐る恐る通知を開いてみるとこう書かれていました。
Heads up@ushmz
(…) since you are/were usingdefault_path
- in the next version ofgh-dash
you'll need to tweak yourrepoPaths
configuration as in the example above.
ざっくり意訳すると、「君たちが使ってるオプションこのPRで削除するから次のバージョンに上げるときは気をつけてね!😉」とのことでした。
…なんてことはない親切な案内でした。ところがメンションされたことによって、該当のリポジトリがWatchされるようになり、IssueやPRの通知が届くようになりました。(たまたまとはいえ)これはいい機会だと感じたので、自分でもできそうなIssueがみつかるといいな…と思いながら普段使っている他のツールのリポジトリもWatchしてみました。するとしばらく受け身で通知を見ているうちに自分でもできそうなIssueが見つかりました。思い立ったときに調べるのもいいですが、普段からWatchしておくと受け身でも見つけやすいなと感じました。とはいえ通知はごちゃごちゃするので、チャネルを分けるなどしていい感じに整理したいですね。
実際にいくつかコントリビュートしてみて
実際にいくつかのリポジトリでPRを出してマージされたので、その時の感想をつらつらと書き記したいと思います。
1. 普段から使っているツールだと取り掛かりやすい
言葉にしてみると当たり前のことではあるのですが、普段使っていてある程度挙動を把握しているからこそ、コードの理解が比較的スムーズに進みました。挙動から逆算できる部分も少なからずあったことも要因の一つかなと思いました。また、ある程度出来上がっている初見のコードベースでも素早くキャッチアップして成果を出せるというのはエンジニアとしてキャリアアップをしていくうえで重要なスキルと言えると思います。OSSはそういったスキルを磨くいい練習になるのではないかなと思いました。
2. 気軽にできるちょうどいい大きさのものが多い
自分が取り組んだものは、どれもその日のうちにPRまで出せる規模のものでした。このサイズ感は初心者にとっては理想的で、「小さな成功体験」を積み重ねられているなと感じました。
3. 小さなPRもメンテナーの負担を軽減できることに気づいた
これは日々通知を眺めていて感じたことですが、多くのリポジトリでは、作成されるIssueの数に対してメンテナーの数が明らかに足りていない場合がほとんどです。コミュニティが形成され、複数人で対応しているリポジトリもありますが、メンテナーが1人や2人しかいないというリポジトリのほうが大多数だと思います。だからこそ、PRを出して協力できる人が増えることは、基本的に歓迎されることなんじゃないかなと感じました。少しの手助けでも、メンテナーにとっては非常にありがたい存在となることに気づいたのは、大きな学びでした。
おわりに
たまたまメンションが飛んできたのがきっかけになったとはいえ、OSSコントリビュートは想像していたよりも気軽に始められるものでした。自分の技術力を伸ばす練習にもなりますし、普段使用しているOSSに少しでも還元できるのはとても嬉しいことです。
もしこの記事を読んでいる方で、「怖いけど挑戦してみたい」と思っている方がいれば、まずは気になるツールやライブラリをWatchするところから始めてみてはいかがでしょうか?些細な一歩が、思いがけない成長や貢献につながるかもしれません。