PostgreSQLはもっともオープンソースソフトウェアらしい製品
PostgreSQLのコミュニティには、その中心的な役割を担う組織がある。ハガンダー氏を含む6名のメンバーで構成されるコアチームという存在だ。このコアチーム「誤解されることが多い組織です」と、ハガンダー氏は言う。名前がコアチームなので、製品の方向性を判断しコントロールするかのようにとられルのだ。実際は、運営委員会的なものとのこと。
「テクニカルデシジョンもしなければ、コードを書いたりもしません」
もちろん、コアチームのメンバーには、個人の活動としてコードを書く人もいる。しかしながら、チームとしてはそういったことは一切行わないのだ。
もう1つコミュニティの中で誤解される組織が、コミッターだ。コミッターは15から20名で構成され、積極的に関わっているのはその中の10から15名程度。役割としては、コードとして提出されたものを1人、あるいは複数で承認することだ。つまりは、PostgreSQLのリポジトリに正式にコードを入れるための”git push”コマンドの実行権限を持っているのが、コミッターということだ。コミッターの場合にも、メンバーがコードを書いたりバグ修正をしたりもする。しかし、それはあくまでも個人の活動であり、コミッターとしての役割ではない。
そして、実際に新機能開発やバグ修正を行うのが、デベロッパーとコードコントリビューターになる。これらのコミュニティには、最低でも200人以上のメンバーがいるが、それ以上どれだけ多いかについては把握できていない。メンバーは自分でコードを書くのはもちろん、他の人が書いたコードをレビューする役割もある。広範囲かつ慎重にレビューを行っているので、コードは高いクオリティを保っているとのことだ。
デベロッパーの中には、コードを書くのではなくドキュメンテーションを担当している人もいる。さらにはテストをする人、ベンチマークを行う人も。コードを書かずに、新機能のデザインやアーキテクチャーだけを考える人もいる。それぞれの立場の人が重要であり、彼らがコードを実際に書く人と協力することで、PostgreSQLは作られているのだ。
企業による有償サポートとコミュニティサポートの違い
上記以外にもpostgresql.orgを運用し、各種サーバーやWiki、ソースコードのリポジトリなどを管理するためのインフラ担当者も重要な役割だ。それらインフラがしっかりと運用されているからこそ、たとえば、新機能の開発のためにやり取りされる膨大なメールなどがすべてアーカイブされている。
PostgreSQLのコミュニティでは、サポート体制も独特だ。サポートカンパニーによるものと、コミュニティサポートの2つがある。コミュニティサポートに携わっている人の数は、分かっていない。「少なくとも何千人という人たちが、関わっているはずです」とハガンダー氏。メーリングリストがあり、迅速なサポートを行うのにはチャットも利用されている。情報は英語でやり取りされているが、日本語のメーリングリストもある。日本語、ドイツ語、フランス語など、言語ごとにグループ化されている。コミュニティサポートで質問に答えるのは、すべてボランティアだ。
これに対し、有償のサポートを提供する企業もある。フリーのコミュニティサポートでできないのは、ユーザーのオフィスまで行って現場でサポートすること。さらには、サービスレベルの保証も有償のサポートでなければ実現できない。
「メーリングリストやチャットでは、通常は10分、15分で答えが返ってきます。とはいえ、必ずしもそうなるわけではありません。何週間もかかったり、答えが返ってこなかったりすることもあります」
そして、有償であればNDA(Non-Disclosure Agreement)を結ぶこともできるが、コミュニティで質問するとなるとそうはいかない。また、PostgreSQLの新しい機能についてアイデアを持っていたとする。コミュニティに頼るとなれば、メーリングリストなどにその案を投稿し、多くの賛同が得られれば次のバージョンで取り入れられるかもしれない。ところが、すぐにでもその機能が欲しければ、有償のサポートなりを契約し、依頼して作ってもらうことになる。
このように、企業による有償のサポートとコミュニティによる無償のサポートがあることで、ニーズの異なるところ対応しており、これらは競争関係にあるわけではなく、協力関係にある。有償サービスを行っている企業のメンバーが、ボランティアでコミュニティに参加してることはもちろんある。