OSS業務アプリケーションの特徴とメリット&デメリットを理解する
同じオープンソースでもLinuxなどのOSやPostgreSQLなどのミドルウェアは、ソースコードを修正して使用するような事は通常はありません。OSやミドルウァのレイヤーに該当するソフトウェアは、オープンソースというよりも無料で使用できるという事の方が一般ユーザーにとっては意義が大きいことでしょう。
しかし、業務アプリケーションは必ずといって良いほど導入企業の業務要件に応じたカスタマイズが必要になってきます。ソースコードを自由に修正してカスタマイズができるというオープンソース本来のメリットは業務アプリケーションにこそ発揮されます。
しかし、オープンソースにはメリットだけでなく、デメリットもあります。メリットとデメリットを正しく認識する事は、オープンソースを活用する上でとても大切な事です。
オープンソースのデメリットをリスクとして、オープンソースの採用に消極的な方もいるかと思いますが、デメリットやリスクを正しく認識し、コントロールする事で得られる利益もあります。
オープンソースの採用に消極的な方の多くは、オープンソースのデメリットやリスクを正しく認識せずに漠然としたイメージから敬遠している人も少なからずいるので、ここに、一般的に考えられるオープンソースの業務アプリケーションのメリットとデメリットをまとめておきたいと思います。
コスト面
◆ライセンス料
低コストはオープンソースの一番のメリットでしょう。多くのオープンソースはライセンス料がかからず無料で使用する事ができます。そのため、使用する年数が長くなればなるほどコストメリットを享受する事ができます。
通常、企業で使用する業務アプリケーションを動かすためには、業務アプリケーションの他に、データベースやOSも必要になってきます。これらすべてのライセンス料を無料で使用できるのであれば、コスト削減効果は少なくないはずです。
◆開発生産性の高さ
このサイトの主題である、Compiere Distributionに限って言えば、ライセンス料が無料なのに加えて、その開発生産性の高さやアジャイル的な開発が可能な事もコスト削減に寄与すると思います。
カスタマイズが自由
オープンソースの業務アプリケーションにおいては、カスタマイズの自由度というのは大きなメリットです。通常商用の業務アプリケーションはソースコードを修正するようなカスタマイズはできませんが、オープンソースであれば可能です。
ベンダロックインされない
オープンソースの業務アプリケーションは、ソースコードがオープンになっているだけでなく、他のオープンソースを活用して実装されていたりします。オープンな技術を活用して、ソースコードをオープンにしていますので、これまで行われていたユーザー企業に不利益になるようなベンダロックインはしにくくなっています。
【補足説明】ベンダロックインとは
ベンダロックインとは、特定ベンダーの独自技術に大きく依存した製品、サービス、システム等を採用した際に、他ベンダーの提供する同種の製品、サービス、システム等への乗り換えが困難になる現象のこと。[Wikipediaより]
不具合に関して
◆開発元や開発コミュニティーに不具合の責任はない
無料で使用する事のできるオープンソースは、不具合があっても、そのオープンソースの開発元や開発コミュニティーに責任はありません。
この事を不安視する人がいますが、有名なオープンソースにはサポートを提供している会社が必ずと言って良いほど存在します。無料で使用する事のできるオープンソースのビジネスモデルの多くがサポートを収益源のひとつにしています。
ですので、不具合があった場合の対応に不安がある方は、サポートを購入する事で、そのリスクをコントロールする事ができます。
サポートを購入すると、その分オープンソースの低コストというメリットが減りますが、多くの場合、サポートを購入しても、商用ソフトウェアと比較してトータルで割安になるように設定されていますので、低コストとういメリットは少なくなっても無くなるケースはあまりないでしょう。
◆不具合を自分で修正する事ができる
不具合を自分達で修正しないといけないというのはデメリットと思われがちですが、メリットであるとも言えます。商用アプリケーションだからといって不具合を必ずしもすぐに修正してくれるとは限りません。場合によっては仕様として押し切られて修正してもらえない事をあります。そのような事を考えると、自分達で直せる環境があるというのは良い事だとも考えられます。
オープンソースの業務アプリケーションに取り組むならば、ぜひ前向きに捉えて頂きたいなと思います。
オープンソースの業務アプリケーションのメリットとデメリットを理解して頂いた所で、次にオープンソースの業務アプリケーションとスクラッチ開発したアプリケーションとを開発面と運用面でそれぞれ比較してみたいと思います。
開発におけるオープンソースの業務アプリケーションとスクラッチ開発の比較
◆オープンソースの業務アプリケーション
既に動くシステムがあるため、スクラッチ開発よりも、開発リスクを低くし、低コストの開発が可能です。
◆スクラッチ開発
顧客の要件に合わせて自由に開発する事ができます。しかし、全てを開発する必要があるため一般的にコストが高くなる傾向にあります。
【補足説明】既に枠組みが出来上がっている事のメリット!
スクラッチ開発が100%自由であるのに対して、オープンソースの業務アプリケーションはオープンソースと言えども既に出来上がっている枠組みがあるので100%自由であるとは言えません。
一方で、スクラッチ開発は100%自由ですが、技術が複雑多岐にわたる現在において、100%自由である事は、選択肢がありすぎて、かえって難しい面もでてくるでしょう。
オープンソースの業務アプリケーションを選択する事で、既に出来上がっている枠組みをベースに具体的に物事を考えられる事は、メリットと捉える事もできます。
運用/サポート面のOSS業務アプリケーションとスクラッチ開発の比較
◆オープンソースの業務アプリケーション
システム導入を請け負ったSIerからの保守サポートがメインになります。困ったときにはコミュニティーからの情報提供なども受けられるでしょう。しかし、コミュニティーからの情報提供は、フォーラムなどの無料のものだと期待した回答が得られない事も考えられます。それでも、世界中の開発者から貴重な意見がもらえる事もあるので上手に活用すれば、心強い味方になりえます。
そして、システムを請け負ったSIer以外にもサポートを提供している会社は世界中に存在するので、サポート体制が気に入らなければ、他の会社に切り替える事もできます。
グローバルな企業で世界各地でシステム導入が必要な場合、世界的に使用されているオープンソースの業務アプリケーションの方が各国でサポート体制を構築しやすいでしょう。それによるコスト削減効果も期待できます。
運用やサポートという面では、世界的に使用されているオープンソースの業務アプリケーションであれば、スクラッチ開発よりも安心だと言えるのではないでしょうか!?
◆スクラッチ開発
スクラッチ開発したSIerからのサポートのみになり、ベンダーロックインされます。そして、スクラッチ開発したSIerには継続的にサポートできるSIerの信用力も必要になります。
【補足説明】スクラッチ開発を請け負った会社が倒産するリスク
スクラッチ開発したシステムの多くで、開発を請け負った会社がそのまま保守も行うと思います。スクラッチ開発したシステムで、開発&保守を請け負っている会社が倒産してしまう事も考慮しなければならないリスクのひとつでしょう。
オープンソースの業務アプリケーションも、特定の企業が主体となって開発しているケースにおいては、同じようなリスクは存在します。しかし、ある程度普及しているオープンソースであれば、特定の企業が主体となって開発しているケースにおいて、その企業が倒産しても、他の企業が保守をサポートする事は可能でしょう。
そして、コミュニティーベースで開発されているオープンソースの業務アプリケーションであれば、倒産というリスクはありません。しかし、その代りコミュニティーが分裂(フォーク)するなどの事はありえますので、コミュニティー運営の統制力なども少しは気にしておいた方が良いかもしれません。
次にOSS業務アプリケーションと商用の(プロプライエタリな)業務アプリケーションとを開発面と運用面でそれぞれ比較してみたいと思います。
開発におけるOSS業務アプリと商用業務アプリの比較
◆オープンソースの業務アプリケーション
オープンソースはソースコードが公開されていて自由に改変できるので、商用の業務アプリと比較して、開発の自由度は高いと言えます。
◆商用の(プロプライエタリな)業務アプリケーション
開発の自由度は一般的に低くなり、Add-On(アドオン)開発が主流です。
運用/サポート面のOSS業務アプリと商用業務アプリの比較
◆オープンソースの業務アプリケーション
ユーザー企業はシステム導入を請け負ったSIerからのサポートがメインになります。システム導入を請け負ったSIerは、必要であればより専門的にそのオープンソースに携わっている企業に2次サポートを依頼するなどしてリスクをコントロールする必要があります。
オープンソースの業務アプリケーションは、商用の業務アプリケーションと比較して、インターネット上に公開されている情報が多いので、有名なオープンソースであれば、その分、有益な情報も多く公開されており、心強い味方になります。
◆商用の(プロプライエタリな)業務アプリケーション
ユーザー企業はSIerからのサポートがメインになります。SIerはパッケージベンダーからのサポートが受けられます。
【補足説明】自社の業務に合わないリスク
通常、商用業務アプリケーションを導入する際には、そのアプリケーションの機能で業務が処理できるように、これまでの業務のやり方を見直します。その方針が貫かれて、無事導入できれば良いのですが、日本企業の多くは自社のそれまでの業務のやり方にシステムをカスタマイズして合わせようとするケースが多いようです。
そのような場合、高価な商用アプリケーションを採用しても、導入が失敗してしまうリスクが増大します。そいういった事があらかじめ予想されるのであれば、オープンソースの方が融通が効く分良いかもしれません。
オープンソースという言葉に漠然とした不安な(ネガティブな)イメージを抱く方が少なからずいますが、本来ソースコードが公開されているという事は、"安心"なはずです。
システムを家に例えると、オープンソースというのは、家の建て方や、建築材料、設計図等が公開されているという事だと思います。一方、ソースコードが公開されていないという事は、家としての機能は備わっているけど、どのように建てたかわからないし、どのような材料を使ったかもわからない、設計図も公開されていないような事だと思います。
家を購入しようと思ったら、どちらの家が安心でしょうか?
ソースコードが公開されていない家は、欠陥住宅ではない事や偽装マンションではない事は、確認のしようがありません。営業担当者のいう事を信じるしかありません。そして、欠陥があった場合、自分で直す事もできません。
ソースコードが公開されている家は、理論的にはソースコードを読めば欠陥住宅ではない事や偽装マンションでない事は確認できます(あまり現実的ではありませんが…)。そして、欠陥があったとしても、直す事ができます。
確かに、オープンソースは玉石混交の世界ですが、有名なオープンソースを活用するのであれば、根拠もなしに不安がる必要はないのではないかと思います。
オープンソースの活用は今後もますます広がるものと思います。Linuxに代表される社会に欠かせないインフラ的な存在のオープンソースもいくつも存在しています。
オープンソースのメリットとデメリットを正しく理解し、デメリットとリスクをコントロールし活用する能力は、これからシステム(IT)を活用していく上で必要なスキルなのではないかと思います。