Skip to main content

Fujitsu

Japan

PostgreSQLエキスパートに聞く 開発コミュニティーの活動
[第2部]PostgreSQL開発は世界交流の場~技術者として成長できるコミュニティー~
PostgreSQLインサイド

PostgreSQLエキスパートに聞く 開発コミュニティーの活動[第2部]PostgreSQL開発は世界交流の場~技術者として成長できるコミュニティー~

第1部では、開発エキスパートのArul氏にPostgreSQL開発コミュニティーがどんなところなのかを語っていただきました。第2部では、コミュニティーでの開発プロセスや、開発を上手く進めるためのコツ、世界各地にあるユーザーグループについてなど、コミュニティーに関してより深いお話をお聞きします。

「[第1部]PostgreSQLはこう開発する!~コミュニティーってこんな場所~」はこちらへ arrow-double

[2015年4月24日掲載]

Arulappan Arul Shaji Fujitsu Australia Software Technology 富士通で14年間データベースの開発に従事。PostgreSQLコミュニティーに機能提供を行うなど、開発や支援活動に貢献している。現在はFujitsu Australiaでプロジェクトマネージャーとして、最新データベース製品の開発を担当 榎本友理枝 富士通株式会社 ミドルウェア事業本部 富士通の若手DBエンジニア。現在はPostgreSQL Conferenceに参加したり、国内のPGECons活動など、PostgreSQLの技術力向上に日々励んでいる

開発の進めかたは?ルールはありますか?

榎本

さて、PostgreSQL開発コミュニティーについてもっと詳しくお話を聞いていきたいと思います。
第1部では、開発はメーリングリスト上で行われ、時には1つの機能の開発のために何百通もメールのやりとりする…とお伺いしました。これだけとってみても、企業内での開発とコミュニティー内での開発の進め方には大きな違いがあるという印象なのですが、コミュニティーでの開発プロセスについて教えていただけますか。

Arul

第1部でもお話したとおり、コミュニティーでは「次はここを開発しよう」というテーマや機能が、コアメンバーやコミッターによってあらかじめリストアップされているのです。コミュニティーメンバーは主にその機能についてディスカッションしながら開発を進めていきます。

榎本

あらかじめ決められた機能しか開発できないのですか?

Arul

いいえ、そんなことはありません。コミュニティー側がリストアップした機能とは違うものを開発したい場合は、誰でも新たに提案することができます。
まず「こういう機能を開発したい」ということをメーリングリスト上で提案します。次の設計の段階ではコミュニティーメンバーとの間でメールのやりとりを行い、ディスカッションを重ねていきます。ある程度設計が固まったら、開発者はコミュニティーにプログラムを提出する、といった流れです。

榎本

設計段階からコードレビューのステップに進むわけですね。

Arul

そうです。コードレビューも基本的にメールベースですね。世界中の開発者がレビュアーとなって質問や指摘をしてくれます。それらに対して改善したプログラムを再提出する…といったプロセスを繰り返していきます。

榎本

世界中からの指摘ですか…。ちょっと緊張しますね。

Arul

確かに(笑)。でも、よりよいものを作るために必要なプロセスです。
コードレビューの後、いよいよ新機能を承認するかどうかを判断する段階となります。そのための「コミットフェスト」という場が2か月に一度設けられていて、そこにプログラムを提出して承認を受けると、晴れてPostgreSQLの機能として正式に採用されるというわけです。

榎本

もしコミットフェストで承認が下りなかった場合は…

Arul

その場合はまたコードレビューからやり直し、ですね。

開発から機能採用までの流れ

【開発から機能採用までの流れ】

榎本

プロセス以外に、コミュニティー内でのルールのようなものはあるのでしょうか?

Arul

ええ、あります。最も重要なルールは、「オープンな場で議論する」ということです。
新しい機能を開発する時だけでなく、修正や更新といったレベルでも、先ほど説明したとおりのプロセスを踏んでいきます。開発プロセスは透明化されている必要がありますから、開発に関するやりとは全てメーリングリスト上で行われることが基本ですね。

榎本

確かに、信頼性の高い開発を行っていくためにも、すべてをオープンにしておくことは重要ですね。

Arul

その通りです。開発プロセス以外のちょっとした疑問やヘルプが必要なときは、コミュニティーメンバーに直接メールしたりすることもありますよ。そのほかにメンバー専用のチャットフォーラムも用意されているので、そこで話し合ったりもしますね。

榎本

チャットフォーラムはArulさんも参加されていますか?

Arul

ええ、メンバーの意見を聞きたい時には。チャットフォーラムにはコミュニティーメンバーであれば誰でも参加できます。

開発苦労話はありますか?

榎本

オープンな場で世界中の仲間の助けを借りながら開発をする…、とても素晴らしい環境だと思いますが、何か苦労するような点はありますか?

Arul

苦労というか、コミュニティー単位の活動ならではの難しさといったものはあります。
自分が開発したい機能とPostgreSQL開発コミュニティーがリストアップしている開発項目とが合致していれば問題ないのですが…、限られた用途でしかメリットがないような機能を開発したいとなると、承認を得るのが難しい場合がありますね。そういう時は、開発したい機能の必要性を説明して、コミュニティーに理解してもらう必要が出てくる。標準SQLへの準拠にも配慮しなければいけないですし。

榎本

その場合、開発したい機能の必要性をコミュニティーに理解してもらうためのポイントというか、コツのようなものはありますか?

Arul

他の開発者の賛同を得ることですね。自分と同じように「この機能は必要だ。ユーザーのニーズに応えている」という意見を持って支持してくれる開発者を集めるのです。賛同してくれる開発者が多ければ多いほど、必要性が高いことの証明になりますから。

榎本

自分で仲間を集めないといけないのですね。どうやって世界中の開発者の中から賛同してくれる人を見つけるのでしょう?

Arul

まずメーリングリストを使って「この機能に興味のある人は他にいないか」と呼びかけるところからスタートですね。興味をもってくれた開発者がいれば、お互いの要件が合っているかどうかを確認します。他には、自分が開発したい機能について他の開発者とディスカッションして味方を増やしていくという方法もあります。賛同してくれたら、「自分もこの提案に賛成である」とコミュニティー内で公に発言してもらうという具合です。

Arul氏と榎本氏の写真

榎本

コミュニティーでの開発は、他の開発者とのコミュニケーションも重要なポイントになってくるということでしょうか。

Arul

その通りです。普段からコミュニティー内でどう振る舞うかが大切ですね。他の開発者の提案のディスカッションにも積極的に参加したり、コードレビューに協力したり。そういった普段の活動が、自分自身が提案をした時につながってきます。

榎本

開発者同士のつながりも大切ということですね。
ひとつの機能を開発するのに、どのくらいの期間がかかるのですか?賛同者を集めるところからはじめるとなると、それなりに時間がかかると思うのですが…。

Arul

開発している機能によって大きく違うのですが、私が最初に開発したCSV Logging機能の場合は、設計から開発まで2カ月くらいかかりましたね。

榎本

やはり数ヶ月単位ですか。

Arul

ええ、でも開発期間を短縮できるよう工夫することはできます。いきなりポンと提案をするのではなく、その前に宿題を片付けておくといいですね。コミュニティーのメンバーからくるであろう質問や指摘を予想して、あらかじめ対策を練っておいたり検証を済ませておいたり。いざ提案をするときにはこれでベスト、という状態にしてから公の場に出すのです。

世界各地の開発者やユーザーがリアルで会うことはありますか?

榎本

メンバーの皆さんは普段メールやチャットでコミュニケーションされていますが、直接顔を合わせる機会としてカンファレンスの開催などもありますね。

Arul

はい。年1回、カナダのオタワでPostgreSQL Conference(PG Con)という開発者会議が開催されています。世界中からPostgreSQLの開発者が集まって、今後の開発の方向性や、開発中の機能についてディスカッションが行われます。

榎本

2014年は私も参加しました。たくさんの開発者のPostgreSQLに対する情熱を実感できたと思います。実際にはどのくらいの人数だったのでしょう?

【「PostgreSQL Conference開発者会議」でのディスカッション】

Arul

参加者は240名くらいですね。PostgreSQLに情熱を傾けている開発者が一堂に集まるわけですから、会場はいつも活気と熱気にあふれていますね。かなり技術的に高いレベルの会話が交わされますよ。

榎本

JPUGのロゴ

ぜひ、次回も参加できたらと思います。コミュニティーとは別に、PostgreSQLを利用するユーザーのグループが世界各地にありますね。

日本にもJPUG(日本PostgreSQLユーザー会)というユーザーグループがあります。去年そのJPUG主催の「PostgreSQLカンファレンス2014」で講演されていましたね。その時の感想を聞かせていただけますか。

Arul

JPUG主催のカンファレンスに参加したのは初めてだったのですが、とても素晴らしいイベントだと思いました。ユーザーグループの中でも、日本のJPUGは特に規模が大きいです。活動もとても活発で、世界中のPostgreSQL開発者やユーザーの間で有名ですよ。

榎本

280名以上が参加したと聞いています。内容的にはいかがでしたか?

Arul

とても充実していましたね。セッションもバラエティに富んでいましたし、ユーザーだけでなく開発者も参加していましたし。日本でのPostgreSQLの人気の高さを改めて実感しました。

【「PostgreSQLカンファレンス2014」の様子(Arul氏の講演、事務局のみなさん)】

榎本

日本の技術者としては嬉しい限りです。
オーストラリアのユーザーグループはどんな様子ですか?ArulさんはオーストラリアのユーザーグループのSyd-PUGを牽引されていると聞いているのですが。

Arul

ええ、設立は8年くらい前でしょうか。第1回のSyd-PUGのミーティングには富士通の開発者も参加していました。

榎本

本当に立ち上げ当時から関わってこられたのですね。具体的にはどんな活動をされていますか?日本のようにカンファレンスを開いたり?

Arul

ええ、カンファレンスで交流することももちろんあります。ですが日本と違うところは、みんな個人の立場で参加しているというところですね。JPUGは日本のメジャーな企業も参加していますが、Syd-PUG含め、他のユーザーグループはだいたい個人で会員になります。Syd-PUGでも法人会員は設けておらず、すべて個人会員です。小規模なカンファレンスで技術的な話をするというのが活動の中心ですね。

榎本

ここまでさまざまなお話を聞いてきましたが、世界中の開発者が情熱をもって開発している雰囲気、オープンであろうとする精神、そういったものがとてもよく伝わってきました。
最後に、Arulさんの今後の抱負についてお聞かせください。

Arul

コミュニティーに参加している開発者にとっては、「PostgreSQLユーザーの役に立つ機能を開発する」ということこそが一番のモチベーションです。富士通の開発プロジェクトで開発した機能がPostgreSQLの可能性を広げたように、これからもコミュニティーに貢献していきたいですね。PostgreSQLの成長が、技術者としての私の成長にもつながっていきますから。

榎本

私も技術者として成長していきたいと考えています。これからもご指導よろしくお願い致します。

Arul

こちらこそよろしくお願いします。PostgreSQLの世界を盛り上げていきましょう。

Arulさんご自身の体験に基づくお話は、とても興味深く、たくさんの「気づき」がありました。私たち富士通がPostgreSQLの開発を続け、コミュニティーを後押ししていくことが重要だという認識を深めることもできました。Arulさん、本当に貴重なお話をありがとうございました。

「[第1部]PostgreSQLはこう開発する!~コミュニティーってこんな場所~」はこちらへ arrow-double


本ページに記載された内容は、掲載日現在のものです。その後予告なしに変更されることがあります。あらかじめご了承ください。

富士通のPostgreSQLに関する情報がここに「PostgreSQL インサイド」

製品情報

本コンテンツに関するお問い合わせ

Webでのお問い合わせ

入力フォームはこちらから

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)0120-933-200

受付時間 9時~12時および13時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)