人を増やせば解決すると信じる不眠キング ― 銀の弾丸症候群
Abstract
「海外に外注して頭数増やせば生産性UP」という幻想。人月の神話を知らない偉い人の迷走記録
本日の観察対象
不眠キング (Homo insomnicus superiorus) 役職:偉い人 / 推定睡眠時間:3時間 / 危険度:SSR
観察記録
第一章:銀の弾丸を求めて
不眠キングが、また新しい解決策を見つけてきた。
「開発会社を変えよう。海外の会社に外注すれば、頭数が増えて生産性が上がる」
彼の目は輝いていた。これで全てが解決すると信じているようだった。
しかし、エンジニア陣の表情は暗い。なぜなら我々は知っているからだ。
人を増やしても、問題は解決しない。
これは1975年に出版された『人月の神話』で、フレデリック・ブルックスが明確に指摘している。50年前の知見である。
遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけだ。 ― フレデリック・ブルックス
これをブルックスの法則と呼ぶ。
不眠キングは、この法則を知らない。いや、知っていても信じていないのかもしれない。
第二章:コミュニケーションコストの爆発
なぜ人を増やしても生産性が上がらないのか。
答えは単純だ。コミュニケーションコストが爆発的に増加するからだ。
n人のチームにおけるコミュニケーションパス(やり取りが必要な関係)の数は、以下の式で計算できる:
コミュニケーションパス = n(n-1) / 2
具体例を見てみよう:
| チーム人数 | コミュニケーションパス |
|---|---|
| 3人 | 3本 |
| 5人 | 10本 |
| 10人 | 45本 |
| 20人 | 190本 |
人数が2倍になると、コミュニケーションパスは約4倍になる。
不眠キングは「頭数を増やせば作業量が増える」と考えている。線形思考だ。しかし実際には、人を増やすたびにコミュニケーションの負荷が二次関数的に増大する。
結果として、「作業する時間」より「調整する時間」の方が長くなる。
第三章:海外外注という追加の壁
話をさらに複雑にしているのが、「海外への外注」という要素だ。
海外への開発外注には、追加のコストが発生する:
- 言語の壁 ― 微妙なニュアンスが伝わらない
- 時差の壁 ― リアルタイムのやり取りが困難
- 文化の壁 ― 「空気を読む」が通じない
- 品質管理の壁 ― レビューコストが増大
特に深刻なのはレビューコストだ。
コードレビュー、設計レビュー、テストレビュー。これらすべてに、言語と時差のオーバーヘッドがかかる。
「日本語で書いた仕様書を英語に翻訳して、それを読んだ海外エンジニアが実装して、そのコードを日本側でレビューして、フィードバックを英語で返して…」
この往復だけで、どれだけの時間が消えるか。
不眠キングは「頭数」しか見ていない。しかし実際のボトルネックは「レビューできる人の数」なのだ。
レビュアーの数が変わらなければ、実装者をいくら増やしてもスループットは上がらない。むしろレビュー待ちの行列が長くなるだけだ。
第四章:本当の問題は何か
ここで立ち止まって考えてみよう。
不眠キングは「開発が遅い」という問題を解決したいらしい。その解決策として「人を増やす」を選んだ。
しかし、「開発が遅い」原因は本当に「人が足りない」からだろうか。
可能性のある原因を列挙してみる:
- 要件が不明確 ― 何を作るか決まっていない
- 仕様変更が多い ― 作っては壊しの繰り返し
- 技術的負債 ― 過去のツケが開発速度を落としている
- 意思決定が遅い ― 承認待ちで止まっている
- 不要な会議が多い ― 作業時間が奪われている
これらのどれか一つでも当てはまれば、人を増やしても解決しない。むしろ悪化する。
不明確な要件は、人が増えるほど解釈のブレが大きくなる。仕様変更の影響範囲は、関係者が増えるほど広がる。技術的負債は、新人が触るほど悪化しやすい。
問題の診断を間違えると、どんな治療も効果がない。
これは前回のUI改善編でも指摘した、不眠キングの悪癖だ。
第五章:銀の弾丸は存在しない
ブルックスは『人月の神話』の中で、もう一つ重要な指摘をしている。
銀の弾丸は存在しない(No Silver Bullet)
ソフトウェア開発の生産性を劇的に(10倍以上)向上させる単一の技術や手法は存在しない、という主張だ。
不眠キングが求めているのは、まさにこの「銀の弾丸」である。
- 「海外に外注すれば解決」
- 「ツールを導入すれば解決」
- 「UIを変えれば解決」
どれも「これさえあれば全て解決する」という魔法の杖を求めている。
しかし現実には、ソフトウェア開発の問題は複合的だ。技術的な問題、組織的な問題、コミュニケーションの問題、ビジネスの問題が絡み合っている。
一つの施策で全てが解決することはない。地道な改善の積み重ねしかない。
それを不眠キングは理解していない。いや、理解したくないのかもしれない。「地道な改善」では、偉い人としての存在感を示せないから。
第六章:なぜ偉い人は「人を増やす」を好むのか
不眠キングに限らず、なぜ多くの偉い人は「人を増やす」という解決策を好むのだろうか。
いくつかの仮説がある:
1. 可視性が高い
「チームを10人から20人に増やしました」は、経営層への報告として分かりやすい。「コードレビューのプロセスを改善しました」は、説明が難しい。
2. 予算を使うことが仕事だと思っている
偉い人の仕事は「リソースを配分すること」だと認識している場合、人を増やす=自分の仕事をした、という等式が成立する。
3. 自分では手を動かさないから
実際にコードを書いたり、レビューしたりしない人には、「人を増やしてもレビューコストが増えるだけ」という実感がない。
4. 線形思考から抜け出せない
「作業量 = 人数 × 時間」という工場モデルが頭に染み付いている。ソフトウェア開発がそのモデルに当てはまらないことを、直感的に理解できない。
観察者の所感
不眠キングは、今日も銀の弾丸を探している。
海外外注。ツール導入。UI改善。組織変更。
何か一つ、魔法の杖を見つければ、すべての問題が解決すると信じている。
しかし50年前にブルックスが指摘したように、銀の弾丸は存在しない。
存在するのは、地道な改善の積み重ねだけだ。
- 要件を明確にする
- 仕様変更を減らす
- 技術的負債を返済する
- 意思決定を速くする
- 不要な会議を減らす
これらは地味だ。経営層への報告としてインパクトがない。「10人増やしました」ほど分かりやすくない。
だから不眠キングは選ばない。
そして開発は遅れ続け、また新しい「銀の弾丸」を探し始める。
同じことを繰り返しながら違う結果を期待することを、狂気という。 ― アルベルト・アインシュタイン(と言われている)
不眠キングは狂気の中にいる。
そして最も悲しいことは、その狂気に巻き込まれているのが、現場のエンジニアたちだということだ。
彼らは知っている。人を増やしても解決しないことを。海外に外注してもレビューコストが増えるだけだということを。
しかし、偉い人に「それは間違っています」と言うのは難しい。
だから黙って、増員された新メンバーのオンボーディングに時間を取られ、レビューの負荷に押しつぶされ、本来の開発作業ができなくなっていく。
そして不眠キングは言うだろう。
「なんで開発が遅れてるんだ?人は増やしたのに」
その原因があなただとは、誰も言えないまま。
参考文献
- Brooks, F. P. (1975). The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley.(邦訳『人月の神話』)
- Brooks, F. P. (1986). “No Silver Bullet: Essence and Accidents of Software Engineering”. Proceedings of the IFIP Tenth World Computing Conference.