プチ技術メモ

技術系の情報を中心に適当に書いています

OSSのContributorとして活動するということ

少し長くなります。

はじめに

去年から少しずつOSSプロジェクトで活動をしていますが、そのことについて感じていることを書いてみたいと思います。
ちなみに私は、地方の中小IT企業に勤務する普通のサラリーマンプログラマーであり、特別なスキルを持っている訳ではありません。少し変わり者で、最新技術への興味が人より強いというところはあると思います。

GitExtensionsへのPull Requestを投稿した経緯

まず、私が初めてPull Requestを送ったOSSのプロジェクトはgitextensions/gitextensions · GitHubになります。以下が私が投稿したPull Requestになります。

話は去年の9月頃に遡ります。当時、私はSVNのブランチ間のマージ管理に限界を感じてきていてsvnからgitへの移行を本格的に検討していました。移行を実施するに当たり、Windowsで使いやすいGUIクライアントがないか探していて、TortoiseGitとGitExtensionsを試しました。TortoiseGitはTortoiseSVNに近いUIを持つという利点はありましたが、そのためにGitの持つ強力なブランチ機能が犠牲になっている感じがあり、GitExtensionsを採用することに決めました。
しかし、そこには問題があり、当時のGitExtensionsは日本語のファイル名や日本語のコミットメッセージに関する、いくつかのバグが存在することが、事前調査にて判明していました。幸運にもGitExtensionsはC#で作られていて、直近のプロジェクトをC#で行った経験から、自力でその不具合を修正することができました。
そこで、せっかく直したのだからついでにPull Requestを投稿してみました。すると、GitExtensionsのコミッターのJanusz Białobrzewskiからすぐに反応があり、「こっちだと再現しないんだけど、詳しく教えてくれないか?」というようなコメントをもらい、非常に気軽な感じでやり取りをすることができ、OSSのプロジェクトに対する敷居をグッと下げることが出来ました。

GitLabにPull Requestを投稿した経緯

とりあえず、GUIクライアントの目処はつきましたが、次は使いやすいWEB UIを探す必要がありました。Gitに移行するついでに、見えないチカラ: A successful Git branching model を翻訳しましたにあるような、ワークフローの導入を検討していました。しかし、そのためには既に使用していたRedmineでは機能不足であり、GitHubにあるような"Pull Request"と"Network"の機能は必須であるように感じました。会社からGitHubを利用するお金を出してもらえる目処もなかった上に、IDとパスワードによる認証ではセキュリティ的に問題がありました。
色々と調べた結果gitlabhq/gitlabhq · GitHubを導入すれば、やりたいことは出来そうということが分かり、GitLabを導入することを決めました。そして、GitLabにプルリクエストを送ってみた - プチ技術メモにあるように、Networkに使いにくさを感じたため、自分で直してPull Requestを投稿しました。この時は、GitExtensionsで一度Pull Requestを投稿した経験があったので、当たり前のようにPull Requestを投稿したように記憶しています。

言いたいこと

結局、何が言いたいのかというと、GitHubにホスティングされているOSSプロジェクトにPull Requestを投稿することは、特別なことではなく、私のような普通のプログラマーこそ、どんどん挑戦すべきだということです。私の場合、職場の上司が私の技術的な取り組みに対して非常に寛容なところがあり、仕事の合間に色々と調査することが出来たことが大きかったと思いますが、少し頑張れば誰にでも出来ることだと思います。

それと、GitLabのContributorとして活動していて気が付いたことですが、日本人のContributorが本当に少ないです。GitLabは日本でもそこそこ人気であり、もっと日本人のContributorがいてもいい気がしますが、現在、継続的に活動しているのは私一人という状況です。OSSのContributorとして活動することにより、プログラマーとしての能力を飛躍的に高めることができると実感していますが、そこに参加する日本人が少ないことは非常にもったいないことだと思います。

最後に

最後になりますが、日本でOSSのContributorというと一部のスーパープログラマが趣味でやるもので、一種のボランティア活動というイメージがあります。そのため、普通のプログラマーがOSSで積極的に活動しようというインセンシティブが働かないのだと思います。一方、海外に目を向けるとGoogleやAmazonはOSSコミュニティに対して大きな投資を行い、それにより多数の優秀なプログラマを集めて、急速な成長を遂げています。日本においても、OSSでの活動を通してプログラマのキャリアアップが可能となるような環境があれば、OSS界隈で活動するプログラマが増えて、日本のIT技術の底上げに繋がるのではないかと思う今日この頃です。