小屋を建てろと言われたのに、要塞が必要だった話

小屋を建てろと言われたのに、要塞が必要だった話

はじめに

「シンプルなアプリでいいんです」

クライアントからそう言われて受けた案件が、気づいたら基幹システム級の開発になっていた。建築で例えるなら、「小屋を建ててほしい」と言われたのに、実際に必要だったのは要塞だったという話。

これは自分にとっての失敗事例であり、同時に一番学びが多かったプロジェクトの記録でもある。


何が起きたか

最初の認識

クライアントの要望はこうだった。

これを聞いて、自分はこう判断した。

よし、軽めのWebアプリで十分だ。フレームワーク選定もライトにいこう。

この判断が、すべての始まりだった。

見えてきた現実

開発を進めるうちに、次々と「隠れた要件」が出てきた。

クライアントが「シンプルでいい」と言ったのは、クライアントの要望がシンプルだったからではない。クライアントが技術的な複雑さを把握していなかっただけだった。

途中から要塞に切り替える地獄

小屋の設計で始めた基礎の上に、要塞を建てようとした。当然、設計の根本からやり直しになった。

途中から要件が変わるのは、どんなプロジェクトでも起きる。でも「小屋 → 要塞」は、途中から変わるのではなく、最初の見積もりが根本的に間違っていた。


なぜ見誤ったのか

振り返ると、原因は3つに集約される。

1. クライアントの言葉を額面通り受け取った

「シンプルでいい」はクライアントの願望であって、事実ではなかった。

クライアントは自分の業務を毎日やっているから、その複雑さが「当たり前」になっている。当たり前のことは説明されない。だから「シンプルでいい」と本心から言う。でも、掘り下げると「当たり前」の中に巨大な要件が埋まっている。

教訓:クライアントの「シンプル」は、クライアントにとってのシンプルであって、システムにとってのシンプルではない。

2. 調査フェーズを省略した

うまくいった別のプロジェクトでは、技術選定に時間をかけた。1000ページ超のリファレンスをAIに取り込んで、ドメインの全体像を把握してから設計に入った。

このプロジェクトでは、「シンプルだから」という理由で調査フェーズを省略した。

教訓:調査に時間をかけたプロジェクトは成功する。軽く入ったプロジェクトは地獄になる。例外はない。

3. スコープの「深さ」を見なかった

スコープの「広さ」(画面数、機能数)は見えやすい。でも「深さ」は見えにくい。

1つの機能の「深さ」を掘ると、そこに別の要塞がある。


今後のプロジェクトで実践すること

この失敗から、新しいプロジェクトを始めるときのチェックリストを作った。

スコープ検証チェックリスト

1. クライアントの「シンプル」を疑う

2. 建物の規模感を最初に見極める

規模 特徴 期間目安
小屋 1人で使う、データ少量、セキュリティ低 1-2週間
数人で使う、外部連携なし 1-2ヶ月
ビル 部署横断、外部連携あり、権限管理 3-6ヶ月
要塞 基幹業務、法令対応、大量データ、複数システム連携 6ヶ月-1年

小屋と要塞では、設計の根本が違う。途中からの切り替えは新規開発より高コスト。

3. 調査フェーズを絶対に省略しない


建築の比喩がなぜしっくり来るのか

小屋と要塞の違いは、単に大きさの問題ではない。

ソフトウェアも同じで、小屋の基礎に要塞は載らない

データベース設計、認証基盤、API設計、エラーハンドリング、ログ設計——これらの「基礎」は、最初に正しく作らないと、後から差し替えるのは全面改修に等しい。

だから「最初の見極め」がすべてを決める。


この失敗が教えてくれたこと

正直、このプロジェクトは今でも苦しい。でも、ここから得た学びは他のどのプロジェクトよりも大きかった。

設計に時間をかけたプロジェクトは成功する。軽く入ったプロジェクトは地獄になる。

これは自分のプロジェクト群を横断して、例外なく確認されたパターンだった。

成功したプロジェクトでは、1000ページ超のPDFをAIに食わせて技術選定を行った。別のプロジェクトでは、データ分析と設計に2週間をかけた。どちらも順調に進んでいる。

最初の「面倒くさい」を引き受けた者だけが、後の「地獄」を回避できる。

そして今、この失敗を含めた全プロジェクトの知見を蓄積して、次のプロジェクトの「立ち上げ工数」を劇的に下げる仕組みを作っている。

その話は、また別の記事で。


関連記事