世界を動かす技術を、日本語で。

SaaSは、より良いブランディングを伴ったベンダーロックインに過ぎない

概要

  • SaaS連携には見えない「5つの隠れコスト」が存在
  • 各段階で時間・手間・精神的負担が発生
  • SaaS導入は依存関係やベンダーロックインを招く
  • 一体型プラットフォーム利用でコスト削減が可能
  • 本当に重要なのは「自分が書きたいソフトウェア」に集中すること

SaaS統合の隠れた5つの税金

  • SaaS導入 は「製品開発に集中できる」という触れ込み
  • しかし 認証・キュー・ストレージ・画像最適化 などの外部サービス統合には、目に見えないコストが発生

1. ディスカバリー税

  • サービス内容・解決可能な課題・自社スタックとの互換性調査
  • 価格体系やドキュメントの質 確認
  • 事前調査は 再利用不可 なケースが多く、マーケティング情報の主観的判断も必要

2. サインアップ税

  • サービス選定後の アカウント作成・クレジットカード登録
  • 従量課金か固定プランか の確認、チーム利用可否や追加料金の有無
  • 無料トライアルの制限 や、コードを書かずとも契約が始まるリスク

3. 統合税

  • ドキュメント読解、 ライブラリ導入・実装
  • ドキュメント未記載の エッジケース対応
  • 自社ツールとの相性問題 や、最新技術とのギャップ

4. ローカル開発税

  • ローカル環境でのSaaS動作検証
  • エミュレータやスタブの有無、クラウドトンネリングの必要性
  • 本番・ステージング・ローカル での分岐設定管理

5. プロダクション税

  • 本番運用後の環境差異対応
  • APIキー管理・監視・ログ・アラート運用
  • 開発環境と本番環境の不整合 や、サービスの信頼性担保

SaaS導入の本質的な課題

  • 車輪の再発明を避ける」というSaaSの売り文句
  • しかし、 依存・契約・アーキテクチャの変化 が必ず発生
  • ベンダーロックイン は避けられず、切り替えには多大なコスト

一体型プラットフォームの利点

  • CloudflareやSupabase のような統合型プラットフォーム活用
    • データベース・キュー・画像サービス・ストレージが 同一基盤
    • ベンダーごとの切替・APIキー管理・互換性対応不要
    • 開発・本番で 一貫した操作感 を実現
  • 「コードとサービスの距離」 を縮め、開発者の集中力= Flow を最大化

結論

  • 大切なのは「自分が書きたいソフトウェア」への集中
  • フレームワークや個別サービスにこだわりすぎず、 統合プラットフォーム選択 が隠れたコスト削減の鍵

Hackerたちの意見

つまり、著者は「SaaSを買うな、ベンダーロックインだ」って言ってるんだよね。代わりに、Cloudflareみたいな一つのプラットフォームに全力投球しろって。彼が書いてるSDKが動く唯一のプラットフォームだし。それって本当にロックインじゃないの?いや、待って、結局どんな選択をしてもロックインになるんだよね。何かを切り替えるってことは、たとえオープンソースで自己ホスティングしてても、たくさんのコードを書き換えなきゃいけないってこと。これがロックインの意味じゃないよ。特定のベンダーのコンポーネントや統合があるからって、ロックインされてるわけじゃない。ロックインっていうのは、他のものに切り替えるのがA) 不可能、またはB) 現在のものを使い続けるよりも大きな投資が必要になることを指すんだ。ソフトウェアをゆるく結合して高い凝集性で書くと、異なるコンポーネントの交差点は、あるコンポーネントを別のものに置き換えるのにあまり手間がかからないように設計されてる。システムにも同じことが言えるよ。もしそのコンポーネントのインターフェースがシンプルで、使い方が凝集していれば、パーツを置き換えるのは難しくないはず。だけど、コンポーネントが凝集していなければ、何かを置き換えるのは大変な手間になる。だから、「すべてがロックインだから、もうどうでもいいや、もっとロックインしちゃおう!」ってプラットフォームを選ぶのは良いアイデアじゃないよ。開発者としては、その方が楽だって分かるけど、ビジネスオーナーとしては、これは解決策を選ぶには愚かな理由だと思う。ビジネスをサポートして、時間とともに変化する柔軟性を持たせる解決策を選ぶべきだよ。

だから、ビジネスオーナーとしては、これは解決策を選ぶには愚かな理由だと思う。ビジネスをサポートして、時間とともに変化する柔軟性を持たせる解決策を選ぶべきだよ。賛成だよ。もし始めたばかりで、ビジネスが利益を上げていないなら、SaaSを選ぶべきじゃない。時間をかけてその5つの税金を払う必要はないよ。むしろ、そのプラットフォームを使って、もしスケーラブルで利益が出て成長しているなら、長期的にサポートしてくれる別の技術を選ぶべきだね。

参考までに言うと、僕はCloudflare Workersをよく使ってて、どこでも動くようにコードを書いてる(もし本当に必要なら、wrangler devを使ってローカルでコードを動かすこともできると思うけど?)でも、僕のソフトウェアは少しの変更で動くし、あるいは純粋なNode/Bun/Denoでも動くと思う。

これはアダム・スミスの「地代追求」を現代のハイパースケーラブルな形で表現したものだね。反社会的経済学の観点から、これは避けるべきで、犯罪化されるべきだと思う。自由ソフトウェアのもう一つの極端な形は、経済的に見ても悪いとも言える。なぜなら、クリエイターの努力に対して、ユーザーが得る価値に比例して報酬が与えられないから。ソフトウェアを買わせて、その上で実際に価値を提供するサービス契約を別に用意してほしい。これをSaaSで束ねるのが、非常に不適切なんだ。

僕は、自分のSaaSを市場価格で買いたい人に売ってるよ。

これがまさに、フレームワークをマネタイズする方法を考えてるところなんだ。

この論理はちょっと理解できないな。ほとんどのSaaSには、プロバイダーからの継続的なコストがあるよね:ホスティング、サポート、研究開発とか。これがどうして地代追求になるの?

もしそんなに情熱があるなら、同じくらいのコスト(例えば、ユーザーあたり月10ドル)でオンプレミスのSaaSソフトウェアを構築、展開、維持する会社を始めてみたらどう? もし同じサービスや保証、価格を提供できて、企業がデータをコントロールできてロックインを防げるなら、世界で一番大きな市場を持つことになるよ。

無料ソフトウェアのもう一つの極端な面は、経済的に見ても悪いとも言える。なぜなら、ユーザーが得る価値に対して、クリエイターの努力が適切に報われないからだ。じゃあ、そんな高品質(あるいは少なくとも広く使われていて重要な)無料ソフトウェアがたくさん存在する経済的な理由は何なんだろう?

つまり、s/サブスクリプション/サービス契約/ってこと?

利用可能な価格設定の力を行使することと、家賃を求めることは同じじゃないよ。

まあ、そうだけど、あんまりそうでもないかな。むしろ「くっつきやすさ」やソフトウェアをくっつきやすくしようとする考え方は、家賃を求めることだと思う。もちろん、ほとんどのSaaS企業はくっつきやすさを追求してるけど、それはSaaSの本質的な特性じゃないよ。

どうでもいいけど、バイナリを提供して、それをawsやgcloud、できればcloudflare workersで動かせるようにできると思うんだ。cf workersは、typescriptやsveltekitに集中すれば本当に良い感じだし。誰か教えてくれないかな? いろんなサイドプロジェクトを作ってるんだけど、その中には本当にクールなものもあって、"SaaS"になる可能性もあると思う。でも、消費者の視点から見るとSaaSが嫌いで、お金を稼ぎたい立場から見るとSaaSが好きだから、倫理観がちょっと怪しいんだよね。それに、誰かに自分のソフトウェアを買ってもらいたいとしたら、それはどういうことになるんだろう? もし彼らが私の許可なしにそのソフトウェアを再配布したら、利益が減っちゃうよね。SaaSができなかったことが、ここで影響してくるんじゃないかな。それに、私は個人的にFOSSの支持者だから、君が言ったように経済的には悪いと思ってる。だから、ソースが公開されていて、許可やライセンスが必要なソフトウェアを作ろうかなと思ってる。ライセンスはGitHubでスポンサーになってもらう形で取得できるようにしたいんだけど、あるプロジェクトがそれをやってて、Hacker Newsの人たちがその可哀想な人をピッチフォークで攻撃してたのを見たんだ。実際に「何かの」価値を提供しようとすると、自動的にMITを使わない悪者にされちゃうのが本当にクレイジーで奇妙だよね。だから、ライセンスについて考えてるんだけど、ライセンスがない場合はSSPL、ライセンスがあればBSD/MITみたいな感じ(Redisっぽい)にしようかなと思ってる。でも、果たして人々がそれを買ってくれるかどうかは分からない。両方サポートできるかもしれないけど、どうなるか分からない(笑)。だから、教えてもらいたかったんだ。追記:本当に無料で自分の暗号通貨を作る方法を作ったんだけど(冗談じゃないよ)、どうやって収益化するか分からなくて、もし誰か助けてくれたら嬉しいな! あと、YouTubeの投稿からブログを取得する方法や、Googleフォトの代わりに無制限のストレージを提供するYouTubeコミュニティ投稿や動画の方法も作ったんだけど(コミュニティ投稿のプライバシー面はちょっと悪いけど、そこも修正できると思う)。

良いスタートだけど、フリーソフトウェアへの攻撃には賛成できないな。君の最後の段落には同意するけど、そんなサービスは具体的に何を含むの?テクニカルサポートの契約みたいな感じ?

じゃあ、ベンダーロックインを防ぐために…もっとロックインして、一つのプラットフォームに全てを結びつけるの?

もっとロックインして、一つのプラットフォームに全てを結びつけるの? プラットフォームを「ロックイン」だから使いたくないって言ってるのに、SaaSを使うなら…その主張は成り立たないよね。特にSaaSを使う「税金」を考えると。

OPはSaaSに反対してるわけじゃないよ(結局、OPはCloudflareかSupabaseを推奨してるし、どちらもサービスとして提供されてるからね…)。あれはただの釣りタイトルで、実際には100社以上のベンダーに登録することや、商業的な関係の煩雑さに反対してるんだ。これは…特に物議を醸すことでもないし、ベンダーが少ない方が楽だよね。依存関係が少ない方が楽だし。標準ライブラリだけで全製品を作れたら最高だけど、残念ながらそれは現実的じゃないね。夢のような話だけど。

ありがとう!まさに私が言ってたことを要約してくれたし、釣りタイトルについても指摘してくれたね。ここでの私の目標は、新しいことを始めるなら、いろんなサービスを使うんじゃなくてプラットフォームを選ぶことを考えてほしいってこと。Cloudflareが好きな理由は、バインディングがあるから。多くの場合、fetchを使ってリクエストとレスポンスでサービスとやり取りしてる感じがする。fetchがウェブのUnixパイプみたいになってる気がするよ。

個人的には、ベンダーロックインってのは、上司に「なんでNEWTHINGを使えないの?」って聞いたときに、「Oracle/MS/IBM/Salesforceと5年契約があるから、これを使うことになる」って言われることだと思う。10プラットフォームも持つことはないから、10年後には本当にロックインされてることになるよ。誰もその状況を変えようとはしないからね。

もし10年続けられたなら、それは素晴らしい問題だね(あるいは、すごく退屈な問題かもしれないけど)。でも、もし今始めたばかりなら、スタートアップに集中できるのに、そんな決断をするのを防ぎたいんだ。だから、プラットフォームを選んで、そのツールを使い続けることを考えてみてほしいんだ。自分でバンドルするんじゃなくてね。

こういうサービスを標準化されたインターフェースの背後に抽象化するのは良いアイデアだね。これで、あるサービスから別のサービスに切り替えるのは、単にそのインターフェースに対する代替実装を提供するだけで済む。もちろん、このアプローチには少し先を見越す必要があるけど…今の多くの企業にはそれがないみたいだね。

今のキャリアの段階では、ベンダーロックイン(つまり「この安定したつまらない企業支援の技術を永遠に使うことになる」ってこと)が神の恵みだよ。AWSは喜んで使うけど、RedwoodSDKを学んで実装するために時間を使うつもりはないよ、何だか知らないけど。

RedwoodJSのフロントエンドフレームワークはあるけど、RedwoodSDKは聞いたことないな。IBMを雇ったからって、誰もクビにならないよね。

これって、オープンソースの宣伝みたいに読めるな。 > 何かを切り替えるってことは、たとえそれがオープンソースで自己ホスティングされていても、多くのコードを書き直すことになる。オープンソースで自己ホスティングの利点は、記事に書かれている「税金」をほぼ解決できることだよ。記事で言うところの発見、サインアップ、統合、ローカル開発の税金は、良いオープンソースのローカル開発のストーリーで簡単に解決できる。生産税(税金って言葉が合ってるかな?)は、貢献や良いプラグイン/モジュールのエコシステムで解決できる。

オープンソースは、時間が無価値なら無料だよ。

宗教とカルトの違いは、宗教からは離れられることかもね。同じように、データを標準フォーマットで取得して離れられるなら、ロックインされてないってことだ。顧客は、自分のデータにアクセスできるとき、あまり不満を感じない傾向があるよ。多くのSaaSプラットフォームはこれを許可してないけど。

すごく興味深いね。副業で収益化を目指してる僕としては、何をすればいいのか迷ってる。1) 緩やかなライセンス(MIT)でオープンソースにする 2) 制限のあるライセンス(AGPL/SSPL)でオープンソースにする 3) ソースを公開して、ライセンス料を払ったら緩やかにする(Redisみたいに、プロジェクトが有名になった後にライセンスを変えるんじゃなくて、最初からそうする) 4) ソースを公開せず、固定のバイナリを配布する 5) 上記のどれかをやるけど、主にSaaSをサポートする? そして、君が言ったように移行できる能力もサポートする? 現在、僕が書くソフトウェアのほとんどはMITでオープンソースにしてて、価値があると思うソフトウェアだけはプライベートにしてる。

SaaSを使うと、ほぼソフトウェアの限界費用の恩恵を手放すことになる。ベンダーはおそらく、限界費用の利益を低価格でシェアしてるけど、ユーザー数やユーザーあたりの価格がある規模になると、SaaSの顧客は悪い取引をすることになる。問題は、会社の初期段階で自分のことを運営するのは愚かだってこと。成功してスケールしたときに問題になるんだ。コストを低く抑えることで、スケールする必要が出てくるまで生き残ったわけで、その一つの方法がSaaSサービスを使うことだった。それは賢い選択だった。ビジネスが成長するにつれて、少なくとも1つか2つのSaaSサービスが会社の日常業務に深く絡みついてしまって、今やそれらを置き換えるのは長くてリスクが高くて高額な移行プロジェクトなしには無理になってる。SaaSの問題は、成功の負の副作用だね。編集 - タイポと単語の変更

依存関係を最小限にすることが、製品やビジネスの生存性を高めるためにできることの中で、たぶん一番大事なことだと思う。以前の役割では、私たちの製品と統合したDocuSignスタイルの体験を提供する最適な方法を見つける責任があった。二つの大手ベンダー(DocuSign/Adobe)と話した結果、彼らのAPIの制約が私たちの製品や顧客が望む動作に対してあまりにも摩擦を生んでいることがわかった。そこで、完全に社内でのソリューションを選んだ。ほとんどの状況で、DocuSignのようなものを再発明しようとするのはひどいアイデアだ。特に、信頼されているから使うだけで、技術的に優れているからではないことが多いからね。私たちの場合、製品はすでにインストールされていて、顧客から深く信頼されていた。彼らはDocuSignでも問題なかったけど、私たちがファーストパーティでやることには問題がなかった。結局、これを実装するためにはかなりの前準備が必要だったけど、顧客は本当に喜んでくれた。機能の動作を少し調整する必要があって、それがこの道が良い理由を際立たせた。もしDocuSignやAdobeに行っていたら、その小さな調整が大規模なリファクタリングや面倒なことになっていたと思う。