OSSコミュニティ活動のすすめ

Odooエコシステムの本質を理解していますか?

Yoshi Tashiro

はじめに - Odooエコシステムのこと


Odooにはコミュニティ版とエンタープライズ版があります。コミュニティ版はLGPLv3ライセンスのもとリリースされたオープンソースソフトウェア(OSS)です。一方エンタープライズ版は、コミュニティ版をコアとし、その上にプロプライエタリ機能をかぶせた作り(オープンコアモデル)となっています。

プロダクトとしてのOdooが「安価(コミュニティ版に関しては無償)かつ高品質」であることにつき、おそらく私たちのお客様で異論を持たれる方はいらっしゃらないと思いますが、これはOdoo特有のエコシステムに支えられています。そのエコシステムとは、OSSではないプロプライエタリの部分と純粋なOSSコミュニティ活動に拠って立つ部分から成り立っています。

プロプライエタリの部分はOdooエンタープライズ版のプロプライエタリ機能群や、アプリマーケットで有償で販売されているサードパーティ機能群で構成されます。サービス事業者が個別の顧客向けに開発するクローズドな機能もプロプライエタリと言えますが、これはOdoo社の収益には貢献しないためエコシステムの文脈からは除外してよいと思います。特にここ数年(Odooが2015年にLGPLライセンスを採用しオープンコアモデルに移行して以来)はプロプライエタリな部分の財務面の貢献により、Odoo社はコミュニティ版含めたプロダクト開発に積極的に投資できる体制となってきています。近年のOdooのコア機能の発展はOdoo社の体力向上によるところが大きく、おそらくこれからもその傾向は続くでしょう。 

一方、OSSの部分は、具体的な顧客ニーズとOdoo標準機能のギャップを埋める機能の開発・保守の面で、OdooがまだTinyERPと呼ばれていた黎明期からずっと変わらず重要な役割を担ってきています。OdooのOSSコミュニティ活動は、Odoo Community Association(OCA)というスイスに拠点を置く非営利組織が中心になって行われています。OSSのERPプロダクトには、他にもERPNextやiDempiereなど優れたものがありますが、現時点でOdooのOSSコミュニティ活動規模はOCAの活況(例えばV12で、OCAのもとリリースされたモジュールは現時点で1600以上あります)から見ても、他のプロダクトに比してかなり大きいものであると思われます。OSSコミュニティ活動の根底にある思想は、「ギャップを埋めるためのコストを皆でシェアする」というものです。コミュニティ活動の結果生まれた数多くの優れたOSS機能群なくしては、ユーザごとの個別対応が大量に発生し、プロダクトとしてのOdooの魅力は大きく損なわれてしまいます。

Odooの導入にあたっては、OdooパートナーまたはOdooの知見をもったサービス事業者(以下、まとめてサービス事業者と言います)のサポートを得るのが現実的ですが、サービス事業者がエコシステムのどの部分に位置しているのかは、半ば必然的に、Odooの導入スタイル、コスト、サービス品質等に大きく影響します。ですが、この点を理解した上でOdoo導入に取り組むユーザ企業は多くありません。

私たちコタエルは自らをOSSコミュニティ活動を積極的に推進するサービス事業者と位置づけていますが、以下に私たちの活動内容、OSS活動のよいところ、日本におけるOSS活動の現状、私たちが何を目指しているのか等を説明します。

コタエルのOSS活動


Odooの世界におけるOSSコミュニティ活動の対象は大きく2つあり、1つはOdoo本体、もう1つはOCAのオープンソース機能群です。それぞれで、GitHubレポジトリ上でプルリクエスト(ソースコードの改修提案)作成/レビューしたり、別途準備された翻訳プラットフォーム(TransifexやWeblate)上での翻訳活動を行ったりというところがコミュニティ活動の中心です。


Odoo本体の不具合報告/修正

Odoo本体の機能に不具合や課題が見つかったときに、OdooのGitHubレポジトリにてイシューを作成したり、修正提案を出したりします。

特に日本固有の課題につき多くの活動実績があります。日本会計モジュールは私たちが追加しました。


Odoo本体の翻訳

特に私たちのお客様がよく使用する機能を優先して、Transifex上で翻訳作業を行います。Transifexでの翻訳内容は、定期的(1週間毎)にOdoo本体に反映される仕組みです。

実はOdoo本体の翻訳はコミュニティ作業の位置づけで、公式にOdoo社がサポートしているわけではありません。私たちはとても小さなチームですが、現状、Odooの日本語翻訳の半分ほどは私たちの手によるものです。


OCAでの機能提案/不具合修正

OCAには機能領域ごとに多数のGitHubレポジトリがあり、関心のある機能が含まれる(もしくは新機能の場合はそれを含むべき)レポジトリにて活動を行います。

しっかりとした開発標準や品質を担保するためのツールが導入されており、ここでの活動はそれらに合わせて行う必要があるため、OdooのOSS活動の中でも最も高度なリテラシーが要求される分野です。


OCA機能の翻訳

Odoo本体の翻訳でTransifexが使われるように、OCAではWeblateという翻訳プラットフォームを使用しています。ここでの翻訳内容も定期的に(毎日)OCAモジュールに反映される仕組みとなっています。


これらの活動、私たちの費用負担で行っているものもあれば、私たちのお客様のご支援(=私たちの作業につきお客様に課金が発生)により行えているものもあります。

バージョンが進むごとにOdooのコア機能が安定してきているため、私たちの傾向としては、Odoo本体に向けた活動よりもOCAでの活動の比重が高まってきていると思います。

OSS活動のメリット


マクロの視点でエコシステムを支える意味でOSS活動が不可欠であることは理解しやすいと思いますが、個々のサービス事業者やユーザにとって、OSS活動に参加することにはどのようなメリットがあるのでしょうか。以下にいくつか主だったものを説明します。


1. ユーザの課題が解決できる

私たちの仕事は、お客様の業務やシステムの課題を解決することですので、この点は非常にわかりやすいメリットです。

Odooエンタープライズ版を利用するユーザには、Odoo社によるOdoo本体の不具合修正が保証されていますが、コミュニティ版を利用する場合はその保証がありません。また、エンタープライズ版を利用する場合であっても、Odoo社とのコミュニケーションに時間がかかったり(Odoo社のチケット担当者のスキル不足で、根気よく説明しなければならないこともあり)、Odoo社にて不具合を修正しない判断(「不具合」ではないとの判定)に至ってしまうこともあります。

このようなとき、多くの場合私たちは自ら不具合を修正します。私たちとしては、「Odoo社が対応してくれない」や「使えるアプリがない」ことを、お客様の課題を解決しない理由としたくはありません。基本姿勢として、Odooのことに関してはOdoo社がソリューションを提供しなくとも、自分たちでどうにかして解決したいと考えています。


2. 使っているプロダクトの価値が高まる 

あるユーザがOdooにつき感じる課題は、多くの場合他のユーザにも当てはまります。すべてのユーザに当てはまることはなくても、世界全体で見るとちょっとした機能や改善が1000人以上の作業効率化に資することもよくあります。

対象がOdoo本体かOCAかに関わらず、そういった改善を積み重ねることは、OCAの機能を含めた総体としてのOdooのプロダクト価値を高めることにほかなりません。

私たちは、お客様と私たち双方ができる限り手間をかけず、お客様が低コストで混乱なくOdooを使いこなせる状態になることを目指しています。そうすることでより多くの業務やこれまでできなかったことがOdooでこなせ、お客様が本質的な価値を生むことにより注力できる状態にすることが私たちの役目だと認識しています。事業者として私たちのサービスやオペレーションを改善することも当然大事ですが、プロダクトが洗練されると私たちの目的も果たしやすくなります。

これまで日本でよく使われてきた商用ERPシステムの場合、基本的に不具合の修正や機能改善はソフトウェアベンダーの仕事であり、サービスパートナーの仕事ではありません。Odooにおいてもその線引はあるものの、OSSであることから、スキルがありさえすればサービスパートナー側からもプロダクトの改善に積極的に関与できるようになっています。Odoo社は日本に活動拠点を持たず、現時点で日本語のサポート体制も備えていません。そのため日本においては特に、プロダクトの改善の面で市場ニーズをよく理解したパートナーに期待される役割は大きいといえます。


3. チームメンバーのスキルを高めることができる 

OSSコミュニティでの活動を行うと、ほぼ間違いなく、自社に閉じて活動を行うよりもスキルを高められます。自社に閉じた活動では、例えば自社内にコードレビュープロセスが存在するとして、得られるフィードバックは自社メンバーの知見の範囲に限られます。

これが、グローバルなOSSコミュニティでの活動では、プロダクトにつき世界トップレベルに習熟したエンジニアとやりとりをする機会も多くあり、より練度の高いアドバイスをもらうことができます。そこに金銭的な対価を求められることもありません。コミュニティ活動に積極的に関りフィードバックを受け課題を消化していく作業を続けるのと、そうしないのでは、つけられる実力に雲泥の差が生じます。

私自身、Odooについて何も知らないところからスタートし、現在はまがりなりにも日本においては第一人者と目されることもあるまでになりました。これはOSS活動なしには難しいことであったと思います。


4. 作業品質を担保するための仕組みがそろう

OCAのコミュニティ活動、特にGitHubでプルリクエスト(モジュールの追加や改修提案)を出す活動は、比較的参加の難易度が高いです。所定の手続きを理解し、その手続きをこなすための仕組みを整えておく必要があります。

OCAにはしっかり整備された開発標準があり、スタイルチェックも厳しいものが適用されています。そこに丸腰で参加すると、本質的な価値を生む以前の部分で雑多なコミュニケーションや修正作業が発生してしまいます。

このため、コタエルでは自社の開発標準、手続き、継続インテグレーション等の仕組みを可能な限りOCAのそれに寄せています。その結果、OCAのコミュニティ活動でない開発についても、OCAと同等の基準をクリアした上でお客様にサービス提供できるようになっています。


5. ユーザがロックインされにくくなる

OSSを利用すること自体ロックインを回避するのに効果的ですが、Odoo導入の際にパートナー任せでクローズドな機能開発を行っていると、やはりロックインの性格が強まってしまいます。実際、他の事業者からコタエルのサービスに乗り換えられるユーザ企業で導入しているアドオンプログラムは、得てしてクローズドなもので保守性に問題があり、それを解析しリファクタ(保守性を上げるようにコードの構造を改善すること)していくのは結構な根気を要します。コードの著作権をユーザが保持している場合でも、現実問題として引き継ぎのコストが大きくなってしまうのです。一方で、開発をオープンな場、特にOCAで行い、広く利用されるものにしておくと、少なくともその部分はロックインされることはありません。

このことはロックインをしたい事業者にとっては不都合ですが、私たちコタエルはお客様の利益を優先し、お客様をロックインする要素は極力排除したいと考えています。

日本におけるOdooに関するOSS活動の現状


いくつかのメリットを説明しましたが、日本のOdooサービス事業者の中で、コミュニティ活動を積極的に行っているのは、現時点では私たちコタエルのみです。(もしそうでないという事実がありましたらご指摘ください。謹んで訂正します!)この点において、コタエルは他の事業者と一線を画しています。

私の経験上、「OSS活動に積極的に参加すること」と事業者のサービス品質はかなり強い相関関係にあります。私の観察範囲では、OSS活動に消極的な事業者ほど、作業品質が低く、オープンソースライセンスや著作権についての理解もあやふやで、傍から見てライセンス違反や契約違反の状態が憚っていたりもします(少なくとも私が遭遇したケースでは)。たまに他の事業者のサービスから私たちのサービスに乗り換えるお客様がいらっしゃいますが、特にその場合、皆さま一様にサービス品質の違いに感心されるようです。このような差はある意味当然の帰結だと思っています。

ですがその一方で、Odoo導入を検討しているユーザ企業のパートナー選定においては、この観点がかなり過小評価されているように思われます。おそらく多くのユーザ企業は「Odoo(コミュニティ版)はオープンソースで無償で利用できる」というレベルの理解にとどまり、その先に踏み込んだOSS活用のあるべき姿は理解していません。そしてサービス事業者の多くも似たりよったりです。ユーザとしては致し方ない面もありますが、サービス事業者がその程度であると、関わるユーザが不幸になってしまう確率は高いです。

OSSコミュニティはすべての人に開かれており、上述の通りそこでの活動には多くのメリットがあります。ですが実際のところこれらメリットを差し置いて活動に参加しないサービス事業者の方が大多数です。

なぜそうなってしまうのでしょうか?その理由は、既に述べたポイントも含まれますが、OSSコミュニティで活動するには一定の条件をクリアしている必要があり、それができる事業者がほとんどいないということにあります。

一定の条件とは、

  • Odooエコシステムがどのように成立しているか理解していること

  • プロダクトに習熟していること

  • 英語でコミュニケーションがとれること

  • コミュニティの品質基準や手続きを理解していること

などです。

これらのうちどれか1つでも欠けているとOdooのOSS活動には支障を来します。オープンソース文化が根付いておらず、言語面でもハンディキャップを負った日本では、条件が揃いにくいとも言えます。

私たちはどうしたいのか


現在はプロプライエタリな部分もありますが、Odooはもともとオープンソースのプロダクトです。OSSであることで多くのユーザを獲得し、そ分野の専門家の知見に学び、コミュニティ開発者のコントリビューションを組み込むことで改善、それがさらにユーザを呼び込むというサイクルを形成し、発展してきました。

プロプライエタリな部分が重要でないというわけではありません。この部分は直接的にOdoo社の収益源となり、それがR&Dに還元されてOSS部分も含めてプロダクトが進化するという意味で、小さくない役割を担っています。しかしながらここは、ユーザへの価値提供の観点でサービス事業者としての力量が反映される部分ではありません。

私たちは、サービス事業者が提供価値を最大化できるのは、OSS活動に積極的に参加し、OSS側からエコシステムの発展・維持に貢献するという文脈においてであると信じます。それをしないのであれば、OdooというOSSプロダクトでサービス提供する意味は半減してしまいますし、それでは面白くありません。せっかくやるからには、私たちは「ポジティブ・フリーダム」を体現する存在であるべきです。

「より柔軟で費用対効果の高い業務管理システムサービスを提供する」というのがコタエル創業時からの変わらぬ目的です。その実現手段としてオープンソースのOdooというプロダクトがあり、それを支えるエコシステムがあります。私たちはそのエコシステムのOSSの部分で積極的に活動することこそ、中長期的に私たちの目的により近づくために必要なことであると信じています。

ここまで偉そうに書きましたが、私たち自身、これまでやりたいと思っていたほどにOSS活動に携わり目立って大きな成果を上げてきているわけでもありません。長い試行錯誤の期間を経て、私たちがお客様へのサービス提供とOCAのコミュニティ活動をうまく連動させている実感が持てるようになったのは、ここ1年ほどのことです。Odoo黎明期から積極的に活動を続けているコミュニティの先達には尊敬の念に堪えません。私たちのオペレーションやOSS活動にはまだまだ改良の余地があります。コタエルでは、これからさらにOSSコミュニティ活動へのコミットを進め、Odooのエコシステムに貢献しつつ、より多くの価値をお客様に提供するための仕組みを構築していきます。

募集のご案内


オープンソースを活かしたサービスが好評で、お客様からたくさんの依頼をいただいています。

仲間を増やしてより多くのお客様に私たちのサービスの価値をお届けしたいと考えています。この記事を読んで興味を持たれたソフトウェアエンジニアの方(または今はコンサルタントだけれどもOSS活動に興味がある方)は、ぜひご応募ください!(リモートも可です。)

関連記事:採用に悩む零細ITサービス事業者の話