開発ツールの導入とライセンス管理
ツール導入に関する悩み
開発ツールを導入しようとしたときに、必ず問題となるのが、導入コストです。フリーで入手できるツールもある中で、それなりの対価を支払ってツールを導入するには、しかるべき理由が必要です。また、当然コスト削減のプレッシャーもありますから、どのようにしたらコストを最小化できるかも考えなければなりません。
もちろんツールの活用方法はいろいろありますから、導入効果を説明するときに「生産性向上○○%」とはなかなか言えません。反対に、無償のツールを使えば本当にコストがかからないかというと、それも違います。ツールによって得られる価値と同様、ツールを使用することで生じるさまざまな問題に対するコストについても理解しておくべきです。
例えば、「有料ツールはコストがかかるから、基本的にフリーのツールを使う」という方針の開発グループがあったとします。
直接的な開発生産性を比較すると、有料ツールが100とすれば、フリーのツールでも80ぐらいまで力を発揮するかもしれません。しかし、個人で使用するのではなく、チームで利用しようといった場合、フリーのツールをセットアップしたり、チューニングするノウハウを共有したり、特定のスーパー・エンジニアが世話したりと、隠れたコストがかかってきます。さらに、開発を長い時間軸で見ると、そのツール環境をいつでも利用できるように将来にわたってメンテナンスしておく責任が、自分たちの側にかぶさってきてしまいます。
非常に限られた用途か、スーパー・エンジニアによる少人数の開発、逆に大企業で専任のツール・サポート・エンジニアがいる場合には、こうしたアプローチも有効です。しかし、中規模ぐらいの開発では、ツール部分に商用製品を利用することで、これらの隠れコストを効果的に抑えることができます。
では、有料のツールを導入する場合、どのように取り組めばよいのでしょうか。今回は、これまでの連載で見てきた例を参考にして、導入の仕方や運用の仕方について考えてみましょう。
ツールのライセンスについてのおさらい
一昔前まで、ソフトウエアといえば、シュリンク・ラップにくるまれた箱入りのパッケージが主流でした。開発ツールも同様で、フロッピ・ディスク1枚から始まり、それが2枚、5枚、10枚となって、ディスクの入れ替えが面倒だなと思っていたところにCD-ROMが登場して再び1枚に。しかし、歴史は繰り返し、それが2枚、5枚。今度はDVDです。
一方、ダウンロードでソフトウエアを入手するスタイルも徐々に定着してきて、軽いツールはもっぱらオンラインという状況になりつつあります。
ところで、物理的なパッケージが定番ではなくなりつつある中、「ソフトウエアのライセンスってなんだっけ」、といった疑問がもう一度わき起こっています。箱入りパッケージを購入して「ソフトウエアを所有している」感覚を持っていたときは問題なかったのですが、それがダウンロードになって、すべてが電子的なものになると、何を所有しているのか分からなくなります。
「ソフトウエアを購入する」といったときに、しばしば誤解があるのですが、多くのケースでは、ソフトウエアの購入は「使用権を購入している」ことを意味しています。つまり、ソフトウエアそのものの所有権は依然として提供側(ベンダー)にあって、購入したのは、使う権利(ライセンス)だけです。
ソフトウエアを購入した場合に手に入るものは、このライセンスと実際のソフトウエアで、実際のソフトウエアがこれまで物理的なかたち(CD-ROMやDVD、あるいは箱入りパッケージ)として提供されていたために、混同していたところがあるのだと思います。
では、開発ツールのライセンスの種類を確認しておきましょう。
開発ツールのライセンスには、インストールするPCごとに必要となるワークステーションライセンス、あるいは、使用するユーザーごとに必要となる指名ユーザーライセンス(ネームド・ライセンス)、同時に使用できる人数を規定するコンカレント・ライセンス(フローティング・ライセンス)などがあります。
これに対し、ツールを利用する側では、開発者が複数プロジェクトで使用するようにユーザー単位で割り当てる個人所属型、プロジェクト単位でツールを用意するプロジェクト所属型、会社やグループでツールを用意して、これをそれぞれのプロジェクトに割り当てるプール型があります。
開発ツールの利用形態に対して、ツールベンダーが用意しているライセンス形態は完全に一致しているわけではありません。どうもこの辺にも無駄があるような気がします。では、具体的なプロジェクトでのツール導入形態を考えてみましょう。