Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

Webサービスのようなプロダクトについての議論について教えて下さい

このブログを提供している「はてなブログ」もそうであるような、一般ユーザ向けのWebサービスのようなプロダクトについての議論を知りたいんです。ここでいう「Webサービス」とは、以下のような特徴を持っているものをいいます(これが全部ではないですが、少なくともこれらを全部満たします)。

  1. 不特定多数のユーザが共通の物理的実体にアクセスし、サービスを利用する
  2. 継続的に機能が追加されていく(削除されることもある)
  3. 一般に、いつまで使われ続けるのかあらかじめ決められていない
  4. コア技術の多くを外部に依存しているため、外部環境の変化を受けやすく、またその変化が非常に早い

Webサービスの構成要素の一番大きなものはソフトウェアですが(もちろん「サービス」なのでソフトウェアだけで完結するとは限らない)、WebサービスとMicrosoft Officeなどのようなソフトウェアとを比べると、(1)が一番大きく違います。前者は、(1)にあるように、一般に共通の物理的実体を共用します。後者は、ソフトウェアのコピーを使用します。(2), (3)については同じ。(4)については、Microsoft Officeについてはコア技術を外部に依存するようなことはあまりなさそうに思えます。

こうしたWebサービスにとって一番の優位であり、かつ、継続性という面においてリスクであるのは(4)についてではないかと考えます。どういうことか。ここで「コア技術」といっているのは、Webサービスを提供するためのソフトウェアを作るのに、たとえばLinuxRailsなどのOSSが使われることはよくあることですが、そのような技術のことを指しています。

優位な面は、高度な技術を比較的安価(それを使いこなせる人材にはお金はかかりますが)に利用可能であるため、スタートアップが早いということでしょう。継続性という面におけるリスクとは、OSSにはそれぞれのプロダクト固有のライフサイクルがあるため、単に初動の早さのみに着目して運用のコスト(セキュリティ対策、バージョンのアップデート、複雑化するエコシステムへの学習)を考慮に入れないと、安定したサービスを継続的に運用することが難しいということです(そういうのを「リスク」というと語弊がある感じもしますが、OSSそのものにリスクがあるのではなく、利用者側の認識にリスクがあるという意味です)。

そうした継続性におけるリスク(要するに、外部環境の複雑性に関する認識のズレ)を縮減するために、Webサービス企業においては、たとえば以下のような戦略がとられます(これがすべてというわけではないです)。

こうした特徴を持つWebサービスに似ているものとしては、建築物があげられるでしょう。ただし、建築物には以下の特徴があるため、類似は限定的であると思います。

  • 継続的に機能が追加され得る、つまり増改築され得るが、法規制の範囲内なので予測可能である
  • 耐用年数が予測可能である
  • 構成要素を外部に依存していたとしても、その調達コストが(OSSのエコシステムの変化に比べれば)予測可能である

というわけで、けっこう違うなあと思うわけです。また、上ではあげませんでしたが、Webサービスを含むソフトウェアと、物理的実体からなるプロダクトとは、可視性の点において大きな違いがあると思いますが、煩雑になるのでここではおいておきます。

というわけで、

  1. 以上に述べたようなWebサービスのようなプロダクトに似ているプロダクトがあるとしたら、それは何か?
  2. そうしたプロダクトについての包括的な議論
  3. そうしたプロダクトについての個別具体的な議論(競争戦略、品質保証、コミュニティによる創発などなんでも)

といったことについて、読者諸賢のご教示をいただきたく思う次第でございます。ソフトウェア工学や経営学、ファイナンス等、学際的な議論が必要な領域なのかなという想像を抱いています。

上記のKazuho's Weblog: もうひとつの知られざるオープンソース 〜 ウェブ企業のOSS戦略で紹介されている『ソフトウエア企業の競争戦略』という本は読みました。ここで述べるWebサービスの各特徴それぞれを網羅した議論にはなっていませんが、議論の前提を知ることができます。

ソフトウエア企業の競争戦略

ソフトウエア企業の競争戦略

追記

補足を書きました

さらに追記

ソフトウェアのアップデートとウェブサービス運用における継続性リスクについて - kazuhoのメモ置き場で言及いただきました。ありがとうございます。上記に記したことのそもそもの前提として、ソフトウェア業界のみならず、製造業においてもリスク回避的アプローチへの変化が起こっていること、その上で、そのようなアプローチが前提となった状況で、どのようにOSSを利用していけばいいのかということについても、原則的基準が示されています。他業界のことをあまり知らないので勉強になります。

原則的基準については僕も非常に共感するわけですが、現にたとえばPHPだとかRailsだとかのような「まだ進化中の非コモディティ製品」(PHPのことを非コモディティというのは違和感があるかもしれませんが、セキュリティフィックスの多さ、仕様がころころ変わることなどの変化の多さに主眼をおいています)が多く利用されており、成功したり失敗したりしているわけですが、その際に対価を払う必要があるのは当然として、

  1. 対価についてどのように考えたらよいのか(技術投資の現在価値と、将来払うことになる対価の問題)
  2. そもそも対価についてこれまでどのように考えられてきたのか
  3. これまで対価はどのように払われてきたのか
  4. 対価を払うにあたって、組織構成の変革が必要であるとしたら、その構成はどうあるべきか

といったあたりに興味を持っています。