IT業界に身を置く人なら、一度は耳にしたことがある名著『人月の神話』(フレデリック・ブルックス著)。 本書で最も有名なフレーズといえば、「遅れているソフトウェアプロジェクトに人員を追加しても、さらに遅れるだけである(ブルックスの法則)」だと思います。

しかし、私がこの本を通読して最も怖いなと思ったのは、スケジュールの遅延そのものではなく、 人が増えた結果として引き起こされる「設計思想の崩壊(本書の言葉を借りると、概念的完全性)」です。

今回は、教科書的な要約ではなく、現代の現場で実際に起きている「ルールの崩壊プロセス」と、 理不尽に人が降ってきたときにエンジニア個人が取るべき防衛策について整理します。

1. 『人月の神話』が説く最重要概念:「概念的完全性」とは何か

ブルックスが本書の中で「システムの使いやすさと保守性を決定づける最も重要な要素」として挙げているのが、 概念的完全性(Conceptual Integrity)です。

難しい言葉に聞こえますが、要するに「システム全体が、一貫した1つの設計思想・哲学・ルールで貫かれていること」を指します。

  • 画面レイアウトの統一性がある
  • 「画面の処理の中に直接SQLが直書きされている」といった場当たり的な実装がなく、決められた階層ルールが守られている
  • エラーハンドリングやログ出力の粒度が揃っている
  • 命名規則やDBアクセスのパターンが統一されている

これが保たれているシステムは、たとえ規模が大きくても全体像を把握しやすく、変更や保守が容易です。 そしてブルックスは、「概念的完全性を保つためには、設計の主導権を握る人間はごく少数(あるいは1人)でなければならない」と主張しました。 単にアーキテクトという役職を置くのではなく、設計思想を決める権限を少数に集中させ、ブレを許さない開発体制を推奨したのです。

※アーキテクトの重要性や立ち回りについては、以下の記事でも詳しく整理しています

しかし、納期が迫った現場では、この原則と真逆の事態が平然と発生します。

2. 現場で起きる「崩壊」のプロセス:間違っている側が多数派になる瞬間

プロジェクトに遅れが生じると、上層部から追加の人員が投入されます。その瞬間に現場で何が起きるかというと、 単に「質問が増えて手が止まる(コミュニケーションコストの増大)」だけでは済まず、「設計ルールの不可逆な崩壊」が始まります。

2.1 ルールが守られていたフェーズ

初期の少人数体制では、設計思想を理解しているメンバーが中心です。 仮に規約を理解していないメンバーが1人混ざって不適切なコードを書いても、 レビューで「ここの設計思想とズレているので直してください」と指摘すれば元に戻ります。 ルールは機能しています。

2.2 人が急増したフェーズ(崩壊の分岐点)

遅延対策として数名〜十数名のメンバーが一度に投入された瞬間、パワーバランスが逆転します。

  1. 規約や背景を知らないメンバーが開発室の「多数派」になる
  2. 既存の有識者(レビューアー)の許容量を遥かに超えるプルリクエストが押し寄せる
  3. 納期優先の空気の中、「動いているなら一旦マージしよう」という例外が許容され始める
  4. 新規メンバーは、その「例外コード」を正解のサンプルとして真似して次の機能を量産する

結果として、昨日まで正義だったはずの設計ルールが、数週間のうちに形骸化します。 「間違っている実装」がコードベースの過半数を占めた瞬間、もはや誰もそれを差し戻せなくなるのです。

3. なぜ管理層はそれでも「人の投入」を選んでしまうのか

現場のエンジニアから見れば「人を増やすと破綻する」と分かっているのに、なぜ管理層は同じ過ちを繰り返すのでしょうか? 理由は、管理層が無能だからではありません。 組織力学として、「人の追加が、外向きに最も説明しやすいアリバイだから」です。

IT業界のプロジェクト管理において、計画通りに事が進まない事態は日常茶飯事です。 その際、発注元や経営陣に対する遅延報告の場で求められるのは「挽回のための具体的なアクション」です。

  • 「スコープを削ります(機能を減らします)」→ 顧客・営業が納得しない
  • 「納期を延ばします」→ 違約金や予算調整が発生する
  • 「人を〇名追加して体制を強化します」→ 最も前向きに対策を打ったように見える

「人月(工数)」という指標は、システムの複雑さや技術的負債を一切無視できる代わりに、稟議書や契約書の上で最も通りやすい「政治的な共通言語」です。 「理由がつけば遅延や増員が正当化される」という構造がある限り、現場への増員要請を止めることは困難です。

4. 人が降ってきた現場で、若手SEが自滅しないための「3つの割り切り」

上層部の決定で降ってくる人員を、現場の一担当者の力で止めることはできません。 ここで絶対にやってはいけないのは、「追加された人たちの面倒をすべて見て、プロジェクトの破綻を自分一人で防ごうと抱え込むこと」です。 組織の都合で投入された人員の生産性にまで、あなたが責任を感じる必要はありません。

完璧な防波堤など作れない現実の現場で、エンジニア自身がすり減って自滅しないための「3つの割り切り」をまとめます。

① 「使い捨ての教育」に全力を注がない

現場で最もリソースを奪われるのが、新しく入ってきたメンバーの環境構築と教育です。 特に数ヶ月で離脱する可能性がある外部要員や短期アサインのメンバーに対して、最初から手取り足取り教えるのはコストが見合いません。

  • 「1から10まで口頭で教える」のをやめる
  • 自分が環境構築で叩いたコマンド履歴や、過去の参考チケットのリンクをまとめたメモを渡し、「まずこれに沿って動かしてみて、詰まったところだけ質問して」と突き放す

冷たく感じるかもしれませんが、誰がいつまで残るか分からない流動的な現場では、教育コストを最小化し、自分の手元タスクを止めないための重要な線引きです。

② 「できない分はこぼす」勇気を持つ(無理な残業で辻褄を合わせない)

現場レベルで、上からの無茶振りに対して角を立てずに立ち回る魔法のような交渉術はありません。 現実には「できる範囲をやって、できないものは残る」しかありません。

そして、それで良いのです。

人を増やしたことで現場の教育コストが跳ね上がり、短期的・長期的に進捗が出なくなるのは、ブルックスの法則通りの「組織の構造的なミス」です。 それを現場の若手が無理な残業や土日稼働でカバーしてしまうと、管理層は「人を突っ込んだから間に合った」と誤認し、次の炎上でも同じ意思決定を繰り返します。

できる範囲を誠実にこなし、溢れたタスクは「教育と質問対応に工数が取られた結果、ここまでは完了し、ここから先は溢れました」と、起きた事実をそのまま上に返すしかありません。

③ 「手戻りを減らしたい」という責任感を、自分一人で背負わない

経験を重ねるにつれて、「言われたことだけをやる」段階を抜け、「どうすれば手戻りを減らせるか」「設計の破綻を防げるか」という全体視点が芽生えてきます。

しかし、ルールを知らない人員が大量に投入された時点で、現場の一担当者の努力で手戻りをゼロにすることは不可能です。 『人月の神話』が説く通り、概念的完全性を保つのはアーキテクトやプロジェクトマネージャーの責務であり、現場の担当SEが一身に背負うべき領域ではありません。

あなたがコントロールできるのは、「自分の担当モジュールの品質」「新しく入った人に切り出すタスクの範囲」までです。 プロジェクト全体の手戻りや品質低下の責任まで一人で背負い込まず、守るべき範囲に明確な境界線を引きましょう。

まとめ:古典に学ぶべきは「嘆き」ではなく「境界線の引き方」

『人月の神話』が指摘した不条理は、半世紀経った現代の開発現場でも形を変えずに生き残っています。 そしておそらく、人月という商習慣や大企業の意思決定プロセスが存在する限り、完全になくなることはありません。

しかし、この本を読んだ私たちが持ち帰るべきは、「業界の構造がおかしい」という冷笑や嘆きではありません。 「人が増えれば、必ず設計思想が脅かされる」という普遍の法則をあらかじめ織り込み、自分の担当領域にどう境界線を引いて防波堤を築くか。

現場でコードと設計を守り抜くための現実的な武器として、本書の教訓を日々の実務に落とし込んでいくことが重要です。