初めまして、NTTドコモ 第二プロダクトデザイン部の星合です。 本日は、アドベントカレンダー3日目です。 今日はOSS製品のコミュニティ活動の取り組み例や私のモチベーションについて紹介します。
OSSとは?
知ってる方もいらっしゃるとは思いますが、簡単にOSSのおさらいをしておきます。
OSS(オープンソースソフトウェア)は、ソースコードが公開されており誰でも利用・改良・再配布できるソフトウェアのことを指します。 ソースコードが公開されていることにより技術者同士が知識を共有し、協力してソフトウェアの機能を改善したり、バグを修正したり発展させることが可能となっています。
OSSコミュニティ
OSSコミュニティとは、オープンソースソフトウェアの開発や維持に関わる人々の集まりであり、プロジェクトを支える重要な存在です。 コミュニティを通して様々なユーザや技術者が連携し協力し合うことでOSS製品が成長していきます。
例えば、私が参加していたPostgreSQLのコミュニティでは、例えば以下のような役割を持つ参加者が活動しています:
- ユーザー:ソフトウェアを利用し、フィードバックを提供
- 開発者:バグ修正や新機能の追加を担当
- 運営者:イベントの企画やコミュニティの管理
これらの役割が連携していくことで、OSSプロジェクトは成長を続けています。
OSSによっては運営や開発が一部の企業が中心にやっていることもありますが、
PostgreSQLのコミュニティではそういったものを排除しておりユーザーコミュニティ主導なOSSなのが特徴です。
OSS活動のモチベーション
私自身が実際にやってみて感じた、OSSコミュニティ活動に参加するモチベーションについて紹介します。
技術力の向上:
まずはやはり、自身のスキル向上です。
OSS活動をしていると自然と最新技術や課題どころなどそういったことに触れる機会が増えますし、開発をやり始めるとかなり専門的なスキルを同時に習得できます。
私は以前、障害対応を主な業務の一つとしていたため、ソースコードを読んで内部実装を理解したり、エラーログから原因の当たりをつけられるスキルは、日々の業務で非常に役立ちました。
現在の部署でも先日担当サービス以外のトラブル対応時にPostgreSQLの有識者として解析や改善提案をする機会があり、自身の仕事の幅や機会が広がっていることを実感できました。
ネットワークの構築:
社内だけではなく社外でも自身の立場を作れるのは貴重な機会だと感じています。 会社の枠に囚われず、様々な方と交流することで、新しい知見や最新の技術トレンドや業界情報もいち早くキャッチできます。 また、社外での自身の立ち位置や評価を確立することで、キャリアの幅も広がります。
自己成長と達成感:
OSS活動は、技術力以外にも様々なスキルを伸ばす機会になります。
多様なソフトスキルの向上: 開発者との議論を通じてコミュニケーション能力が、機能提案やバグ報告を通じてドキュメント作成能力が自然と身につきます。 また海外の開発者が多いプロジェクトでは英語でのやり取りが必須となるため、実践的な英語力も鍛えられます (OSSコミュニティは様々な国の人が参加しているため、多少不器用な英語でも積極的にコミュニケーションを取ってくれます)。
世界に貢献する達成感: 自分が報告したバグが修正されたり、翻訳したドキュメントが公開されたりすると、自分の貢献が目に見える形で世界中に届けられます。 誰にでも見える形で実績が積み上がっていくので一つ一つが大きな達成感となり、次の活動へのモチベーションに繋がります。 個人的にはやはりこの見える成果がOSS活動を続けられている大きな要因の一つだと思っています。
今までにやってみたこと
OSSのコミュニティ活動というと、どうしてもソースコードを書いて開発する人のイメージが最初は私もありました。 ただ実際参加してみると、OSS活動にもいろんな形があると思います。 私がPostgreSQLというデータベース製品のOSS活動をしていた時の事例ベースでいくつかご紹介します。
フィードバック提供:
製品を使った際のフィードバックが一番最初の貢献のきっかけになることが多いと個人的には感じています。 例えば、ドキュメントの表記ミスを見つけて報告したり、使っていて気づいた不具合を報告したり、こういう機能があるともっとユーザーは使いやすいといった要望を挙げたり、こういった小さな貢献から始めることができます。 また、パッチなど開発側の活動をしていると非常に利用者のフィードバックのありがたみを痛感しました。 実際に次の新機能や機能改善のネタにしていたりするので、ぜひ気軽なフィードバックを送ってみてください。
PostgreSQLの場合、公式サイトの「バグトラッカー」や「メーリングリスト」を通じてフィードバックを提供することができます。
私もOSSコミュニティに関わった初期は、ドキュメントの表記ミスを報告することから始めていました。
ドキュメントの表記ミスを報告した例

上記の表記ミスでは簡単な修正だったために、実際に以下のようなパッチを私が作り採用してもらいました。
diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 0bbb314..05d10f7 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -19,9 +19,8 @@ <para> There are several different ways of building PostgreSQL on <productname>Windows</productname>. The simplest way to build with - Microsoft tools is to install <productname>Visual Studio Express 2019 - for Windows Desktop</productname> and use the included - compiler. It is also possible to build with the full + Microsoft tools is to install <productname>Visual Studio 2019</productname> + and use the included compiler. It is also possible to build with the full <productname>Microsoft Visual C++ 2013 to 2019</productname>. In some cases that requires the installation of the <productname>Windows SDK</productname> in addition to the compiler. @@ -65,12 +64,12 @@ <para> PostgreSQL can be built using the Visual C++ compiler suite from Microsoft. - These compilers can be either from <productname>Visual Studio</productname>, - <productname>Visual Studio Express</productname> or some versions of the - <productname>Microsoft Windows SDK</productname>. If you do not already have a - <productname>Visual Studio</productname> environment set up, the easiest - ways are to use the compilers from <productname>Visual Studio Express 2019 - for Windows Desktop</productname> or those in the <productname>Windows SDK + These compilers can be either from <productname>Visual Studio</productname> + or some versions of the <productname>Microsoft Windows SDK</productname>. + If you do not already have a <productname>Visual Studio</productname> + environment set up, the easiest ways are to use the compilers + from <productname>Visual Studio 2019</productname> + or those in the <productname>Windows SDK 10</productname>, which are both free downloads from Microsoft. </para> @@ -78,7 +77,7 @@ Both 32-bit and 64-bit builds are possible with the Microsoft Compiler suite. 32-bit PostgreSQL builds are possible with <productname>Visual Studio 2013</productname> to - <productname>Visual Studio 2019</productname> (including Express editions), + <productname>Visual Studio 2019</productname>, as well as standalone Windows SDK releases 8.1a to 10. 64-bit PostgreSQL builds are supported with <productname>Microsoft Windows SDK</productname> version 8.1a to 10 or
ドキュメント翻訳:
次に、ドキュメント翻訳です。これは実際にOSS活動を始めてから知ったのですが、翻訳というのもOSS活動の中でも初心者が参加しやすい分野だと思っています。 大抵のOSSは、世界中のユーザーが利用できるよう英語のドキュメントが用意されていますが、それ以外の日本語ドキュメントなどは不十分なことが多いです。 PostgreSQLの場合も例外ではなく、日本PostgreSQLユーザ会(JPUG)で翻訳することで日本語ドキュメントが提供されています。 私も実際にパーティションに関するページなど興味がある技術部分で何回か翻訳に参加させてもらっており、翻訳する中で自然と理解が深まったり、ドキュメント公開後に貢献者として名前が掲載されたりするのでモチベーションに非常につながっています。
PostgreSQL11 日本語ドキュメント 付録L 貢献者
PostgreSQL12 日本語ドキュメント 付録M 貢献者
PostgreSQL14 日本語ドキュメント 付録P 貢献者
イベント参加・発表:
最新の技術動向や他のユーザーの事例を学んだり、コミュニティメンバーと交流したりすることができ、OSSコミュニティ活動において重要な要素の一つです。
まずは参加者として参加して、現地で情報収集したり、他のメンバーとのネットワーキングの機会も得られます。 最新トレンドを追えるだけでなく、コミュニティで中心的に活動しているメンバーと直接交流できるため、社外のネットワークを広げる貴重な機会にもなります。
私の場合は以下のようなイベントに参加したり、一部については稀に発表させてもらっていました。 一番気軽にまず参加できるのは、PostgreSQLアンカンファレンスのようなconnpassなどで募集しているオンラインの無料で参加できるイベントがよいかと思います。
コード開発:
自身のスキルが十分に高まってきたと感じたら、実際にコードを書いて貢献することも可能です。 PostgreSQLの場合、Git上でソースコードが管理されており、MLを通して(PostgreSQLコミュニティでは、GitHubのプルリクエスト機能だけでなく、伝統的にメーリングリスト上でパッチをやり取りしています)誰でもパッチの提案やプルリクエストを送ることができます。 私もPostgreSQLやその周辺ツールであるPgpool-IIという製品を中心に実際にいくつかバグ修正のパッチを提案したり、新機能の実装を行ったりしていました。
以下は実際にコミッタとしても活動させてもらっているPostgreSQL関連のコミュニティです。
Pgpool-II:PostgreSQLのコネクションプーリング・負荷分散を行うミドルウェア
pg_ivm:PostgreSQLでの増分マテリアライズドビュー更新を行う拡張機能
まとめ
OSSコミュニティ活動は、技術者にとって非常に価値のある活動・経験の一つだと感じています。 今回紹介したように、コード開発だけでなく、フィードバック提供、ドキュメント翻訳、イベント参加など、様々な形で活動・貢献することができるので、まずは自分が参加できる形で興味を持ったOSSの取り組みに参加してみるのが良いと思っています。
私自身の経験を通じて、OSS活動の魅力は以下の3点に集約されると感じています:
- 技術力の向上:最新技術に触れながら、実践的なスキルを身につけられる
- ネットワークの構築:会社の枠を超えた人脈と知見を得られる
- 自己成長:英語力やコミュニケーション能力など、多方面のスキルが自然と向上する
特に、自分の貢献が世界中のユーザーに影響を与え、長く残り続けるという達成感は、他では得られない貴重な体験です。
OSSは「共有の知」をみんなで育てるプロジェクトです。初心者でも参加しやすい活動が多く、技術力の向上やネットワークの構築に最適な場です。ぜひ、皆さんも小さな一歩からOSS活動を始めてみてください!