Richard Imaoka's Blog

2017年より職業Scalaプログラマになった、リチャード・伊真岡のブログです。

akkaというOSSに100コミットした話

akkaに2年3ヶ月ほどかけて100コミットしました

ScalaOSSにakkaという非同期プログラミング用のライブラリがあるのですが、 それに対して私の総コミット数が先日100に達しました

f:id:richard-imaoka:20180520170711p:plain

イェーイイ‼︎

最初のコミットから2年3ヶ月くらいかけて100コミット達成です。まずは自分を褒めたいwけど、それ以上にakkaのOSSメンテナの人たちの素早くかつ丁寧なレビューにいつも助けられた上での100コミットでした。

100コミットというと、どれくらいすごいのか

今のところ転職オファーが大量にドバァー!とかはありません。そんなに甘い世界ではありませんでした。

そして私は自分自身のことをakkaのエキスパートだなんて少しも思っていません。まだまだわからないことがたくさんあります。今もひとつひとつコントリビュートするたび、たくさんのことを調べながらのコントリビューションです。

反対に言えばそんな状態の私でも100コミットすることは出来ました。

100って、なんかインパクトありますよね?なんていったって3桁ですよ?2桁の一個上ですから。ドラクエだったら大ダメージです

コントリビューションを続けるコツ

大したことない私がOSSコントリビューションを続けられたのには、コツのようなものがあるにはあります。

まず、コントリビュートしやすいOSSプロジェクトを選ぶことです。

  • メンテナ・レビュワーは素早く反応してくれるか
  • 貢献しやすい簡単なイシューが多くありそうか?

という点が大事です。とはいえ最初から判断するのは難しいでしょうから、(GitHub上のプロジェクトなら)Pull Requestを数件送ってみて、あからさまに反応が悪すぎるとなったら、残念ながら別OSSプロジェクトに移る必要がありそうです。

そして最初から「画期的な機能を提案するんだ!」とかいうプライドをもたずに、ひたすら簡単なイシューを探して潰していくほうが当然コミット数は稼げます。ドキュメント更新系のコントリビューションは狙い目です。画期的な機能は事前に根回しをしておかないと、苦労して実装してもメンテナから拒否される可能性が高いです。画期的な新機能は、慣れてから取り組みましょう。

それから、最初の1コミットがうまくいったとしても、やはり継続していくのは難しいです。私の場合は仕事が忙しい時、akka以外の他の技術分野に興味が湧いた時、アイカツにハマった時…様々な理由でコントリビューションが途切れました。特に理由がなくてもやる気がなくなることだってしょっちゅうでした。途切れないのが一番ですが、途切れたら再開できそうな時に再開してみることです。私は長い時は数ヶ月の間隔をおいて再始動を繰り返し、合計したら2年3ヶ月経っていました。

OSSハッカソンについて

先ほど言ったように、まだまだ自分がエキスパートになったなんて全然思いませんが、OSSコントリビューションを続けている中で次にやってみたいことが見えてきました。

そのひとつがこれ、OSSハッカソンです。

osshackathon.connpass.com

せっかく自分がやって楽しかったOSSコントリビューションを一緒に頑張る仲間が欲しい、他の皆さんをサポートしてOSSコントリビューションを盛り上げていきたいと思ってます。自分一人でやるより、大勢でやった方が全体では成果がでますからね。

実は過去にScalaMatsuriというカンファレンスのなかでOSSハッカソンを実施しています。その時は参加者の皆さんに成果、つまりPull Requestを上げてもらうことができました。(下記のツイートはPull Requestを上げた人数は10人、Pull Request合計数は12という意味。全体の参加者は25人ほどでした。)

一度やってみて手応えを感じたので、ぜひ続けていきたいです。そのためにOSSハッカソンを継続運営していくコミュニティを新たに作りました。いつか、OSSハッカソン参加者の中からOSSメンテナが出て来たり、OSSハッカソンをきっかけに有名なOSSプロダクトが生まれたりしたら楽しいですね。

それでは、みんなでワイワイOSSコントリビュートしたい人はOSSハッカソンで会いましょう。ハッカソンに参加できない方でも、Slackへの参加は大歓迎です。Slackに関しては、ハッカソン当日もハッカソン期間以外も、質問や相談、雑談ができるスペースにしていきたいと思います。OSSコントリビューションに関する細かいノウハウも教え合えるようにしていきたいです。

ではまた!