OSSコントリビュートに挑む!メンバー実体験レポート
みなさんこんにちは!ワンキャリアでソフトウェアエンジニアをしている大橋(Github:masa-oh)と佐藤(GitHub:seiya2130)です!
今回は、私たち2名のOSSコントリビュートに対するこれまでの取り組みをシェアしたいと思います!
ワンキャリアでは、OSSコントリビュートをエンジニア組織全体の取り組みとして定めており
個人のスキルアップを図りたい
個人のトラックレコードを作りたい
OSSコミュニティに貢献したい
といったモチベーションをもとに、OSSコミュニティに貢献できるエンジニア組織を目指しています。詳細については、別途記事で紹介していますのでぜひご覧ください!
ハードルが高いと思われていそうなOSSへのコントリビュートですが、それぞれどんな形で取り組んでいるかを振り返ることで、読んでいる方にとってより身近なものになれば幸いです。
それでは早速いきましょう!
大橋
まずは私が初めてOSSにコントリビュートした経験を、時系列で振り返ってみたいと思います。
1. OSSコントリビュートへの初挑戦
2023年10月、私はOSSへの初コントリビュートを目指して、まずは「Good First Issue」を探すことにしました。そこで役立ったサイトが、goodfirstissue.devです。
このサイトは、初心者向けのIssueを効率的に見つけることができ、非常に便利でした。
しかし、以下のような課題に直面し、結果的にはコントリビューションまで至ることなく挫折してしまいました。
放置されているIssueがある
何年も前に作成され、解決されないまま残っているIssueも一部ありました。これらの中には、すでに状況が変わっているものもあるため、どれが現実的に取り組めるものなのか判断に迷いました。
特定分野のIssue探しが難しい
最も使い慣れているRubyでのコントリビューションに興味があったのですが、ちょうどいい「Good First Issue」を見つけることが難しかったです。
他の開発者がすでに着手している
Issueの中には、すでに他の開発者が作業を進めているものも多くありました。
初回の挑戦は成功に至りませんでしたが、コントリビューションできそうなIssueを探すのはとても貴重な経験となりました。
2. 初めての成功体験
半年後の2024年4月、私は初めてOSSにコントリビュートすることができました。それは、Railsの日本語ガイドに翻訳漏れがあった箇所を修正するというものでした。
この時はIssueを探していたわけではなく、Railsをアップグレードしているときに偶然ドキュメントの不備を見つけたことでコントリビューションに至りました。この経験により、Pull Requestを提出するプロセスを理解することができました。
3. 2度目の挑戦
その後、2024年8月には、homebrew-caskのリポジトリで2件目のコントリビュートを行いました。
今回の貢献内容は、MAMPのインストーラに関連するCIエラーを修正するものでした。このIssueには「Good First Issue」のラベルがついていたため、スムーズに取り組むことができました。
4. OSSコントリビュートを促進する社内の取り組み
実は2度目のOSSコントリビュートに成功したきっかけとなったのは、社内で定期的に開催しているもくもく会でした。
ワンキャリアでは、個人のスキル向上やチーム全体の成長に繋げるため、OSSコントリビュートを推奨する風土があります。ONE CAREER開発チームでは現在、週に一度、金曜日の朝に集まってOSSコントリビュートに集中する時間を設けています。
このもくもく会では、各メンバーがそれぞれ興味のあるリポジトリや「Good First Issue」を選び、コントリビューションを行っています。初めての参加者でも、他のメンバーからアドバイスをもらいながら進めることができるため、参加者同士がサポートし合う環境が整っています。
また、この取り組みがメンバー同士のコミュニケーションを深め、チームワークの向上にも繋がっていると実感しています。OSSへの貢献を通じて得られる成功体験は、チーム全体にポジティブな影響を与え、モチベーションアップにも繋がっています。
学んだこと
Issueの探し方が分かった
よく言われていることではありますが、最初のコントリビュートを目指すのであれば、やはり「Good First Issue」を探すのが効率的です。 goofiというツールを使うと、GitHub上でスター数の多いプロジェクトの「Good First Issue」を言語別に調べることができ、とても便利です。
Pull Requestを出すプロセスが理解できた
一度PRを提出したことでコントリビュートの流れが理解できたため、機能開発など、より大きなコントリビュートに挑戦することにも抵抗がなくなった感覚があります。
スキル向上のマイルストーンとして役立つ
OSSコントリビューションは、技術的な成長や開発コミュニティへの貢献、そしてキャリアの発展においての明確な成果となります。私が行ったコントリビューションはまだ小さなステップではあるものの、さらなる能力向上への足がかりを得られたことで自信がつきました。
佐藤
私は、OSSのイベントに参加することから始めました!
今回はそのイベント参加について詳しくご紹介します。
1. OSSのイベント参加
OSSコントリビュートをやったことがないと1on1で上長に相談したところ、以下のOSS開発ビギナー向けのイベントを紹介していただきました。
このイベントは対象のOSSを決めて、サポーターの支援を受けながらコントリビュートしてみましょう!というワークショップです。当日は作業ログとしてIssueを立てて、そこに行った作業を書いていきました。
当日の作業ログ
対象のOSS決めに苦戦…!
最初はなかなか対象のOSSを決めることができませんでした。しかし、自分が普段使っているメニューバーに表示するタイマーについて、以前から「時間調整をボタンじゃなくてフォームで入力できるようにしたい」と考えていました。そのため、このOSSにコントリビュートすることに決めました!
まずは同じ要望を考えている人がいないかIssueを探してみると、時間調整をフォーム入力にしてほしいというIssueがすでに作成されていました。
そして、別のIssueで実装したことが書かれていました。
上記のIssueをよく見ると「このオリジナルのリポジトリがメンテナンスされているか分からないため、フォークしたリポジトリで実装した」というメッセージが書かれていました。フォーク先を見に行くと、オリジナルのリポジトリのIssueにあった機能が多数実装されていました。
結局、このイベント中には残念ながらコントリビュートすることができませんでした。しかし最後にサポーターの方から、「フォークしたリポジトリにローカライズファイルがあるから、日本語のローカライズファイルでコントリビュートできるかもしれません」とアドバイスをいただきました。
2. 日本語訳を直してみよう!
イベント後に改めてフォークされたリポジトリを確認すると、日本語のローカライズファイルが追加されていました。このファイルを確認したところ少し日本語に違和感のある箇所があったため、このファイルを修正しようと決めました!この修正はOSSコントリビューションの経験がある社内のメンバーとペアプロで協力し合いながら、自然な日本語訳になるように進めていきました。
翻訳の完了後ローカルでの動作確認も問題なかったため、プルリクエストを作成し無事マージされました。紆余曲折ありましたが、OSSに初コントリビュートすることができました!
学んだこと
OSSへのコントリビューションの流れが分かった
ライセンスの確認や既に同じIssueが作成されてないかを探すなど、OSSにコントリビュートする一連の流れが理解できました。
小さなコントリビューションでもOSSの開発者は嬉しいもの
イベント参加前は、「OSSコントリビュート=プルリクエストを作成する」と考えていましたが、サポーターの方から「Issueを作ってくれるだけでも開発者からしたら嬉しいもの」という説明がありました。OSSの開発者からするとIssueでも一緒にこのOSSを良くしようとするユーザーの意見のため、コントリビュートに対するハードルが低くなったと感じました!
自分がユーザーとして使っているOSSにコントリビュートする
普段から自分が使っているOSSに対して「こういう機能があると便利かも」「この部分を改善したい」という視点を持っていると、自分がユーザーであるため高いモチベーションで取り組めると思いました!
まとめ
大橋
次のステップとしては、「Good First Issue」にこだわらず、自分がよく使っているGemなどのリポジトリのイシューを積極的にチェックしていきたいと思っています。
また、TypeProfのように、実用化に向けて開発が積極的に進められているコードを読み込んで、コントリビューションできるポイントを探ってみるのも面白そうだと思っています!
佐藤
最初はできるか不安でしたが、無事にコントリビュートできて嬉しかったです!
OSS Gateのイベントで、一度体験してその門をくぐれば大したことはないという説明があり、やってみるとその通りだなと感じました。今回は簡単な変更でしたが、次は機能に関するコントリビュートをしてみたいと思います!
いかがでしたでしょうか?「OSSコントリビュート、興味があるな」「やってみたいな」という方にとって、少しでも参考になれば幸いです。
「人の数だけ、キャリアをつくる。」
ワンキャリアではミッション実現のために、事業・プロダクト開発を推進させる仲間を募集しています。弊社のエンジニア組織にご興味を持っていただけた方は、採用情報もチェックいただけると嬉しいです!
▼ワンキャリアのエンジニア組織のことを知りたい方はまずこちら
▼カジュアル面談を希望の方はこちら
▼エンジニア求人票