外注ソフトウェア開発における多重下請けの隠れたコスト
商談はうまくいきます。シニアアーキテクトが鋭い質問をし、妥当な計画を描き、納得できる見積もりを出す。3か月後、納品されたコードは計画と一致しません。その間に何が起きたのか。答えはたいてい一語です:下請け。
多くの開発会社はエース級の人材で営業し、実装は「手が空いている誰か」に任せます。ときには貴社が一度も会わない二次・三次の会社を経由して。プロジェクトのスコープを決めた人と、コードを書く人の間に挟まる層には、それぞれコストがあります。そしてそのコストの大半は、終盤まで見えません。
各層が奪っていくもの
意図。 仕様書は会話の圧縮版です。引き継ぎのたびに、劣化を伴って解凍されます。コードを書く人は、貴社の制約も、エッジケースも、温度感も聞いていません。空白は推測で埋められ、推測は手戻りになります。
責任。 納品物が間違っていたとき、誰が直すのか。開発会社は下請けを責め、下請けは仕様書を責め、その紛争を貴社のスケジュールが吸収します。誰も説明できないコードは、誰も自信を持って変更できないコードです。
機密性。 NDAが拘束するのは契約した会社です。下請けの下請けまでは通常届きません。誰が実際に貴社のデータ、認証情報、ロードマップを見たのか、確かめる実務的な手段はありません。
品質のフィードバック。 商談で印象的だったシニアは、何もレビューしないか、レビューが遅すぎます。デモで問題が表面化する頃には、安い工数はすでに消化され、高い工数(それをほどく作業)はこれから始まるところです。
契約前に層を見抜く方法
次の質問を書面で行い、回答を契約書と一緒に保管してください。
1. コードを書くのは正確には誰ですか。 チームの人数ではなく、名前を。「弊社のデリバリーチームです」という答えなら、担当エンジニア本人との面談を求めましょう。
2. この業務の一部を他社またはフリーランスが行いますか。 SOWの「再委託禁止」条項は、誠実なベンダーには安く、そうでないベンダーには高くつきます。
3. コードは誰がレビューし、動くものをどの頻度で見せてもらえますか。 動くソフトウェアの週次デモは、三層構造では偽装しにくいものです。
4. コードはどこに置かれますか。 初日から貴社のリポジトリにあれば、誰がいつコミットし、品質がどう推移しているかを、最後ではなくリアルタイムで確認できます。
5. 担当エンジニアが対応できなくなったら。 指名済みのバックアップと文書化された引き継ぎは、匿名の交代要員リストに勝ります。
もう一つのモデル
失敗パターンの本質は、外注そのものではありません。スコープ設計と実装の距離です。スコープを定義したシニアエンジニア本人が実装すれば、意図は生き残り、責任には名前があり、NDAは作業に触れる全員をカバーします。
それがUrbano DXの運営モデルです。スコープを切ったエンジニアが自分で作る。再委託なし。週次デモに貴社が承認を出し、コードは最初のコミットから貴社のリポジトリに。すべての案件に合うモデルではありませんが、数週間単位のスコープ型構築なら、「層の税金」を丸ごと取り除けます。
いま複数の提案を比較しているなら、比較表に1列だけ足してください:「実際にコードを書くのは誰か」。価格よりも結果をよく予測します。