Ruby開発のAdvent calendarの4日目です。本日はOSS参加での学びを書こうと思います。
数年経験を積んで開発はある程度できるけどOSSにはまだ参加したことない方に読んでもらえると嬉しいです。
自己紹介🙋♂️
経験5年程のエンジニアです。最近はRubyとReactを書いている事が多いです。
現在は福岡県に住んでいます。
OSS参加のきっかけ
まず私がOSSをちゃんと認識したのは今在籍している会社に転職してきたタイミングです。
社内にRubyのコミッターが2名在籍されていてすごいなと思った記憶があります。
その後、社内の勉強会でOSS活動についての発表を聞いたりと意識する機会は何度かありました。
特に、RubyKaigiで登壇された方のエンジニアの話を聞いた時と、
10月に開催されるhacktoberfestのイベントを知った時は印象に残っています。
大きなきっかけは、11月から社内でOSSに挑戦する人を増やそうという動きがあったためです。
やったほうがいいんだろうなと思いつつ通ってこなかった道なのでこの機会にやってみようと思いました。
参加したもの
こちらのリポジトリにPR出しました。
オーナーのsuketaさんに感謝です🙏
やったことは、テスト追加・GitHub Actionの設定変更・CAHNGELOG変更とかなり小さいものです。
気付いたこと&感じたこと
自分より経験値の高い方のコードは読むだけでも単純に勉強になるとか初級者でも貢献できる部分があるとか、そういうものはもちろん感じました。
ベタなのでそれ以外の気づきと感想を書きます。
① CHANGELOGひとつでも学びがある
CHANGELOG.mdに書くだけ、という小さなものでも学びがありました。
以下が私が作ったPRになります。
CHANGELOG.md
に記載したbump duckdb 0.6.0
という記述です。
いきなり非常に細かいですがbump
という英単語。
「バージョンを上げる」という意味です。普通にversion up
とかで済ましていましたし、特段馴染みがない英単語ではないので深く調べおらず、今回初めてちゃんと知りました。
その後いくつかリポジトリ回ってコミットログなど確認しましたが普通に使われていました。
そして、バージョンアップから派生して番号の振り方も改めて調べました。
(たぶん何回も調べてる。)
正直なところ『CHANGELOGの変更は誰でもできるのだから他の方に譲ろうかな』と思っていましたがいざ取り組んでみると小さなPRでも学びがあることに驚きました。
② コンプレックスが薄くなった
経験が増えているにも関わらずOSSに一度もPR送ったことないのは個人的に軽いコンプレックスを感じていました。
(コンプレックスと言いますか、優秀なプログラマーは多少なりともOSS開発を経験されている方が多いイメージなのでそれに近づいておきたい、という感じです)
まずはOSS参加に挑戦することということで、コンプレックスが薄くなりOSSが身近になったので良かったです。
最初のハードルを今回超えれたのでいずれはちゃんとロジックが絡む開発に取り組んでいければと思います。
③ もう一つのプロジェクトに参加している感じ
すごく当たり前かもしれないですが
普段の仕事で言うところの参加しているプロジェクトがもうひとつ増えた感じでした。
新規で開発プロジェクトに参加すると通常以下のような作業が発生すると思います。
- リポジトリを見れる権限を与えられて
- そのプロジェクトのルールを一通り共有してもらって
- まずは小さいタスクから担当して開発を進めて
- 徐々にドメイン知識とソースコードの理解が進んで大きな開発も担当する
まさに上記のような感じで、1は公開されていて、2はCONTRIBUTING.md
やリポジトリによってはcontribute guideが整備されたりしていて、issueを見れば3,4があるという感じです。
新しいプロジェクトに参加した方が、同じプロジェクトをずっと続けるより成長速度が速くなると思っていて(色んなパターンのコードや開発文化に触れられるため。)、成長を求めるという意味でもOSSいいなと思いました。
おまけ: OSS参加する時に参考になるかもしれない情報
good first issue
good first issue というラベルがついたISSUEが取り組みやすい
OSS Gate
OSS開発に参加する人を継続的に増やすことを目的にしたイベントがある
10月にOSSのイベントがある
hacktoberfestと言うOSS活動を広めるために行われているイベントが10月に開催されてます。
条件を満たしたOSS活動を行うとオリジナルTシャツがもらえるものです。
Qiita内にも記事上がっているみたいなので気になる方は見てみてください。
おわりに
今回小さなコントリビュートですが学びがあった良い経験になりました。
いずれは高品質な開発で貢献できればと思います。
みなさんもまずは小さいコントリビュートから始めてみてはいかがでしょうか。
それでは Happy Hacking!