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

ソフトウェアチームの経済学:なぜほとんどのエンジニアリング組織は盲目的に進んでいるのか

概要

  • ソフトウェア開発チームの 実際のコスト経済的成立条件 を解説
  • 多くの組織で 財務的な可視性の欠如 が常態化している現状
  • プラットフォームチームと顧客向けチームの 収益性と指標 の違い
  • 財務指標ではなく 活動・感情的指標 が選ばれる構造的理由
  • LLMの登場による エンジニア人数依存モデル の再考必要性

ソフトウェア開発チームのコスト構造と財務ロジック

  • Western Europeの ソフトウェアエンジニア1人あたり年間コスト は約 €130,000
  • 8人チームの年間コストは 約€1,040,000、月額約 €87,000
  • 1営業日あたり約€4,000 のコスト発生
  • エンジニア自身や管理職でも この数字を把握していない ケースが多い
  • 意思決定ごとに暗黙的なコスト が積み重なる構造

プラットフォームチームの損益分岐点と現実的なハードル

  • 8人のプラットフォームチームが 100人のエンジニア向けにサービス提供 する典型例
  • チームの月額コスト €87,000 を正当化するには 同等以上の価値創出 が必要
  • 最も直接的な価値指標は 時間短縮
    • 1人あたり月 13.4時間 (週3時間)の短縮で損益分岐点
  • 現実的な財務成立ライン はコストの 3~5倍(€260,000~€435,000/月)
  • 失敗プロジェクトや長期運用コストを考慮すると 3~5倍の価値創出が必須

顧客向けチームの損益分岐点と価値レバー

  • 顧客向けプロダクトチームも 月額€87,000のコスト
  • ARPU(ユーザーあたり月収益)€50 の場合
    • 損益分岐点: 1,740ユーザー分の価値創出
    • 財務成立ライン: 5,000~8,700ユーザー分の価値
  • チャーン(離脱)改善アクティベーション率向上 が直接価値に直結
    • 例:アクティベーション率5%改善で €25,000/月の追加収益
    • コンバージョン率0.5%向上で €5,000/月の追加収益
  • 財務指標との因果関係を理解しないとレバーの効果が限定的

なぜ財務的な指標が使われないのか

  • 多くのチームは 活動量(ベロシティ、チケット処理数)や感情的指標(NPS, CSAT) を重視
  • これらは 財務指標の代替ではなく別カテゴリ
  • 活動・感情指標が上がっても経済的成果が出ない 場合が多い
  • 財務指標は 測定・説明・報告が難しく、透明性を要求 するため、組織が避けがち

財務的可視性が失われた背景

  • 2002~2011年:資本は安価だが投資家は慎重
  • 2011~2022年:ゼロ金利政策とSaaSモデル普及で頭数増加が許容
    • 多くのプロジェクト失敗や優先順位ミスが 収益成長で隠蔽
  • 財務的規律が不要な時代 が10年以上続いたことで現状が定着

LLM時代と今後の課題

  • LLM(大規模言語モデル)登場 で「エンジニア人数=資産」モデルの再考が必須
  • 本質的な価値創出や 財務的な意思決定基準 への転換が求められる時代へ

このように、ソフトウェア開発組織は コストと価値の可視化 を怠りがちだが、今後は 財務的な観点 からの意思決定と評価が不可欠となる。

Hackerたちの意見

明らかな反論は、その速度で生成されたコードは管理が難しくなり、それ自体が負担になるということだよね。それは合理的な懸念だけど、主にエージェントが生成したコードを人間がメンテナンスする場合に当てはまる話。エージェントプラットフォームは急速に進化していて、確立されたパターンやビジネスに直接関係ないコードについては、ほとんどのエンジニアリング組織が実際に維持しているものだから、コードベースに対する人間の詳細な理解は以前ほど重要じゃなくなってきてる。ごちゃごちゃしたコードベースでも、チームを組むよりはエージェントを10人使った方が安上がりだしね。たとえエージェントが不慣れなシステムを理解するのに10日かかっても、今のほとんどの開発チームよりは早くて安い。負担の議論は、人間同士やエージェントと人間の世界では成り立つけど、エージェント同士の世界ではほとんど消えてしまう。で、この人が売ってるコースやワークショップも同じだと思うな…LLM(大規模言語モデル)が、彼のワークショップやコースに対して要求している金額の0.1%にも満たないコストで、少なくとも75%の財務的洞察を提供できると思う。もしかしたら「アジャイルコーチLLM」が「コーディングLLM」に、なんでそんなに高いのか説明してくれるかもしれないし、「コーディングLLM」が「アジャイルコーチLLM」に、そんなにコードについて知ってるなら次のシフトをやれって言うかもね。そしたら、私たち人間は休みを取ってプールでリラックスできる。

その通り。LLMのホットテイクを読んで、これがLLMによって書かれた可能性が99%だと思うのは久しぶりだし、今回も例外じゃないね。売られているトレーニング資料が、プロンプトで同じように置き換えられる確率が99%だと思う。

AGIが俺の仕事を奪うっていう前提を受け入れるとして、俺の仕事は仕様書を読んでコードと出力を確認することなんだ。だから、解雇して訴えるための人間が必要なんだよね。その前にふわふわした管理職や企業の無駄が5層もあるし、AGIはその柔軟なスキルに関してはもっと有能だよ。面倒なプロセスの人たちがいなくなったら、フルタイムでバイブスロップをレビューするのも悪くないかも… 足を上げて、温かいコーヒーを飲みながら、自分とエージェントだけで必要なときに悪態をつけるし。会議もないし、問題もない。

一般的に、今は学ぶのにお金がかかる情報ってほとんどないよね。前に立ってる人は、強制的に学ばせるための規律者みたいなもんだ。

誰かが数字やグラフをたくさん投げつけてくると、議論に勝つためにやってるんだなって思う。最近、ロリー・サザーランドのアイデアをたくさん見かけて、彼の考えを聞いて思ったのは、数字に執着してる人たちがいるってこと。彼らにとっては、それが確実性を見つけて議論に勝つ方法なんだ。彼はそれを「ファイナンスの人たち」と呼んでる(彼自身はマーケティングの人)。例えば、「ファイナンスの人たちは、会社を長期的に儲けさせたいわけじゃない。彼らは確実性と予測可能性にこだわってる。完璧な確実性、完璧な定量化、完璧な測定の幻想に世界を合わせようとしてる。問題は、コストは本当に定量化できて、目に見えるってこと。コストを削減すれば、ほぼ瞬時に予測可能な利益が得られる。」 > 「ユーザーの2%にしか役立たない機能に3週間かけることは、€60,000の決断だ。たとえ75%の確率でその2%を正確に教えてくれるPM/アナリストを雇えるなら、ぜひとも雇いたいし、非線形な結果が出ることは約束してほしくない。」

ほとんどのことと同じように、真実はどこか中間にあるんじゃない?真のコストや価値を計算するのはすごく難しいけど、もうちょっと頑張ってそれに近づこうとすることで、みんなが得られるものがあると思う。緊張感を二元的に捉えるのはよくあるけど、数字を追う人たちと贅沢なアーティストたちの対立みたいにね。何度も見てきたけど、あんまり役に立たないよね。

あなたはTFAのポイントの一つを示してるね。機能の使用状況を測定するための適切なツールを持っていて、それを全体のユーザーベースの成長や維持率に信頼性をもって関連付けられるチームは、長期的には魔法のような個人のPMやアナリストに頼るチームよりも成果を上げるだろうね。

より正確になろうとする試みは、ソフトウェアの見積もり(例えば、神話の人月)を見ても分かるように、長い間副作用のためにやってきたって主張してきたんだ。だから、€60kを使って少数のユーザーに直接利益をもたらすことが分かっていて、これが四半期ごとに10件の顧客問題を引き起こし、月に1件のバグ修正が必要になる可能性があることを理解したら、指定された利益と同等の価値を引き出すことを確実にしたくなるよね。さらに、指定されていない利益(例えば、これが2%の顧客に役立つってことは、これが重要なニーズだった市場に開放されて、突然25%成長して22%のユーザーが使うようになるかもしれない)も考慮する必要がある。これを計画することはできるけど、最終的には測定する際に多くは「成功」の半定義されたバージョンに従って壁に物を投げてみることになる。でも、本当に市場を制覇するには、特定の問題領域を深く理解し、それを解決するための壮大なビジョンを持ち、実際にそれを実行することが必要なんだ。だいたい、解決するのが一番得意な問題である必要があるよね!

彼の数学は本当に合ってないよ。ソフトウェアを作るのは、少なくとも以前は、それを維持するよりも桁違いに高かった。でも、どれだけお金を稼げるかは無限の可能性がある(置き換えられるまでは)。だから、例えば今年1000万を投資して、200万のARRを生み出す製品を作ったとしたら、エンジニアリングコストをゼロにできれば5年後には元が取れる。さらに、同じチームを使って別の製品を作って、そのプロセスを何度も繰り返すこともできる。だから、エンジニアリングチームは資産なんだ。でも、ギャンブルでもあるよ。今年1000万を投資して、製品が収益を生まなかったら、その賭けに負けたことになる。もう一度賭けるか、みんなを解雇するかを決めることになる。製品や機能が収益を生むかどうかを予測するのは、非常に難しいか、もしかしたら不可能かもしれない。だから、彼の数学はちょっと無意味だね。

お金の抽出だけに焦点を当てるのは、平凡なものを作るための素晴らしいレシピだよ。ハリウッドやマイクロソフトを見てみて。まるでディアブロのビルドをミニマックスして、製品の品質を「許容範囲」ギリギリに保ちつつ、それ以上は無駄遣いだって考えてるみたい。そうすれば、残りのポイントを収益に振り分ける自由がある。

その通り。さらに、時には良いソフトウェアが「たった」1%の時間を節約するだけでも、その1%が精神的疲労を引き起こしたり、悪い決断をさせたりすることもあるんだよね。それが、前のバージョンで辞めていた優れたエンジニアを引き留めることもある。

重要なのは、チームの人たちがその製品にどれだけ深く関心を持っているかだと思う。彼らが短期的には自分のキャリアよりも製品に関心を持っているかどうか。そうでなければ、どんな指標や考え方でもゲームされる可能性がある。残念ながら、どんな管理手法があっても、どうしても気にかけられないプロジェクトもある。そういうプロジェクトでは、生産性の上限がかなり低くなるんだ。

ごちゃごちゃしたコードベースでも、チームを組むよりはエージェントを10人使った方が安上がりだしね。たとえエージェントが不慣れなシステムを理解するのに10日かかっても、今のほとんどの開発チームよりは早くて安い。私は完全にAI生成の2つの失敗プロジェクトに関わったことがあるけど、エージェントが遅くなるわけじゃなくて、もっと多くのエージェントを使ってプロジェクトに取り組むことができるわけでもない。彼らは完全に進捗を出せなくなってしまうし、出した進捗も間違ってることが多い。

技術的負債に溺れる人間とよく似てるね。ごちゃごちゃしたコードベースが魔法のように修正できるという考えは笑える。だけど、エージェントがリライトをもっと簡単にするかもしれないとは思う。「今、何を作ろうとしていたのか分かったから、今度はちゃんとやろう!」

この記事の部分は、私もあまり気に入らなかった。コードはエージェントによって生成され、エージェントはそれをデバッグできるけど、常に人間が所有することになる。もし明日、AnthropicがClaudeが生成したコードの所有権を持つことにならない限り、それは変わらないよ。

同じく。今、43,000行以上のコードを削除したところだよ。AIコードを本番環境に入れる意味がなくなった。ほとんどの場合、正しい抽象化を使ってないからね。問題にもっとエージェントを投げ込んだり、検証レイヤーを増やしたりしても、機動性を失うだけだよ。たとえそれらがまだ機能することができてもね。

「完全にAI生成の失敗プロジェクトに2つ関わったことがあるけど、エージェントが遅くなるわけじゃなくて、プロジェクトにもっとエージェントを送っても全く進展がなくなるだけなんだ。進展があったとしても、それは間違ってることが多い。これは『神話の男月』とよく似てる。今、エージェントが開発したコードには『神話の機械月』的なことが起きてる。」

AIと一緒に仕事をすればするほど(AIを活用するツールを作ってる)、人間がよくやる注意の失敗に似たところが見えてくる。これを忘れちゃったせいで全てが台無しになったり、さっき言ったことだけど、頭の中がごちゃごちゃしててその部分を忘れたり。昨夜のクロードのケースなんかもそうで、指示を出してる時に別のサーバーにSSHできないって言ってたのに、5回目に戻ったらそのサーバーにSSHしてるのを見つけて、ちゃんと直してくれた!こういうことは人間もやることで、これを言語そのものに直接結びつけることはできないと思う。注意力や文脈の問題で、私たち両方に同じ問題があるんだよね。

もっとカプセル化を進めるべきっていうケースはあるのかな?クラスとテストを定義して、LLMがそれだけに取り組むっていう。

まだ、普通の人たち(著者みたいな)がAIの素晴らしさを売ることで何を得るのか理解できない。AnthropicやOpenAIの人たちが毎日AIを押し付けてくるのは分かるけど、誰もがそうじゃないよね?

彼はAI/LLMに関するコンサルティングを売ってるんだ。

このトピックには、結構微妙なニュアンスがある気がするんだけど、みんなそれを見落としてるよね。技術的な決定の直接的・間接的な財務影響は確かに測るのが難しい。でも、技術的な決定の中には、他よりも明らかに財務的な影響が大きいものもある。すべての決定のコストや利益を正確に定量化するのは難しいけど、相対的に順位をつけることはできる。XはYよりもお金を生む可能性が高いから、まずXをやって、次にYをやるって感じ。製品や機能が本当にお金を生むかどうかには、かなりの運が絡んでるから、期待値がプラスの良い計画でも、結局お金を失うこともある。どんな決定の結果も100%確実ではないからって、全てを投げ捨てるわけにはいかないよね。

いい記事だと思ったけど、Slackの例を見てからはそう思わなくなった。コピーは、実際のSlackソフトウェアのスケールや信頼性、観測性、監視性、メンテナンス性、機能性を全然理解してない感じ。著者は、非開発の仕事の違いだけを書いてるけど、それだと全然話が分かってないように見えるし、あのスケールでアプリケーションを運営することが何を意味するのかも理解してないみたい。この「クローン」は、白い紙よりも実際のSlackのコピーに近づくことはないよ。

同じ経験があるよ(ただ、他のコメントに同意するけど、数字はちょっと楽観的だと思う。プロダクト作業には大きなバラつきがあって、良い投資が何かは遅すぎるまで分からないし、これが原因で多くの企業が失敗してる。運良く初期に失敗しなかった企業には大きな生存バイアスがある)。Slackは、何がうまくいくかを見つけるために、プロダクトやエンジニアリングの時間をたくさん使った。あれだけの努力の後で、コピー&ペーストするのは簡単だけど、そのコピー&ペーストでは次のSlackにはなれない。マイクロソフトのSlackを潰すTeams戦略にはなるかもしれないけど、そんなのは望んでないよね。もちろん、インフラやメンテナンスコスト、APIの使用や拡張の管理コストについても同意するよ。LLMはそれをやってくれないからね。

そうだね、AIなしで自分の手で2週間でSlackの「クローン」を作れるけど、実際にはSlackと競争できるものにはならないよ。基本的な企業機能の一つを挙げると、私の2週間のSlackクローンは法的保持を適切にサポートできない。これは、製品内のどこでも削除や期限切れのオプションに対して強制的なオーバーライドが必要で、訴訟中に証拠を誤って破壊しないように信頼性を持って機能しなきゃいけない。これを間違えると、大企業には売れないんだ。他にもこんな機能が山ほどある。エンジニアはSlackボット用の使いやすいAPIを求めてるし、ユーザーはリアクションGIFを求めてる。モバイルアプリも必要だし、シングルサインオンも必要。これらは全て基本的な条件なんだ。Microsoft Wordには「機能が多すぎる」というのが何年も前からの定番だった。だから、人々は「最も使われる20%の機能だけを実装した軽量ワードプロセッサ」を売る会社を始めた。でも、ほとんどの会社は跡形もなく消えていった(特定のニッチに特化した数社の例外を除いて)。Googleはついに独占に対抗する進展を見せたけど、そのためには多くの機能に投資したんだ。信じて、シンプルでクリーンな再実装が主要な製品と直接競争できることを願ってる。でも、LLMがSlackをすぐに再実装できると思ってる人は、実際に顧客にソフトウェアを売ることを真剣に考えたことがない完全なバカだよ。

まさに、その「Slackのコア機能の95%」を見た瞬間、著者が何を言ってるのか信じられなくなった。

散らかったコードベースは、チームを組むよりも10人のエージェントを通す方が安上がりだって言う人たちは、今のエージェントを十分に使ったことがないか、彼らが作るものをよく見ていないんだよね。彼らが書くコードは全然散らかってない。むしろ、エージェントに設計図と仕様書から建物を作らせるようなもので、ちゃんとしたサイズと色で、全てのテストをクリアするんだ。でも、実際には壁や梁がフォームでできていて、アートが耐荷重になってるってことがわかる。外見は良いけど、全体の構造が間違ってるんだよね。さらに、数階を追加しようとすると、エージェントも人も「通り抜けられない」状態になる。コードベースは完全に壊れちゃってる。今のエージェントは、非常に近い人間の監視がないと、長期間進化に耐えられるコードを作る能力がないんだ。

それを克服するためには、仕様の一部としてもっと階を追加できる必要があることを含めるといいよね。人間でもエージェントでも、あまり明示的にそれを指定することは少なく、暗黙の知識として扱われることが多い。逆に、人間の方がそういうことが多いかも。小さなプロジェクトでK8sを使うことってどれくらいある?

問題は、船を操縦しているMBAたちが、AIがもっとデータセンターを増やすことで全てを解決すると信じていることだ。ギガワットの計算能力について話す時点で、彼らがどれだけ妄想的かがわかるよね。さらに、この妄想がエージェントやハーネス、専門モデル、微調整された派生物に進化する際の副次的な影響も心配するべきだと思う。

デバッグも苦労するだろうね。賢いコードを書けば書くほど、それをデバッグするのは難しいっていう古い格言がある。エージェントが自分の書いた賢いコードをデバッグするのを妨げるものは何もない。だから、私の質問は、もし本番環境がダウンしたら、誰がデバッグするの?10日間も待ってられないよ。

ソフトウェア開発は、現代の企業が行う最も資本集約的な活動の一つだ。この記事は確かに「ハイテク」業界の視点から書かれてるね。中規模の公共事業は、年間でIT資本プロジェクトに8000万〜1億5000万ドルを使うかもしれないけど、電柱のメンテナンスには20億ドルもかけてる。公共事業は良い例だけど、大企業の製造業も工場のアップグレードにプログラミングよりも多くのお金を使ってる。 > [...] 14日間でLLMエージェントを使ってSlackのコア製品の約95%の機能的なレプリカを作った。ITやファイナンスのリーダーシップ、資産が重い企業は、現在の100以上のSaaS契約の経済を理解しようとしていて、LLMを活用した開発者でまだ意味があるのかを考えてる。これらの企業から使っているツールの一部を社内で開発者を雇って作り、コストや運用費を節約できるのか?私はこれらの企業とよく仕事をしていて、正しい決断についてはコメントしないけど、結局「それは多くの要因に依存する」ってことだ。すぐには明らかでない要因もあるしね。この記事は業界に関わらず重要だけど、考慮すべきニュアンス(人材の可用性、内部の変更コストなど)もある。